2017-04-26 77 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

回答

相關問題