BatchNorm2d#
- classtorch.nn.BatchNorm2d(num_features,eps=1e-05,momentum=0.1,affine=True,track_running_stats=True,device=None,dtype=None)[source]#
Applies Batch Normalization over a 4D input.
4D is a mini-batch of 2D inputswith additional channel dimension. Method described in the paperBatch Normalization: Accelerating Deep Network Training by ReducingInternal Covariate Shift .
The mean and standard-deviation are calculated per-dimension overthe mini-batches and and are learnable parameter vectorsof sizeC (whereC is the input size). By default, the elements of are setto 1 and the elements of are set to 0. At train time in the forward pass, thestandard-deviation is calculated via the biased estimator, equivalent to
torch.var(input,unbiased=False). However, the value stored in the moving average of thestandard-deviation is calculated via the unbiased estimator, equivalent totorch.var(input,unbiased=True).Also by default, during training this layer keeps running estimates of itscomputed mean and variance, which are then used for normalization duringevaluation. The running estimates are kept with a default
momentumof 0.1.If
track_running_statsis set toFalse, this layer then does notkeep running estimates, and batch statistics are instead used duringevaluation time as well.Note
This
momentumargument is different from one used in optimizerclasses and the conventional notion of momentum. Mathematically, theupdate rule for running statistics here is,where is the estimated statistic and is thenew observed value.Because the Batch Normalization is done over theC dimension, computing statisticson(N, H, W) slices, it’s common terminology to call this Spatial Batch Normalization.
- Parameters
num_features (int) – from an expected input of size
eps (float) – a value added to the denominator for numerical stability.Default: 1e-5
momentum (Optional[float]) – the value used for the running_mean and running_varcomputation. Can be set to
Nonefor cumulative moving average(i.e. simple average). Default: 0.1affine (bool) – a boolean value that when set to
True, this module haslearnable affine parameters. Default:Truetrack_running_stats (bool) – a boolean value that when set to
True, thismodule tracks the running mean and variance, and when set toFalse,this module does not track such statistics, and initializes statisticsbuffersrunning_meanandrunning_varasNone.When these buffers areNone, this module always uses batch statistics.in both training and eval modes. Default:True
- Shape:
Input:
Output: (same shape as input)
Examples:
>>># With Learnable Parameters>>>m=nn.BatchNorm2d(100)>>># Without Learnable Parameters>>>m=nn.BatchNorm2d(100,affine=False)>>>input=torch.randn(20,100,35,45)>>>output=m(input)