我想在tensorflow中创建一个LSTM来预测时间序列数据 . 我的训练数据是一组不同长度的输入/输出序列 . 我可以在同一个培训批次中包含多个不同长度的序列吗?或者我需要将它们填充到相同的长度?如果是这样,怎么样?
另外:如果展开的RNN长于输入序列,张量流会做什么? rnn() 方法包含一个可选的 sequence_length 参数,该参数似乎是为处理这种可能性而设计的,但我不清楚它的作用 .
rnn()
sequence_length
你想从头开始构建模型吗?否则,您可能需要查看translate.py模型 . 在这里你的问题由以下几点处理: - 用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})
哪里
len(length)== batch_size和
对于所有i,length [i] ==输入x [i]的长度(与outpu y [i]的长度相同)
2 回答
你想从头开始构建模型吗?否则,您可能需要查看translate.py模型 . 在这里你的问题由以下几点处理: - 用PAD符号填充输入(和输出)序列(基本上是中性的“无信息” - 符号) - 桶:对于不同的长度组,你可以创建不同的桶(有意义)只有当你的序列长度从最短到最长时才是非常不同的
您不必将相同长度的输入/输出序列批量批量处理 . TF有一种指定输入大小的方法 . 参数“sequence_length”控制单元格展开的时间步数 . 因此TF将仅将您的单元格展开到sequence_length,而不是步长 .
因此,在输入和输出的同时,也会提供包含每个输入长度的sequence_length数组
.....
哪里
len(length)== batch_size和
对于所有i,length [i] ==输入x [i]的长度(与outpu y [i]的长度相同)