我想在 tensorflow 中创建一个 LSTM 来预测时间序列数据。我的训练数据是一组不同长度的输入/输出序列。我可以在同一个训练批次中包含多个不同长度的序列吗?还是我需要将它们填充到相等的长度?如果是这样,怎么做?
另外:如果展开的 RNN 比输入序列长,tensorflow 会做什么?该rnn()
方法包含一个sequence_length
似乎旨在处理这种可能性的可选参数,但我不清楚它的作用。
我想在 tensorflow 中创建一个 LSTM 来预测时间序列数据。我的训练数据是一组不同长度的输入/输出序列。我可以在同一个训练批次中包含多个不同长度的序列吗?还是我需要将它们填充到相等的长度?如果是这样,怎么做?
另外:如果展开的 RNN 比输入序列长,tensorflow 会做什么?该rnn()
方法包含一个sequence_length
似乎旨在处理这种可能性的可选参数,但我不清楚它的作用。
您想从头开始构建模型吗?否则,您可能需要查看 translate.py-model。在这里,您的问题通过以下方式得到解决: - 使用 PAD 符号(基本上是中性的“无信息”符号)填充输入(和输出)序列 - 存储桶:对于不同的长度组,您可以创建不同的存储桶(有意义仅当您的序列长度从最短到最长时非常不同
您不必将相同长度的输入/输出序列批量化。TF 有一种方法可以指定输入大小。参数“sequence_length”控制单元展开的时间步数。所以 TF 只会将你的单元展开到 sequence_length 而不是步长。
因此,在提供输入和输出的同时,还提供一个包含每个输入长度的 sequence_length 数组
tf.nn.bidirectional_rnn(fwd_stacked_lstm_cells, bwd_stacked_lstm_cells,
reshaped_inputs,
sequence_length=sequence_length)
......
feed_dict={
model.inputs: x,
model.targets: y,
model.sequence_length: lengths})
在哪里