ネットワークで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.pyから
、今度はついにget_variable
を呼び出すように見えるVariableScope
のインスタンスを返すように見える方法_pure_variable_scope
を呼び出すように見えるvariable_scope
方法。次のようにget_variable
ためdocstring読み取り:
イニシャライザは
None
(デフォルト)の場合、変数のスコープに を通過したデフォルトの初期化が使用されます。それがNone
でもある場合は、glorot_uniform_initializer
が使用されます。初期化子は テンソルにもなります。この場合、変数はこの値に初期化され、 の形になります。
初期化子を指定しない限り、LSTMCellはglorot_uniform_initializer
で初期化されますか?