Przede wszystkim można przypisać wartości do zmiennych/stałych właśnie przez karmienie wartości do nich w ten sam sposób to zrobić z symbolami. Więc jest to całkowicie legalne zrobić:
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})
Odnośnie Twojego zamieszanie z operatorem tf.assign(). W TF nic nie jest wykonywane przed uruchomieniem go wewnątrz sesji. Więc zawsze musisz zrobić coś takiego: op_name = tf.some_function_that_create_op(params)
, a następnie w trakcie sesji przeprowadzasz sess.run(op_name)
. Korzystanie przypisać jako przykład można zrobić coś takiego:
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)
Dzięki! assign_op.run() daje błąd: AttributeError: Obiekt 'Tensor' nie ma atrybutu 'run'. Ale sess.run (assign_op) działa idealnie dobrze. – abora
W tym przykładzie, czy dane "Zmienna" 'x przechowywane w pamięci przed operacją' assign'/zmienny tensor zostały nadpisane lub czy utworzono nowy tensor, który przechowuje zaktualizowaną wartość? – dannygoldstein
Obecna implementacja 'assign()' nadpisuje istniejącą wartość. – mrry