chainer.functions.
batch_normalization
(x, gamma, beta, eps=2e-5,
running_mean=None, running_var=None, decay=0.9)[source]
バッチ正規化関数。
入力値 x
と2つのパラメータ変数 gamma
と beta
をとります。このパラメータ変数は同じ次元でなければならず、チャネルのshapeとして参照されます。このチャネルのshapeは平均化されていない入力値の次元数に対応しています。入力値の1次元目はバッチサイズに相当するため、xの2次元目はチャネルの1次元目に相当し、xの3次元目は(もし存在するならば)チャネルの2次元目に、というかたちで相応していくことになります。ですから、入力値の次元は少なくともチャネルの次元数+1でなければなりません。 効率的な総バッチサイズはチャネル次元を除いたxにおける全ての次元の積であると考えられるでしょう。
例えば、入力が4次元で、パラメータ変数が1次元の場合、入力値の1次元目はバッチサイズで2次元目はチャネルサイズ、残りの2次元はバッチ正規化の計算の際にバッチサイズに添って平均化するための空間次元とみなされます。つまり、総バッチサイズは2番めの次元を除く全ての入力値の積であると考えられます。
Note: この関数が呼び出されると、更新された移動平均と移動分散の統計へアクセスすることができなくなります。なぜなら、これらは関数オブジェクトのメンバーであるため、呼び出し元からアクセスすることが出来ないからです。これら更新された移動統計値にアクセスしたい場合、 関数オブジェクトの新しいインスタンスを取得し、オブジェクトを呼び出し、 running_mean属性 や running_var 属性にアクセスする必要があります。
このやり方については、対応するLinkクラスもお読みください。
train
引数は、v2以降ではサポートされません。 替わりにchainer.using_config('train',
train)
を使用してください。 chainer.using_config()
もお読みください。
Parameters: |
|
---|
お読みください。: Batch Normalization: Accelerating Deep Network Training by Reducing Internal Covariate Shift
links.BatchNormalization