它与How to assign value to a tensorflow variable?
不重复我试图做最简单的事情:只需交换变量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
分配值?
答案 0 :(得分:1)
tf.identity()
操作是无状态的。当您有一个名为tf.Variable
的{{1}}时,a
的值将始终与tf.identity(a)
的值相同。如果您希望a
记住以前的b
值,则应将a
创建为b
:
tf.Variable