我有一个 LongTensors 列表和另一个标签列表。我是 PyTorch 和 RNN 的新手,所以我对如何为我拥有的数据实施小批量训练感到很困惑。这些数据还有很多,但我想保持简单,所以我只能理解如何实现小批量训练部分。我正在根据在可变长度输入上训练的 LSTM/GRU 的最终隐藏状态进行多类分类。我设法让它与批量大小 1(基本上是 SGD)一起工作,但我正在努力实现小批量。
我是否必须将序列填充到最大尺寸并创建一个更大尺寸的新张量矩阵来容纳所有元素?我的意思是这样的:
inputs = pad(sequences)
train = DataLoader(inputs, batch_size=batch_size, shuffle=True)
for i, data in train:
#do stuff using LSTM and/or GRU models
这是对自定义数据进行小批量培训的公认方式吗?我找不到任何关于使用 DataLoader 加载自定义数据的教程(但我认为这是使用 pyTorch 创建批次的方法?)
我的另一个疑问是关于填充。我使用 LSTM/GRU 的原因是输入的长度可变。填充不会破坏目的吗?小批量训练需要填充吗?