在https://github.com/tensorflow/tensorflow/blob/master/tensorflow/models/rnn/ptb/ptb_word_lm.py的PTB语言模型教程中。 我不太了解第248行的必要性(以及将状态传递给第254行的session.run)
state = m.initial_state.eval()
不是初始状态的张量:
self._initial_state = cell.zero_state(batch_size, tf.float32)
何时将图表加载到会话中?
例如,此代码按照预期打印11,
x = constant(6)
y = tf.placeholder(tf.int32)
z = x + y
with tf.Session() as sess:
print sess.run(z,{y:5})
无需替换最后一行
print sess.run(z,{y:5,x:x.eval()})
那需要评估吗?如果是这样,为什么?
答案 0 :(得分:2)
好的,我明白了。 RNN被多次调用,每次调用它时,您希望它以干净的初始状态开始。如果你只是打电话一次,你就不需要将一个干净的初始状态传递给sess.run()
。