Tensorflow RNN:批处理不同长度的数据

数据挖掘 张量流 rnn
2022-02-15 19:35:08

我开始在 Google 的 tensorflow 框架中试验神经网络,特别是在研究一个具有 LSTM 层的模型。我正在使用RNN 教程来帮助我入门。

为了训练我的模型,我有几千个数据点长的数据序列。在本教程中,作者正在处理小数据序列(段落的短句)并将这些序列连接在一起,用 分隔<end of stream>,将整个数据集平均分成batch_size多个块并并行处理这些块。我想从头到尾分别处理我的每个数据序列,但希望能够并行处理其中的几个,因为rnn_cell对象被设置为执行(它们一次处理batch_size序列)。

如果序列长度相同,这将是直截了当的,但事实并非如此。Anrnn_cell.LSTMCell期望数据以固定的维度进入batch_size x input_size,所以一旦一些序列到达终点并且我batch_size想要减少,就会出现问题。

我该如何解决这个问题?我不认为我可以“左”或“右”证明我的数据的合理性,以便它们在不影响训练的情况下排列。

1个回答

我建议将您的序列填充为相同的长度。显然这并不理想,因为您最终会浪费时间处理虚假数据,但它确实解决了问题。