0
그것은 내가 simpliest 일을하려고했다 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
으로 얻는 텐서의 복사본을 변경한다는 것을 알고 있습니다. 나는 이것을 원하지 않는다. 교환을 위해 변수 사본이 필요합니다.
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
내가
b
을 변경하지 않고
a
에 값을 할당 할 수있는 방법
?
감사합니다! 그러나'a + = 1'이'identity (a)'와 같지 않은 첫 번째 경우는 어떨까요? – ckorzhik
오, 알겠습니다 :'a + = 1'은 다른 이름으로 다른 텐서를 만듭니다. – ckorzhik
맞습니다. 'a + = 1'은'new_a = a + 1;와 같습니다. a = new_a'로,'a'에 대한 파이썬 바인딩을 갱신합니다 ('tf.Variable'의 값은 아닙니다). – mrry