本部分介绍一些PyTorch中常见的报错信息及其解决方法
报错1:

ValueError: num_samples should be a positive integer value, but got num_samples=0

可能的原因:传入的Dataset中的len(self.data_info)==0,即传入该dataloader的dataset里没有数据
解决方法:

  1. 检查dataset中的路径,路径不对,读取不到数据。
  2. 检查Dataset的__len__()函数为何输出为零

报错2:

TypeError: pic should be PIL Image or ndarray. Got <class 'torch.Tensor'>

可能的原因:当前操作需要PIL Image或ndarray数据类型,但传入了Tensor
解决

  1. 检查transform中是否存在两次ToTensor()方法
  2. 检查transform中每一个操作的数据类型变化

报错3:

RuntimeError: invalid argument 0: Sizes of tensors must match except in dimension 0. Got 93 and 89 in dimension 1 at /Users/soumith/code/builder/wheel/pytorch-src/aten/src/TH/generic/THTensorMath.cpp:3616

可能的原因:dataloader的__getitem__函数中,返回的图片形状不一致,导致无法stack
解决方法:检查__getitem__函数中的操作

报错4:

# 通道数不匹配
conv:  RuntimeError: Given groups=1, weight of size 6 1 5 5, expected input[16, 3, 32, 32] to have 1 channels, but got 3 channels instead
# 维度不匹配
linear: RuntimeError: size mismatch, m1: [16 x 576], m2: [400 x 120] at ../aten/src/TH/generic/THTensorMath.cpp:752

可能的原因:网络层输入数据与网络的参数不匹配
解决方法:

  1. 检查对应网络层前后定义是否有误
  2. 检查输入数据shape

报错5:

AttributeError: 'DataParallel' object has no attribute 'linear'

可能的原因:并行运算时,模型被dataparallel包装,所有module都增加一个属性 module. 因此需要通过 net.module.linear调用
解决方法:

  1. 网络层前加入module.

报错6:

RuntimeError: Attempting to deserialize object on a CUDA device but torch.cuda.is_available() is False. If you are running on a CPU-only machine, please use torch.load with map_location=torch.device('cpu') to map your storages to the CPU.

可能的原因:gpu训练的模型保存后,在无gpu设备上无法直接加载
解决方法:

  1. 需要设置map_location=“cpu”

报错7:

AttributeError: Can't get attribute 'FooNet2' on <module '__main__' from '

可能的原因:保存的网络模型在当前python脚本中没有定义
解决方法:

  1. 提前定义该类

报错8:
这个错误经常在交叉熵损失函数中碰到

