【发布时间】:2021-11-11 12:29:05
【问题描述】:
我是 PyTorch 的初学者。从 lstm description,我了解到我可以通过以下方式创建具有 3 层的堆叠 lstm:
layer = torch.nn.LSTM(128, 512, num_layers=3)
那么在forward函数中,我可以这样做:
def forward(x, state):
x, state = layer(x, state)
return x, (state[0].detach(), state[1].detach())
我可以将state 逐批传递。
但是如果我创建了 3 个 lstm 层,如果我想自己实现相同的堆叠层,那相当于什么?
layer1 = torch.nn.LSTM(128, 512, num_layers=1)
layer2 = torch.nn.LSTM(128, 512, num_layers=1)
layer3 = torch.nn.LSTM(128, 512, num_layers=1)
在这种情况下,应该进入forward函数并获取返回的state?
我还尝试查看 pytorch lstm 的 source code,但在 forward 函数中它调用了 _VF 模块,我找不到它的定义位置。
【问题讨论】: