我正在尝试构建一个用于下一个单词预测的 RNN,遵循下一个字符预测示例(tutorial、github、colab(运行时间约 1 分钟))。
在示例中,batch_size、sequence_length 和 nb_features 的输入形状为 (3,14,17)。然后,n_layers、batch_size 和hidden_dim 的隐藏大小定义为(1,3,12)。
除了我的batch_size为1之外,我遵循了这个示例。此外,由于我使用的是batch_size 1,所以我的输入序列没有被填充。所以我运行我的train()方法,并且在我的第一个训练数据示例中收到错误:
RuntimeError: Expected hidden size (1, 25, 12), got [1, 1, 12]
(25 是序列长度)。
因此,pytorch 似乎要求我给出序列长度作为隐藏层的维度,但在我遵循的示例代码中,情况并非如此,并且代码工作正常。
我做错了什么?
此外,这是我正在使用的colab(运行时间〜1分钟)。
我使用的示例代码和我无法计算的代码之间有两个主要区别:
1-
batch_first=True
在启动模型时传递给RNN感谢@erip 帮助调试这个!