gpt4 book ai didi

tensorflow - 关于 "tensorflow.initialize_all_variables()"

转载 作者:行者123 更新时间:2023-12-03 00:44:09 25 4
gpt4 key购买 nike

我想知道以下两段代码之间有什么区别:

import tensorflow as tf
x = tf.Variable(0, name='x')
model = tf.initialize_all_variables()
with tf.Session() as session:
for i in range(5):

session.run(model)
x = x + 1

print(session.run(x))
<小时/>
import tensorflow as tf
x = tf.Variable(0, name='x')
model = tf.initialize_all_variables()
with tf.Session() as session:
for i in range(5):

x = x + 1
session.run(model)

print(session.run(x))

唯一的区别是“x = x + 1”和“session.run(model)”的顺序。我认为这会对输出产生很大的影响,因为 session.run(model) 会初始化所有变量。然而,这两个代码块输出相同的东西......

代码复制自教程:http://learningtensorflow.com/lesson2/

最佳答案

是的,这里有点棘手。 Tensorflow 的一个重要概念是惰性求值,这意味着首先构建节点的 Tensorflow 图,并且图的求值仅发生在 session.run 时。

对于这行代码x=x+1,这里的x是Tensor类型,这里的+是重载的tf.add,所以x=x+1实际上是在构建图,还没有进行任何计算;并且在每次迭代时,图(在本例中为二叉树)都会添加一层(又一个嵌套总和)。 session.run(model) 始终将 x 初始化为 0,session.run(x) 将根据该迭代中迄今为止构建的图来计算 x。例如,在迭代 4 中,x 加 1,共 4 次,因为本次迭代的图有 4 个嵌套和(或层)。

如果这对您有意义,我认为“两个代码本质上是相同的”也会有意义。

注意:严格来说,在第一次迭代中,右侧的 x 是 Variable 类型,但这些都是细节,而不是我想要表达的要点...

关于tensorflow - 关于 "tensorflow.initialize_all_variables()",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37980020/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com