关于nn.BatchNorm1d()用法及说明

 更新时间:2023年08月03日 16:27:35   作者:Code_demon  
这篇文章主要介绍了关于nn.BatchNorm1d()用法及说明,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教

nn.BatchNorm1d()用法

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维。

使用nn.BatchNorm1d出现RuntimeError

pytorch模型中添加batchnorm过程中出现错误

RuntimeError: running_mean should contain 1 elements not 512

错误来自于nn.BatchNorm1d(N),其中N=channels

解决办法

将输入重新排列

video = video.view(-1, video.shape[-1])

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

最新评论