Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/tensorflow/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Tensorflow-运行总计_Tensorflow - Fatal编程技术网

Tensorflow-运行总计

Tensorflow-运行总计,tensorflow,Tensorflow,如何在循环的每次迭代后添加数字5 我想这样做: weight = 0.225 for i in range(10): weight += 5 print (weight) 下面是我在tensorflow中的尝试,但它从不更新权重 import tensorflow as tf def dummy(x): weights['h0'] = tf.add(weights['h0'], 5) res = tf.add(weights['h0'], x) ret

如何在循环的每次迭代后添加数字5

我想这样做:

weight = 0.225

for i in range(10):
    weight += 5
    print (weight)
下面是我在tensorflow中的尝试,但它从不更新权重

import tensorflow as tf
def dummy(x):
    weights['h0'] = tf.add(weights['h0'], 5)
    res = tf.add(weights['h0'], x)
    return res

# build computational graph
a = tf.placeholder('float', None)
d = dummy(a)
weights = {
    'h0': tf.Variable(tf.random_normal([1]))
}
# initialize variables
init = tf.global_variables_initializer()

# create session and run the graph
with tf.Session() as sess:
    sess.run(init)
    for i in range(10):
        print (sess.run(d, feed_dict={a: [2]}))
# close session
sess.close()

显然有一个赋值操作符


有一个显式创建的操作用于添加值并将结果分配回输入节点:

您应该使用它而不是
tf.assing
+
tf.add

此外,更重要的是,您要理解为什么以前的代码无法工作

weights['h0'] = tf.add(weights['h0'], 5)
res = tf.add(weights['h0'], x)
在第一行,您定义了一个节点add,它的输入是
权重['h0']
5
,并且将这个节点分配给一个python变量
权重['h0']

因此,
weights['h0']
是一个包含tensorflow节点的python变量

在下一行中,您将在上一个节点和
x
之间定义另一个add节点,然后返回此节点

计算图形时,您计算由
res
指向的节点,该节点强制计算前一个节点(因为res是由
权重['h0']
持有的节点的函数)

问题在于第
1
行的赋值是python赋值,而不是tensorflow赋值。 因此,该赋值操作仅在python环境中执行,但在tensorflow图中没有定义赋值节点

注意:当您将
一起使用时,您正在定义一个上下文管理器来为您处理关闭操作。因此,您可以删除
sess.close()
,因为它在您退出该上下文时自动执行

weights['h0'] = tf.add(weights['h0'], 5)
res = tf.add(weights['h0'], x)