关于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])
总结
以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。
相关文章
PyCharm Anaconda配置PyQt5开发环境及创建项目的教程详解
这篇文章主要介绍了PyCharm Anaconda配置PyQt5开发环境及创建项目的方法,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下2020-03-03python Jieba分词处理详解【模式,词库的添加、删除,自定义词库,失败处理等】
这篇文章主要介绍了python Jieba分词处理,结合实例形式详细分析了python 使用jieba分词的模式,词库的添加、删除,自定义词库,失败处理等相关操作技巧,需要的朋友可以参考下2023-07-07Python 如何利用pandas和matplotlib绘制饼图
这篇文章主要介绍了Python 如何利用pandas和matplotlib绘制饼图,代码使用了Pandas和Matplotlib库来绘制店铺销售数量占比的饼图,需要的朋友可以参考下2023-10-10
最新评论