0
それは私が最も単純なことをやろうとしたHow to assign value to a tensorflow variable?Tensorflow:変数を割り当てる方法を適切に
の複製ではないです。ただ、変数Tensorflow: how to swap variables between scopes and set variables in scope from another、 を交換し、私はまだそれを行うことはできません。
しかし、assign
は、tf.identity
で取得するテンソルのコピーを変更することを知っています。私はこれを望んでいない。私は交換のための変数のコピーが必要です。私はb
を変更せずにa
に値を割り当てることができますどのように
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 + = 1'が' identity(a) 'と等しくない場合の最初の場合はどうでしょうか? – ckorzhik
ああ、私は見る: 'a + = 1'は別のテンソルを別の名前で作る。 – ckorzhik
そうです。 'a + = 1'は' new_a = a + 1と等価です。 a = new_a'は 'a'のPythonバインディングを更新します(' tf.Variable'の値ではありません)。 – mrry