torch.nn.BatchNorm1d(num_features, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
  • num_features – 特征维度
  • eps – 为数值稳定性而加到分母上的值。
  • momentum – 移动平均的动量值。
  • affine – 一个布尔值,当设置为真时,此模块具有可学习的仿射参数。

这里其他几个参数都不重要,只需要看num_features就可以了。num_features就是你需要归一化的那一维的维度。
nn.BatchNorm1d本身不是给定输入矩阵,输出归一化结果的函数,而是定义了一个方法,再用这个方法去做归一化。
下面是一个例子。

BN = nn.BatchNorm1d(100)
input = torch.randn(20, 100)
output = m(input)

我们首先定义了一个归一化的函数BN,需要归一化的维度为100,其他参数为默认。然后随机初始化一个20×100的矩阵input,再用BN对这个矩阵归一化。
函数的input可以是二维或者三维。当input的维度为(N, C)时,BN将对C维归一化;当input的维度为(N, C, L) 时,归一化的维度同样为C维。

Logo

旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。

更多推荐