Trước hết bạn có thể gán giá trị cho biến/hằng số chỉ bằng cách ăn các giá trị vào chúng giống như cách bạn làm điều đó với placeholders. Vì vậy, điều này hoàn toàn hợp pháp để làm:
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})
Về sự nhầm lẫn của bạn với nhà điều hành tf.assign(). Trong TF không có gì được thực thi trước khi bạn chạy nó bên trong phiên. Vì vậy, bạn luôn phải làm một cái gì đó như thế này: op_name = tf.some_function_that_create_op(params)
và sau đó bên trong phiên bạn chạy sess.run(op_name)
. Sử dụng gán như một ví dụ bạn sẽ làm điều gì đó như thế này:
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)
Nguồn
2017-04-24 05:33:53
Cảm ơn! assign_op.run() đưa ra một lỗi: AttributeError: đối tượng 'Tensor' không có thuộc tính 'run'. Nhưng sess.run (assign_op) chạy hoàn toàn tốt. – abora
Trong ví dụ này, là dữ liệu mà 'Biến'' x' được lưu trữ trong bộ nhớ trước khi hoạt động' assign'/tensable tensor được ghi đè hoặc là một tensor mới được tạo để lưu trữ giá trị cập nhật? – dannygoldstein
Việc thực hiện hiện tại 'assign()' sẽ ghi đè giá trị hiện tại. – mrry