global_variables_initializer()做什么变量进行初始化?

时间:2018-05-04 03:42:59

标签: python tensorflow global-variables

在tensorflow中,在我使用cell.zero_state()来初始化单元状态和隐藏状态之后,我应该初始化全局变量,否则RNN单元将不会运行。

但是,我想知道它是如何全球化的(初始化变量范围?)以及它变换全局化的变量(偏差?重量?激活函数?)?

enter link description here

我认为应该初始化的参数不是:每个神经元中的重量,偏差,激活函数。

global_variables_initializer实际上做了什么?

非常感谢!

1 个答案:

答案 0 :(得分:0)

无论何时在TensorFlow中create a variable,框架都会负责将此变量添加到已创建变量的集合中。想象一下带有变量指针的列表。 此类变量的默认集合称为GraphKeys.GLOBAL_VARIABLES

函数tf.global_variables_initializer只是retrieves来自集合的所有变量和initializes它们。

zero_state并非直接创建变量。它只是将匹配形状的全零和#34-赋予单元变量。

初始变量值的范围取决于变量初始值。

总结:每个权重,偏差,隐藏状态变量都收集在一个特殊的创建变量列表中,TensorFlow只是初始化每个变量,类似于伪代码:

foreach v in GraphKeys.GLOBAL_VARIABLES:
    assign v.value = v.call_initializer()