【问题标题】:What variables does global_variables_initializer() do the initialization?global_variables_initializer() 初始化哪些变量?
【发布时间】:2018-05-04 14:04:14
【问题描述】:

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

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

enter link description here

我认为应该初始化的参数不外乎:每个神经元中的权重、偏差、激活函数。

global_variables_initializer 实际上做了什么?

非常感谢!

【问题讨论】:

    标签: python tensorflow global-variables


    【解决方案1】:

    每当您在 TensorFlow 中 create a variable 时,框架都会负责将此变量添加到已创建变量的集合中。考虑一个带有变量指针的列表。 此类变量的默认集合称为GraphKeys.GLOBAL_VARIABLES

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

    zero_state 不是直接创建变量。它只是将匹配形状的“全零”张量返回给单元格变量。

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

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

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

    【讨论】:

    • 感谢您的回复!那么使用 zero_state 就像在获取 RNN 单元的输出状态之前保存初始“状态”张量?顺便说一句,如果我通过 tf.Variable() 初始化一个权重、偏差、隐藏状态,它会自动导入你说的列表吗?如果是,当我调用 global_variable_initialize() 时,这些变量会再初始化一个吗?
    猜你喜欢
    • 2010-10-26
    • 1970-01-01
    • 2023-01-20
    • 1970-01-01
    • 1970-01-01
    • 2011-05-29
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多