2016-08-05 73 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

酷另一个更短的方式,谢谢 –