Skip to main content
 首页 » 编程设计

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

2024年10月17日25lovecherry

在 PTB 语言模型教程中 https://github.com/tensorflow/tensorflow/blob/master/tensorflow/models/rnn/ptb/ptb_word_lm.py . 我不明白第 248 行的必要性(以及在第 254 行将状态传递到 session.run)

state = m.initial_state.eval()

不就是初始状态的张量吗:

self._initial_state = cell.zero_state(batch_size, tf.float32)

当图表加载到 session 中时评估?

例如,这段代码会按预期打印 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()})

所以需要 eval 吗?如果是这样,为什么?

请您参考如下方法:

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