比较与torch.nn.RNNCell的功能差异

查看源文件

torch.nn.RNNCell

class torch.nn.RNNCell(
    input_size,
    hidden_size,
    bias=True,
    nonlinearity='tanh')(input, hidden) -> Tensor

更多内容详见torch.nn.RNNCell

mindspore.nn.RNNCell

class mindspore.nn.RNNCell(
    input_size: int,
    hidden_size: int,
    has_bias: bool=True,
    nonlinearity: str = 'tanh')(x, hx) -> Tensor

更多内容详见mindspore.nn.RNNCell

差异对比

PyTorch:循环神经网络单元。

MindSpore:MindSpore此API实现功能与PyTorch基本一致。

分类

子类

PyTorch

MindSpore

差异

参数

参数1

input_size

input_size

-

参数2

hidden_size

hidden_size

-

参数3

bias

has_bias

功能一致,参数名不同

参数4

nonlinearity

nonlinearity

-

输入

输入1

input

x

功能一致,参数名不同

输入2

hidden

hx

功能一致,参数名不同

代码示例1

# PyTorch
import torch
from torch import tensor
import numpy as np

rnncell = torch.nn.RNNCell(2, 3, nonlinearity="relu", bias=False)
input = torch.tensor(np.array([[3.0, 4.0]]).astype(np.float32))
hidden = torch.tensor(np.array([[1.0, 2.0, 3]]).astype(np.float32))
output = rnncell(input, hidden)
print(output)
# tensor([[0.5022, 0.0000, 1.4989]], grad_fn=<ReluBackward0>)

# MindSpore
import mindspore.nn as nn
from mindspore import Tensor
import numpy as np

rnncell = nn.RNNCell(2, 3, nonlinearity="relu", has_bias=False)
x = Tensor(np.array([[3.0, 4.0]]).astype(np.float32))
hx = Tensor(np.array([[1.0, 2.0, 3]]).astype(np.float32))
output = rnncell(x, hx)
print(output)
# [[2.4998584 0.        1.9334991]]