RuntimeError: Assertion `cur_target >= 0 && cur_target < n_classes' failed.  at ../aten/src/THNN/generic/ClassNLLCriterion.c:94

可能的原因:

  1. 标签数大于等于类别数量,即不满足 cur_target < n_classes,通常是因为标签从1开始而不是从0开始

解决方法:

  1. 修改label,从0开始,例如:10分类的标签取值应该是0-9

报错9:

RuntimeError: expected device cuda:0 and dtype Long but got device cpu and dtype Long

可能的原因:需计算的两个数据不在同一个设备上
解决方法:采用to函数将数据迁移到同一个设备上
报错10:

Expected object of backend CPU but got backend CUDA for argument #2 'weight'

可能的原因:张量的to函数非原地操作,转换数据设备未赋值,即inputs.to("CUDA"),此时,数据仍然在CPU上,未转换成功
解决办法:

inputs = inputs.to(device)

报错11:

RuntimeError: DataLoader worker (pid 27) is killed by signal: Killed. Details are lost
due to multiprocessing. Rerunning with num_workers=0 may give better error trace.

可能原因:内存不够(不是gpu显存,是内存)
解决方法:申请更大内存


如果对您有帮助,麻烦点赞关注,这真的对我很重要!!!如果需要互关,请评论或者私信!


PyTorch学习—22.PyTorch中常见报错相关推荐

  1. ESlint 中常见报错的类型和解决方案

    ESlint 中常见报错的类型和解决方案 这是我在使用 eslint 过程中遇到的一些问题,和自己总结的一些,希望对大家有帮助. vue 中 quotes 报错 :不能使用双引号 " &qu ...

  2. java开发报错怎么处理_Java开发中常见报错及解决办法

    前言: 在项目开发中,往往会遇到很多错误,有些是代码有误,而有些则是其他原因.接下来一起看看常见的报错及解决办法(小白整理,大牛勿喷). 一.找不到Xxx.Xxx.entity.Xxx.java 最近 ...

  3. Vue 开发中常见报错与处理

    1. "xxxx" is assigned a value but never used.eslintno-unused-vars 错误原因:eslint的验证语法 解决办法:在错 ...

  4. 【JavaWeb】eclipse中常见报错解决汇总

    报错一:servlet cannot be resolved to a type 解决方式:添加servlet-api.jar(tomcat所在路径的lib包中)即可 步骤: 项目名-->右键- ...

  5. 【全网最详细yolov6】yoloV6调试记录(含训练自己的数据集及常见报错及解决方法)--持续更新ing

    本文手把手教你如何调试最新的yolov6,复现运行COCO2017及训练自己的数据集,目前该项目刚发布,BUG会比较多,调起来一般不会那么顺利,本文含windows+ubuntu,并给出了一些常见问题 ...

  6. onkeypress属性添加报错_亚马逊运营过程中listing常见报错及应对策略汇总

    亚马逊运营过程中listing常见报错及应对策略汇总 做亚马逊的小哥哥小姐姐们还在为上传产品中的报错提示而抓狂吗?福利来了,总结了17个常见报错,供大家查阅 1.SKU XXXXX, Missing ...

  7. 内置Jetty配置JSP支持过程中的常见报错

    目录 1. 常见报错及解决 1.1 JSP support not configured 1.2 JSTL标签解析 1.3 JSP编译 1.4 JSP实现依赖 1.5 EL表达式支持 2. 小结 1. ...

  8. TWINCAT3中使用FIFO收集三轴的位置信息,XML文件的生成,解决常见报错

    TWINCAT3中使用FIFO收集三轴的位置信息,XML文件的生成,解决常见报错 1.首先到官网下载程序 很多时候我们用twincat不具备硬件条件,需要用到虚轴进行测试,但是对于初学者来说,用twi ...

  9. python计算机视觉常见报错及解决方案(不断更新中)

    python计算机视觉常见报错及解决方案 1.did not meet fit acceptance criteria 2.all the input arrays must have same nu ...

  10. Pytorch学习 - Task6 PyTorch常见的损失函数和优化器使用

    Pytorch学习 - Task6 PyTorch常见的损失函数和优化器使用 官方参考链接 1. 损失函数 (1)BCELoss 二分类 计算公式 小例子: (2) BCEWithLogitsLoss ...

最新文章

  1. 电视游戏会是未来客厅娱乐的主角吗?
  2. Maven如何用Eclipse创建一个Maven项目【笔记自用】
  3. 下载和安装R、RStudio !
  4. 减少浏览器兼容性问题
  5. onmounted vue3_Vue2和Vue3使用层面上的区别总结
  6. Python之logging模块
  7. 写给.NET开发者的数据库Migration方案
  8. 机器学习中的正则化(Regularization)
  9. 2015 年 Git@OSC 最热门开源项目 Top 50
  10. android shape大小,Android中shape属性详解
  11. 改进YOLOv5系列:首发结合最新CSPNeXt主干结构,高性能,低延时的单阶段目标检测器主干,通过COCO数据集验证高效涨点
  12. git glo_TWOdW,2011年8月31日:作者,演讲者,开发商Andy Glover
  13. 解决使用css元素放大动画导致的文字抖动模糊问题
  14. 【PHP面试题】请简述项目中优化SQL语句执行效率的方法,从哪些方面,SQL语句如何分析?
  15. 上海联通第一家冰激凌无限店正式开业,拥抱新零售时代!
  16. 最大池化层mp:3*3_您所说的话:电池寿命最大化提示
  17. c || 结构体 联合体 枚举类型 字符串
  18. 仓储货架钢结构平台使用的八大原则你知道多少?
  19. Qt优秀开源项目之四:茶绘君
  20. qt creator 运行 出现 “can not open .... jom for write 解决方案

热门文章

  1. [LeetCode]Link List Cycle
  2. Ubuntu下安装LAMP及phpmyadmin
  3. 转 Ubuntu16.04+QT4.8.7开发环境搭建
  4. C# 跨线程调用form控件技巧及byte[]与string型相互转换
  5. ajax-page局部刷新分页实例
  6. 用create table 命令建立表
  7. Linux操作系统中的路由表配置
  8. 软件测试的知识点总结
  9. linux运维、架构之路-Kubernetes集群部署TLS双向认证
  10. Centos 03 基础命令