2017-10-04 12 views
0

IはTensorFlowでVariableを作成する:TensorFlowで変数の値を変更するにはどうすればよいですか?

c = tf.Variable([1.0, 2.0, 3.0], tf.float32) 

そしてIはプレースホルダを定義する:その後

x = tf.placeholder(tf.float32) 

Iが定義されたオブジェクト上に2つが結合関数(計算グラフ)を定義:

y = x + c 

その後、グローバル変数を「初期化」します。

s = tf.Session() 
init = tf.global_variables_initializer() 
s.run(init) 

最後に、私は私の関数を実行することができます

s.run(y, {x : [10.0, 20.0, 30.0]}) 

は今、私はcの値を変更したいです。 TensorFlowで可能ですか?私は、例えば試してみました:

c = tf.assign(c, [1.0, 1.0, 1.0]) 

とも:

c = tf.Variable([1.0, 1.0, 1.0], tf.float32) 

何も機能しません。私は

s.run(y, {x : [10.0, 20.0, 30.0]}) 

を呼び出すたびに、私はまだ古い結果(cの古い/初期値に相当)を取得します。

TensorFlowのグローバル変数に新しい値を割り当てるにはどうすればよいですか?

答えて

1

、新しい値を初期化それを評価:

c.eval(session=s) 

または

s.run(c) 
1

変数「C」に新しい値を代入したら、セッションを作るようになった次のようにする必要があり、あなたが使用される方法の一つで変数cに新しい値を割り当てた後

c = tf.assign(c, [1.0, 1.0, 1.0]) 
s.run(c) 
s.run(y, {x : [10.0, 20.0, 30.0]}) 
array([ 11., 21., 31.], dtype=float32) 
関連する問題