tf.global_variables_initializer()在后台做什么?

tf.global_variables_initializer()在后台做什么?,第1张

tf.global_variables_initializer()在后台做什么?

TensorFlow
API的一节非常短

tf.global_variables_initializer
。它只是提到:

这只是的快捷方式

variable_initializer(global_variables())

将其跟踪到

tf.variables_initializer
,我们可以看到此函数的用法如下:

tf.variables_initializer(var_list, name='init')

这意味着我们正在implitcitly传递

tf.global_variables
作为
var_list
tf.variables_initializer
。如果在调用之前没有定义任何变量
tf.global_variables_initializer
var_list
则本质上为空。下面的代码说明了这一点

import tensorflow as tfwith tf.Graph().as_default():  # Nothing is printed  for v in tf.global_variables():    print v  init_op = tf.global_variables_initializer()  a = tf.Variable(0)  b = tf.Variable(0)  c = tf.Variable(0)  # 3 Variables are printed here  for v in tf.global_variables():    print v  with tf.Session() as sess:    sess.run(init_op)    print sess.run(a)

输出的3个变量是这样的:

<tf.Variable 'Variable:0' shape=() dtype=int32_ref><tf.Variable 'Variable_1:0' shape=() dtype=int32_ref><tf.Variable 'Variable_2:0' shape=() dtype=int32_ref>

像上面那样运行上面的代码会导致错误:

Attempting to use uninitialized value

交换位置

init_op
a b c

  a = tf.Variable(0)  b = tf.Variable(0)  c = tf.Variable(0)  init_op = tf.global_variables_initializer()

将使其工作。



欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/zaji/5642966.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-12-16
下一篇2022-12-16

发表评论

登录后才能评论

评论列表(0条)

    保存