2016-11-12 46 views
1

所以我尝试以下Tensorflow相当于x的= X + 1

x = tf.Variable(0.10, tf.float32) 
tf.assign(x, tf.add(x,1)) 

x = tf.Variable(0.10, tf.float32) 
x = x + 1 

但他们没有工作。任何想法我们如何在TensorFlow中做这样的功能?为了完整

import tensorflow as tf 
sess = tf.InteractiveSession() 
x = tf.Variable(0.10, tf.float32) 
y = tf.constant(1.00, tf.float32) 
x.assign(1.0) 
sess.run(tf.initialize_all_variables()) 
x = sess.run(x) 
print(x) 

整个代码更新:解决方案 的完整性整个代码。这只是确保你有x = x.assign(1.0)而不是简单的x.assign(1.0)

import tensorflow as tf 
sess = tf.InteractiveSession() 
x = tf.Variable(0.10, tf.float32) 
y = tf.constant(1.00, tf.float32) 
x = x.assign(1.0) 
sess.run(tf.initialize_all_variables()) 
x = sess.run(x) 
print(x) 

回答

0

创建一个变量。

w = tf.Variable(<initial-value>, name=<optional-name>) 

assign()或相关方法为变量赋值一个新值。

w.assign(w + 1.0) 
w.assign_add(1.0) 

更新的完整性:

在你情况下,应该是:

x = tf.Variable(0.10, tf.float32) 
op = x.assign_add(1.0) 
x = sess.run(op) 

official docs

+0

我试过服用,它返回0.1仍然(原值)。任何想法?我编辑了整个代码的文章(简单),告诉你它是如何工作的。 – Ritchie

+0

似乎需要运行分配操作。你有没有检查一下[this](http://stackoverflow.com/questions/39671956/how-to-increment-a-variable-in-tensorflow)。 – 108

+1

谢谢。是的,我玩这个想法,我们必须在该链接中使用相同的'var'名称而不是新的。用更改更新了代码。 – Ritchie