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