2016-06-14 13 views
1

https://github.com/tensorflow/tensorflow/blob/master/tensorflow/models/rnn/ptb/ptb_word_lm.pyのPTB言語モデルチュートリアルで。 私は(ライン254上のsession.runへと状態の通過)ライン248の必要性を理解していないTensorFlow PTBチュートリアルのm.initial_state.eval()が必要

state = m.initial_state.eval()

初期状態のテンソルではない:

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

グラフがセッションにロードされたときに評価されますか?

たとえば、このコードは print sess.run(z,{y:5,x:x.eval()})

との最後の行だから、evalが必要とされているを交換する必要なしに、

x = constant(6) 
y = tf.placeholder(tf.int32) 
z = x + y 
with tf.Session() as sess: 
    print sess.run(z,{y:5}) 

11予想されるように印刷しますか?もしそうなら、なぜですか?

答えて

2

さて、私はそれを理解しました。 RNNは複数回呼び出され、呼び出されるたびにきれいな初期状態から開始します。一度呼び出すだけであれば、きれいな初期状態でsess.run()に渡す必要はありません。

関連する問題