まず。だから、これを行うのは完全に合法である:
import tensorflow as tf
x = tf.Variable(0)
with tf.Session() as sess:
sess.run(tf.global_variables_initializer())
print sess.run(x, feed_dict={x: 3})
tf.assign()オペレータであなたの混乱について。 TFでは、セッションの中で実行する前に何も実行されません。だから、常にこのようなことをしなければならない:op_name = tf.some_function_that_create_op(params)
そしてセッションの中でsess.run(op_name)
を実行する。また、それはあなたがyour_tensor.assign()
を使用している場合、その後、tf.global_variables_initializer
が割り当て操作があなたのためにそれをしないので、明示的に呼び出される必要がないことに留意しなければならない
import tensorflow as tf
x = tf.Variable(0)
y = tf.assign(x, 1)
with tf.Session() as sess:
sess.run(tf.global_variables_initializer())
print sess.run(x)
print sess.run(y)
print sess.run(x)
ありがとうございます! assign_op.run()にエラーがあります。AttributeError: 'Tensor'オブジェクトに 'run'属性がありません。 しかし、sess.run(assign_op)は正常に動作します。 – abora
この例では、 'assign'演算/変更可能なテンソルが上書きされる前にメモリに保存された'変数 '' x'のデータか、更新された値を格納する新しいテンソルが作成されていますか? – dannygoldstein
'assign()'の現在の実装は、既存の値を上書きします。 – mrry