您可以使用以下介绍的存储分区和填充思想:
同样,创建RNN网络的rnn函数接受参数sequence_length。
例如,您可以创建相同大小的句子存储桶,将它们填充必要的零,或使用占位符表示零个单词,然后将它们与seq_length = len(zero_words)一起提供。
seq_length = tf.placeholder(tf.int32)
outputs, states = rnn.rnn(cell, inputs, initial_state=initial_state, sequence_length=seq_length)
sess = tf.Session()
feed = {
seq_length: 20,
#other feeds
}
sess.run(outputs, feed_dict=feed)
还要看一下这个reddit线程:
0
我试图使用RNN(特别是LSTM)进行序列预测。但是,我遇到了序列长度可变的问题。例如,
我正在尝试使用一个基于该基准的简单RNN预测当前单词之后的下一个单词, 以构建PTB LSTM模型 。
但是,
num_steps
参数(用于展开到先前的隐藏状态)在每个Tensorflow的时代应保持不变。基本上,批处理句子是不可能的,因为句子的长度会有所不同。在这里,
num_steps
需要为每个句子更改num_steps
。我已经尝试了几种方法,但是似乎没有任何效果。