【发布时间】:2020-08-21 06:16:26
【问题描述】:
这似乎是 PyTorch 中关于 LSTM 的最常见问题之一,但我仍然无法弄清楚 PyTorch LSTM 的输入形状应该是什么。
即使在关注了几个帖子(1、2、3)并尝试了解决方案之后,它似乎也不起作用。
背景:我已经编码了一批大小为 12 的文本序列(可变长度),并使用 pad_packed_sequence 功能填充和打包了这些序列。每个序列的MAX_LEN 为 384,序列中的每个标记(或单词)的维度为 768。因此,我的批量张量可能具有以下形状之一:[12, 384, 768] 或 [384, 12, 768]。
批处理将是我对 PyTorch rnn 模块(此处为 lstm)的输入。
根据 LSTMs 的 PyTorch 文档,它的输入维度是 (seq_len, batch, input_size),我理解如下。seq_len - 每个输入流中的时间步数(特征向量长度)。batch - 每批输入序列的大小。input_size - 每个输入标记或时间步长的维度。
lstm = nn.LSTM(input_size=?, hidden_size=?, batch_first=True)
input_size 和 hidden_size 的确切值应该是什么?
【问题讨论】:
标签: python pytorch lstm tensor