内部的参数如下:
1.num_features:特征维度,num_features就是需要归一化的那一维的维度。
2.eps:分母中添加的一个值,目的是为了计算的稳定性,默认为:1e-5
3.momentum:一个用于运行过程中均值和方差的一个估计参数,移动平均的动量值。(可能是一个稳定系数,类似于SGD中的momentum的系数)
4.affine:当设为true时,会给定可以学习的系数矩阵gamma和beta,此模块具有可学习的仿射参数。
nn.BatchNorm1d(num_features)
对小批量(mini-batch)的2d或3d输入进行批标准化(Batch Normalization)操作
num_features
输入维度是(N, C, L)时,num_features应该取C;这里N是batch size,C是数据的channel,L是数据长度。
输入维度是(N, L)时,num_features应该取L;这里N是batch size,L是数据长度,这时可以认为每条数据只有一个channel,省略了C
num_features:特征维度,该期望输入的大小为'batch_size x num_features [x width]'。意思即输入大小的形状可以是'batch_size x num_features' 和 'batch_size x num_features x width' 都可以。(输入输出相同)
输入Shape:(N, C)或者(N, C, L)
输出Shape:(N, C)或者(N,C,L)
在每一个小批量(mini-batch)数据中,计算输入各个维度的均值和标准差。gamma与beta是可学习的大小为C的参数向量(C为输入大小)在训练时,该层计算每次输入的均值与方差,并进行移动平均。移动平均默认的动量值为0.1。在验证时,训练求得的均值/方差将用于标准化验证数据。
nn.BatchNorm2d(num_features)
对小批量(mini-batch)3d数据组成的4d输入进行批标准化(Batch Normalization)操作
num_features:特征维度,该期望输入的大小为'batch_size x num_features x height x width'
输入Shape:(N, C,H, W) 输出Shape:(N, C, H, W)
BN的就是 100*35*45