변수를 포함하는 간단한 계산 그래프를 정의합니다. 내가 변수의 값을 변경하는 경우는 (예상대로 그래서 모든 것이 잘 작동) 계산 그래프의 출력에 예상되는 영향이 :이 코드를 호출 할 때계산 그래프를 입력하기 전에 변수에 값을 할당 할 수 있습니까?
s = tf.Session()
x = tf.placeholder(tf.float32)
c = tf.Variable([1.0, 1.0, 1.0], tf.float32)
y = x + c
c = tf.assign(c, [3.0, 3.0, 3.0])
s.run(c)
print 'Y1:', s.run(y, {x : [10.0, 20.0, 30.0]})
c = tf.assign(c, [2.0, 2.0, 2.0])
s.run(c)
print 'Y2:', s.run(y, {x : [10.0, 20.0, 30.0]})
내가 얻을 :
Y1: [ 13. 23. 33.]
Y2: [ 12. 22. 32.]
Y1
및 Y2
뒤에 오는 값은 c
의 다른 값으로 계산되기 때문에 예상대로 다릅니다.
y
의 계산 방법을 정의하기 전에 변수 c
에 값을 할당하면 문제가 시작됩니다. 이 경우에는 c
의 새 값을 할당 할 수 없습니다.
s = tf.Session()
x = tf.placeholder(tf.float32)
c = tf.Variable([1.0, 1.0, 1.0], tf.float32)
c = tf.assign(c, [4.0, 4.0, 4.0]) # this is the line that causes problems
y = x + c
c = tf.assign(c, [3.0, 3.0, 3.0])
s.run(c)
print 'Y1:', s.run(y, {x : [10.0, 20.0, 30.0]})
c = tf.assign(c, [2.0, 2.0, 2.0])
s.run(c)
print 'Y2:', s.run(y, {x : [10.0, 20.0, 30.0]})
출력으로 내가 얻을 : 당신이 볼 수 있듯이
Y1: [ 14. 24. 34.]
Y2: [ 14. 24. 34.]
, 나는 y
계산 때마다, 나는 c
의 이전 값을 포함하는 결과를 얻을 수 있습니다. 왜 그런가요?