ValueError: Expected more than 1 value per channel when training

  • 一、解决方案
  • 二、问题分析
  • 三、深入分析,修改源码

一、解决方案

  1. dataloader设置参数 drop_last=True1 丢弃掉最后单独的样本
  2. 在训练前用num_of_samples % batch_size 算一下会不会正好剩下一个样本2
  3. 如果模型只inference,无需更新参数可以设置model.eval()
  4. 修改源码,注释掉相关判断的源码3 (自己心理得有数)

我遇到的问题比较奇怪,使用BatchNorm1d报错,但是BatchNorm2d就正常…

二、问题分析

ValueError: Expected more than 1 value per channel when training, got input size torch.Size xxx

如果输入的batch size = 1就抛出ValueError,那我的BatchNorm2d是如何正常运行的?.. 继续调试

明明输入的batch_size=1,突然变成500了
擦。。输入的是:torch.Size([1, 128, 500, 1]) 经过上一行标黄处代码size_prods变了
如果输入torch.Size([1, 512]),size_prod不会改变

  • 为什么使用BatchNorm1d报错,但是BatchNorm2d就正常... 原来是我应用它俩的场景不一样

三、深入分析,修改源码

BN详解4:Batch Normalization 学习笔记
需要明确,输入的batch_size=1 或者较小的话确实会影响BN参数的更新,以至于可能影响模型最后的效果


由于个人原因,需要batch_size=1时候的实验数据,故此记录

将相关代码注释,保留源函数 加个pass空操作 - 插眼


  1. 解决报错:ValueError: Expected more than 1 value per channel when training ↩︎

  2. Pytorch的12个坑 ↩︎

  3. 解决raise ValueError(“Expected more than 1 value per channel when training, got报错(亲测有效) ↩︎

  4. Batch Normalization 学习笔记 ↩︎

【pytorch】ValueError: Expected more than 1 value per channel when training相关推荐

  1. Debug Pytorch: ValueError: Expected more than 1 value per channel when training, got input size tor

    ValueError: Expected more than 1 value per channel when training, got input size torch.Size([1, 512] ...

  2. bn层Expected more than 1 value per channel when training, got input size torch.Size

    报错代码: File "E:/project/fenge/jacke121-U-2-Net-master_mse/nets/bisnet.py", line 106, in for ...

  3. 【Pytorch】常见的人脸身份识别损失函数

    [Pytorch]常见的人脸身份识别损失函数 实验环境准备:人脸多角度多光照的图像数据集MUCT(276个受试者)+ MobileNetV3 说明:对于人脸身份数据集MUCT,是少样本数据集,应该使用 ...

  4. 【PyTorch】8 语言翻译Torchtext实战——英语和德语翻译、Attention模型、 Pytorch 1.8 安装

    torchtext 语言翻译 1. 数据处理 2. DataLoader 3. 定义nn.Module和Optimizer 4. 训练 4.1 Pytorch 1.8 安装 4.2 训练网络 5. 测 ...

  5. 【Pytorch】| Pytorch中softmax的dim的详细总结

    [Pytorch]| Pytorch中softmax的dim的详细总结 关于softmax的理解 一维向量:dim=0和dim=-1结果相同,dim=1和dim=2会报错 二维张量:dim=1和dim ...

  6. 【PyTorch】09深度体验之图像分类

    9 PyTorch深度体验 图像分类(Image Classification) [PyTorch]8.1 图像分类 9.1 模型如何完成图像分类? 图像分类的推理步骤: 9.2 ResNet18模型 ...

  7. 【PyTorch】构造VGG19网络进行本地图片分类(超详细过程)——项目介绍

    本篇博客主要解决以下3个问题: 如何自定义网络(以VGG19为例). 如何自建数据集并加载至模型中. 如何使用自定义数据训练自定义模型. 第一篇:[PyTorch]构造VGG19网络进行本地图片分类( ...

  8. 【金融】【pytorch】使用深度学习预测期货收盘价涨跌——全连接神经网络模型构建与训练

    [金融][pytorch]使用深度学习预测期货收盘价涨跌--全连接神经网络模型构建与训练 模型构建与训练 模型构建与训练 def get_accuracy(SR,GT,threshold=0.5):S ...

  9. 【金融】【pytorch】使用深度学习预测期货收盘价涨跌——LSTM模型构建与训练

    [金融][pytorch]使用深度学习预测期货收盘价涨跌--LSTM模型构建与训练 LSTM 创建模型 模型训练 查看指标 LSTM 创建模型 指标函数参考<如何用keras/tf/pytorc ...

最新文章

  1. 在全面部署 IPV6 前,你需要了解都在这儿
  2. 学python用什么教材-金融学专业学python用什么教材或课外资料比较好?
  3. 学习笔记---母板页、用户控件、第三方控件及视图状态管理
  4. Silverlight 参考:三维效果(透视转换) -- MSN
  5. ubuntu 下通过 sh 命令运行脚本产生如下错误:[: y: unexpected operator
  6. php 获取设备,PHP获取设备类型实例代码
  7. java中的args参数
  8. 【css】响应式布局 @media媒介 适配平板手机
  9. TensorFlow 2.0简介
  10. 深度比较Map的遍历
  11. android ui新控件,android_常用UI控件_01_TextView3_点击打开新的activity
  12. python单词的含义-Python常用英文单词有哪些?
  13. a链接下载文件名乱码
  14. 中国大学MOOC电影鉴赏题库(含答案)
  15. Html+Css实现鼠标经过图片放大
  16. 盗版WIN7的管理员权限
  17. 《研发企业管理——思想、方法、流程和工具》——第1章 企业管理基本理念 1.1 企业的根本目标及其内涵...
  18. 记录-老联想笔记本安装 centos8
  19. c语言switch不可以用枚举,化解一个误区,其实switch和enum是能够很方便配合使用的...
  20. Java实现AES加密算法

热门文章

  1. 自动管道过滤器结构组成与应用领域介绍
  2. ROM、RAM、DRAM、SRAM和FLASH的区别
  3. 格子玻尔兹曼法学习记录(附MATLAB画图源程序)
  4. 基础案例学习(工匠工坊案例)
  5. 基于有源钳位三电平的有源电力滤波器(ANPC-APF)MATLAB仿真,包括自建的DSOGI锁相模块和PQ谐波检测模块。 可简单解释。
  6. Django组件拾忆
  7. C语言标准输入输出缓冲区
  8. 挽救婚姻从“心”开始
  9. 图像语义分割——利用DeeplabV3+预测单张照片
  10. dism 分割镜像_DISM修改WDS启动镜像实现自动捕获镜像