import tensorflow as tf
x = tf.constant(35, name='x')
y = tf.Variable(x + 5, name='y')
# model = tf.global_variables_initializer()
with tf.Session() as session:
print("x = ", session.run(x))
# session.run(model)
print("y = ", session.run(y))
我无法理解何时需要 global_variables_initializer()
。在上面的代码中,如果我们取消注释第 4 行和第 7 行,我可以执行代码并查看值。如果我按原样运行,我会看到崩溃。
我的问题是它正在初始化哪些变量。 x
是一个不需要初始化的常量, y
是一个不被初始化但用作算术运算的变量。
原文由 Vinay 发布,翻译遵循 CC BY-SA 4.0 许可协议
tf.global_variables_initializer
是初始化所有全局变量的快捷方式。这不是必需的,您可以使用其他方法来初始化变量,或者在简单脚本的情况下,有时您根本不需要初始化它们。除了变量之外的所有东西都不需要初始化(常量和占位符)。但是每个 使用 的变量(即使它是一个常量)都应该被初始化。这会给你一个错误,尽管
z
只是只有一个数字的 0-d 张量。我突出显示了使用的词,因为如果你只有不运行的变量(或者没有运行依赖于它们)你不需要初始化它们。
例如,这段代码将毫无问题地执行,尽管如此它有 2 个变量和一个依赖于它们的操作。但是运行不需要它们。