2017-04-26 80 views
0

我在我的网络中使用LSTMCell单元,我无法弄清楚这个单元的权重是如何初始化的。如何在TensorFlow中初始化LSTMCell单元的权重

我已经试过从方法到代码的潜水,但我不是100%确定所有代码的工作原理。

在LSTMCell源代码中,以下几行似乎是初始化权重。从contrib/rnn/python/ops/core_rnn_cell_impl.py

[...] 
    scope = vs.get_variable_scope() 
    with vs.variable_scope(scope, initializer=self._initializer) as unit_scope: 
     [...] 

variable_scope以及如何范围的定义也混淆了我,而且我不确定这个逻辑是如何工作的方法。

python/ops/variable_scope.pyvariable_scope似乎要调用的方法_pure_variable_scope,而这又似乎回到的VariableScope一个实例,它似乎终于调用get_variable的方法。该docstringget_variable内容如下:

如果初始化是None(默认值),则默认初始值传递的可变范围 将被使用。如果那个也是None,则会使用 glorot_uniform_initializer。初始化器也可以是一个张量器,在这种情况下,变量初始化为该值并且形状为 。

是否正确:除非没有指定初始化程序,否则LSTMCell将被初始化为glorot_uniform_initializer

回答

相关问题