公式ドキュメントには、
BN レイヤーについて詳しく説明されています。
Pytorch の BatchNorm レイヤーの使用時に発生しやすい問題
class torch.nn.BatchNorm2d(num_features, eps=1e-05, momentum=0.1, affine=True)[source]
ミニバッチ 3D データで構成される 4D 入力に対するバッチ正規化操作
データの各ミニバッチで、各入力次元の平均と標準偏差を計算します。ガンマとベータは、サイズ C (C は入力サイズ) の学習可能なパラメーター ベクトルです。
トレーニング中に、このレイヤーは各入力の平均と分散を計算し、移動平均を実行します。移動平均のデフォルトのモメンタム値は 0.1 です。
検証時には、トレーニングの平均/分散を使用して検証データが正規化されます。
パラメータ:
- num_features: サイズ「batch_size x num_features x height」の予期される入力からの特徴の数
- x width' eps: 数値の安定性を確保するため (分母が 0 に近づくことも、0 を取ることもできません)、分母に加算される値。デフォルトは 1e-5 です。勢い:
動的平均と動的分散に使用される勢い。デフォルトは 0.1 です。 - affine: ブール値を true に設定すると、学習可能なアフィン変換パラメータがこのレイヤーに追加されます。形:
- 入力:(N、C、H、W) - 出力:(N、C、H、W)(入力、出力共通)