如何为TensorFlow变量分配值?

abora:

我正在尝试为python中的tensorflow变量分配一个新值。

import tensorflow as tf
import numpy as np

x = tf.Variable(0)
init = tf.initialize_all_variables()
sess = tf.InteractiveSession()
sess.run(init)

print(x.eval())

x.assign(1)
print(x.eval())

但是我得到的输出是

0
0

因此该值没有改变。我想念什么?

mrry:

在TF1中,该语句x.assign(1)实际上并未将值分配1x,而是创建了一个tf.Operation必须显式运行以更新变量的*。调用Operation.run()Session.run()可用于运行该操作:

assign_op = x.assign(1)
sess.run(assign_op)  # or `assign_op.op.run()`
print(x.eval())
# ==> 1

(*实际上,它返回tf.Tensor与变量的更新值相对应的a ,以便更轻松地链接分配。)

但是,x.assign(1)现在在TF2中会急切地分配值:

x.assign(1)
print(x.numpy())
# ==> 1

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章