2016-08-05 72 views
2

我只是想用.assign()更改tf.Variable的值,但它總是打印「0」?tf變量不會更改值嗎?

import tensorflow as tf 

session = tf.Session() 

var = tf.Variable(0, "myVar") 

session.run(tf.initialize_all_variables()) 

var.assign(var + 1) 
print session.run(var) 

var.assign(var + 1) 
print session.run(var) 

編輯:這個作品

import tensorflow as tf 

session = tf.Session() 

var = tf.Variable(0, "myVar") 

session.run(tf.initialize_all_variables()) 

add = var.assign(var + 1) 
print session.run(add) 

print session.run(add) 
+1

我對這個毫無本事,但作爲平底船,'var = var.assign(var + 1)'工作嗎? – Bathsheba

+0

https://www.tensorflow.org/versions/r0.10/api_docs/python/state_ops.html#Variable這裏他們也這樣做 –

回答

2

分配只創建操作來改變變量,你必須運行它:

import tensorflow as tf 

session = tf.Session() 

var = tf.Variable(0, "myVar") 

session.run(tf.initialize_all_variables()) 

session.run(var.assign(var + 1)) 
print session.run(var) 

session.run(var.assign(var + 1)) 
print session.run(var) 
+0

酷另一個更短的方式,謝謝 –