2017-09-02 21 views
0

に依存するテンソルフローの変数yを割り当てようとしました。しかし、xの値を変更しても、yは変更されません。入力変数が変更されたときに、tf変数の値が変更されない

import tensorflow as tf 

sess = tf.Session() 
x=tf.Variable(4,name='x') 

model = tf.global_variables_initializer() 

sess.run(model) 
y=tf.Variable(2*x,name='y') 

model = tf.global_variables_initializer() 
sess.run(model) 

sess.run(x) 
sess.run(tf.assign(x,2)) 
print(sess.run(y)) 

私は出力4を期待していたが、私は8を取得しています。どんな助けもありがとう。

グラマシー...

答えて

1

y=tf.Variable(2*x, name='y')はちょうどyx*2を初期化されることを意味し、y = 2 * xにこの行を変更するには、期待通りに行います。

+0

Cool!これはうまくいきました:)しかし、 'sess.run'を実行すると変数に値を代入しませんか?私は 'x'の値が変更された最後の行でこれをやっています。 – americast

+1

'y = tf.Variable(2 * x、name = 'y')' 'y'と' x'の関係は 'y'だけで、' x'からの初期値が必要ですが、 'y 'セット。 'y = 2 * x'は' y'の値が 'x'に依存することを意味し、' x'が変化すると変化します。私が私に明確にしたならば、この答えに対するアップヴォートと承認は認められるでしょう。 –

+0

確かに! さて、ドキュメントによれば、最初のパラメータが初期値を提供するように 'tf.Variable'が定義されています。しかし、私は、 'sess.run'が呼び出されたときに変数に値が割り当てられているというのは少し誤解を招くのではないかと思います。さらに、 'x'の値は' y'がアロケートされる前に変更されているので、消化するのは少し難しいです。 :) – americast

関連する問題