一、环境
TensorFlow API r1.12
CUDA 9.2 V9.2.148
cudnn64_7.dll
Python 3.6.3
Windows 10
二、官方说明
将“value”幅值给“ref”,该方法使得需要重置新值的链式操作非常简便
tf.assign(
ref,
value,
validate_shape=None,
use_locking=None,
name=None
)
输入:
(1)ref:可变的张量,一般通过tf.Variable()来定义,可以未被初始化
(2)value:赋值给“ref”的张量,必须和“ref”是同一类型
(3)validate_shape:可选布尔型参数,默认为True,验证“value”的形状是否匹配“ref”的数据形状;Flase时,“ref”将接受“value”的数据形状
(4)use_locking:可选布尔型参数,默认为True,幅值操作会受锁定;False时,行为未定义,但可能会减少争用
(5)name:可选参数,定义该操作的名称
返回结果:
具有新赋给值的张量“ref”
三、实例
>>> v = tf.Variable([1,2,3], name="variable")
>>> x = tf.constant([4,5,6])
>>> sum = tf.add(v,x)
>>> v1 = tf.assign(v, sum)
>>> init_op = tf.global_variables_initializer()
>>> with tf.Session() as sess:
... sess.run(init_op)
... print(sess.run(v))
... for _ in range(3):
... sess.run(v1)
... print(sess.run(v))
...
[1 2 3]
array([5, 7, 9])
[5 7 9]
array([ 9, 12, 15])
[ 9 12 15]
array([13, 17, 21])
[13 17 21]