[ 输入参数用法不一致 ]torch.nn.LSTM¶
torch.nn.LSTM¶
torch.nn.LSTM(input_size,
hidden_size,
num_layers=1,
bias=True,
batch_first=False,
dropout=0,
bidirectional=False,
proj_size=0)
paddle.nn.LSTM¶
paddle.nn.LSTM(input_size,
hidden_size,
num_layers=1,
direction='forward',
dropout=0.,
time_major=False,
weight_ih_attr=None,
weight_hh_attr=None,
bias_ih_attr=None,
bias_hh_attr=None,
proj_size=0)
两者功能一致但参数不一致,部分参数名不同,具体如下:
参数映射¶
PyTorch | PaddlePaddle | 备注 |
---|---|---|
input_size | input_size | 表示输入 x 的大小。 |
hidden_size | hidden_size | 表示隐藏状态 h 大小。 |
num_layers | num_layers | 表示循环网络的层数。 |
bias | bias_ih_attr, bias_hh_attr | 是否使用偏置, Paddle 支持自定义偏置属性, torch 不支持,需要转写。 |
batch_first | time_major | PyTorch 表示 batch size 是否为第一维,PaddlePaddle 表示 time steps 是否为第一维,它们的意义相反。需要转写。 |
dropout | dropout | 表示 dropout 概率。 |
bidirectional | direction | PyTorch 表示是否进行双向,Paddle 使用字符串表示是双向 LSTM(bidirectional )还是单向 LSTM(forward ) |
proj_size | proj_size | 表示 LSTM 后将 hidden state 映射到对应的大小。 |
- | weight_ih_attr | weight_ih 的参数,PyTorch 无此参数,Paddle 保持默认即可。 |
- | weight_hh_attr | weight_hh 的参数,PyTorch 无此参数,Paddle 保持默认即可。 |
转写示例¶
bias:是否使用偏置¶
# PyTorch 写法
torch.nn.LSTM(16, 32, bias=True)
# Paddle 写法
paddle.nn.LSTM(16, 32)
# PyTorch 写法
torch.nn.LSTM(16, 32, bias=False)
# Paddle 写法
paddle.nn.LSTM(16, 32, bias_ih_attr=False, bias_hh_attr=False)
batch_first:batch size 是否为第一维¶
# PyTorch 写法
torch.nn.LSTM(16, 32, batch_first=True)
# Paddle 写法
paddle.nn.LSTM(16, 32, time_major=False)
bidirectional:是否进行双向¶
# PyTorch 写法
torch.nn.LSTM(16, 32, bidirectional=True)
# Paddle 写法
paddle.nn.LSTM(16, 32, direction='bidirectional')
# PyTorch 写法
torch.nn.LSTM(16, 32, bidirectional=False)
# Paddle 写法
paddle.nn.LSTM(16, 32, direction='forward')