我目前正在学习将nn.LSTM与 pytorch 一起使用,并且不得不询问该功能是如何工作的。
基本上我正在尝试提供我的数据集矩阵(M x N)。由于数据集是一个矩阵,我想使用Dataloader (utils.data.Dataset) 将数据集递归地(作为时间步长)馈送到 LSTM 网络中。
我感到困惑的是输入的大小(seq_len,batch,input_size)
假设我正在使用 batch_size=10 获取我的 data_loader。为了生成具有正确形式的 train_loader,我必须将 (M x N) 的先前大小变成包括可以简单地转换为 (M/seq_len, seq_len, N) 的 sequence_length 的大小。
然后我的 nn.LSTM 的输入大小将是: (M/seq_len/batch_size, seq_len, N)
所以,我的主要问题来了:
如果我将此数据大小输入 LSTM 模型 nn.LSTM(N, hidden_size),LSTM 模型是否已经在整个批次中进行递归前馈?
我也对 seq_len 感到困惑,当 seq_len>1 时,输出会得到 seq_len 的维度。这是否意味着输出包含序列的递归操作?
我不确定我是否把问题说清楚了,但是我的理解变得很混乱..lol 希望有人可以帮助我组织正确的理解。