根据the docs ,我看到 Pytorch 的 LSTM 期望其所有输入都是 3D 张量。
我正在尝试做一个简单的序列到序列 LSTM,我有:
class BaselineLSTM(nn.Module):
def __init__(self):
super(BaselineLSTM, self).__init__()
self.lstm = nn.LSTM(input_size=100, hidden_size=100)
def forward(self, x):
print('x', x)
x = self.lstm(x)
return x
我的x.size()
是torch.Size([100, 1])
。我希望我以某种方式需要第三个维度,但我不确定它的实际含义。任何帮助将不胜感激。
最佳答案
输入形状在 this 中有进一步详细说明。 Pytorch 文档的输入:输入,(h_0, c_0)
部分。输入张量的第一个维度预计对应于序列长度,第二个维度对应于批量大小,第三个维度对应于输入大小。
因此,对于您的示例,输入张量 x
实际上的大小应为 (seq_length, batch_size, 100)
。
以下是 Pytorch 论坛上的详细帖子,了解更多详细信息:https://discuss.pytorch.org/t/why-3d-input-tensors-in-lstm/4455/9
关于python - 如何表示 PyTorch LSTM 3D 张量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60160826/