web-dev-qa-db-ja.com

pytorchのconvのデフォルトの重み初期化子は何ですか?

質問 PyTorchで重みを初期化する方法は? は、Pytorchで重みを初期化する方法を示しています。ただし、ConvDenseおよびPytorchのデフォルトの重み初期化子は何ですか? Pytorchはどのディストリビューションを使用しますか?

10
Danning Xie

pytorchレイヤーは、重みを初期化するためにレイヤー初期化の最後に呼び出されるメソッド_reset_parameters_を実装します。レイヤーの実装を見つけることができます ここ

たとえば、pytorchではlinearと呼ばれる密なレイヤーの場合、重みは均一に初期化されます

_stdv = 1. / math.sqrt(self.weight.size(1))
self.weight.data.uniform_(-stdv, stdv)
_

ここで、self.weight.size(1)は入力の数です。これは、トレーニングの開始時に各層の分布の分散を1に正規化することにより、比較的類似した状態に保つために行われます。あなたはより詳細な説明を読むことができます ここ

畳み込み層の場合、初期化は基本的に同じです。チャネル数にカーネルサイズを掛けて、入力数を計算するだけです。

7
McLawrence