0
这不是重复的How to assign value to a tensorflow variable?Tensorflow:如何分配变量正确
我试图做simpliest件事:只是交换变量Tensorflow: how to swap variables between scopes and set variables in scope from another, 我还是不能做到这一点。
但是现在我知道assign
更改张量的副本,我用tf.identity
得到张量。我不想要这个。我需要交换变量的副本。
In [10]: a = tf.Variable(1)
In [11]: b = tf.identity(a)
In [12]: a += 1
In [14]: sess.run(a)
Out[14]: 2
In [15]: sess.run(b)
Out[15]: 1
In [16]: a = tf.Variable(1)
In [17]: b = tf.identity(a)
In [18]: assign_t = a.assign(2)
In [20]: sess.run(tf.initialize_all_variables())
In [21]: sess.run(a)
Out[21]: 1
In [22]: sess.run(assign_t)
Out[22]: 2
In [23]: sess.run(a)
Out[23]: 2
In [24]: sess.run(b)
Out[24]: 2
我怎么能值分配给a
不改变b
?
谢谢!但是当第一种情况下,当'a + = 1'不等于'身份(a)'? – ckorzhik
哦,我看到:'a + = 1'使另一张张具有不同的名称。 – ckorzhik
是的。 'a + = 1'相当于'new_a = a + 1; a = new_a',它只更新'a'的Python绑定(而不是'tf.Variable'中的值)。 – mrry