在TensorFlow PTB教程中需要m.initial_state.eval()

时间:2016-06-14 18:15:46

标签: python tensorflow

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()})

那需要评估吗?如果是这样,为什么?

1 个答案:

答案 0 :(得分:2)

好的,我明白了。 RNN被多次调用,每次调用它时,您希望它以干净的初始状态开始。如果你只是打电话一次,你就不需要将一个干净的初始状态传递给sess.run()