在tensorflow中,在我使用cell.zero_state((初始化单元格状态和隐藏状态后,我应该初始化全局变量,否则RNN单元格将无法运行。
但是,我想知道它是如何全球化的(初始化变量范围?(以及它全球化了哪些变量(偏差?权重?激活函数?(?
在此处输入链接说明
我认为应该初始化的参数不是其他的:每个神经元中的权重、偏差、激活函数。
global_variables_initializer实际上做了什么?
多谢!
每当在 TensorFlow 中创建变量时,框架都会负责将此变量添加到已创建变量的集合中。考虑一个带有指向变量的指针的列表。 此类变量的默认集合称为GraphKeys.GLOBAL_VARIABLES
。
该函数tf.global_variables_initializer
只是从集合中检索所有这些变量并初始化它们。
zero_state
不是直接创建变量。它只是将匹配形状的"全零"张量返回给单元格变量。
初始变量值的范围取决于变量初始值设定项。
总结一下:每个权重、偏差、隐藏状态变量都收集在一个特殊的创建变量列表中,TensorFlow 只是初始化这些变量中的每一个,类似于伪代码:
foreach v in GraphKeys.GLOBAL_VARIABLES:
assign v.value = v.call_initializer()