sess.run(tf.global_variables_initializer()) 做了什么?

Posted demo-deng

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了sess.run(tf.global_variables_initializer()) 做了什么?相关的知识,希望对你有一定的参考价值。

  当我们训练自己的神经网络的时候,无一例外的就是都会加上一句 sess.run(tf.global_variables_initializer()) ,这行代码的官方解释是 初始化模型的参数。那么,它到底做了些什么?

global_variables_initializer 返回一个用来初始化 计算图中 所有global variable的 op。
这个op 到底是啥,还不清楚。
函数中调用了 variable_initializer() 和 global_variables()
global_variables() 返回一个 Variable list ,里面保存的是 gloabal variables。
variable_initializer() 将 Variable list 中的所有 Variable 取出来,将其 variable.initializer 属性做成一个 op group。
然后看 Variable 类的源码可以发现, variable.initializer 就是一个 assign op。
所以: sess.run(tf.global_variables_initializer()) 就是 run了 所有global Variable 的 assign op,这就是初始化参数的本来面目。









以上是关于sess.run(tf.global_variables_initializer()) 做了什么?的主要内容,如果未能解决你的问题,请参考以下文章

Tensorflow 中 sess.run(c) 和 c.eval() 的区别

sess.run() 将值输入占位符张量的问题

如何在 TensorFlow 中可靠地测量 sess.run() 的时间?

sess.run(tf.global_variables_initializer()) 做了什么?

tensorflow sess.run() 真的可以释放python的GIL(全局解释器外观)吗?

tensorflow常见问题