Pytorch中报错报错信息非常多,这里简单总结十六种常见的报错信息,方便大家Debug


1

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

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

解决方法:

检查dataset中的路径,路径不对,读取不到数据

检查Dataset的__len__()函数为何输出为零


2

报错:TypeError: pic should be PIL Image or ndarray. Got

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

解决方法:

检查transform中是否存在两次ToTensor()方法

检查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

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

解决方法:

检查对应网络层前后定义是否有误

检查输入数据shape


5

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

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

解决方法:网络层前加入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设备上无法直接加载

解决方法:需要设置map_location="cpu"


7

报错:AttributeError: Can't get attribute 'FooNet2' on

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

解决方法:提前定义该类


8

报错:RuntimeError: Assertioncur_target >= 0 && cur_target < n_classes’ failed. at …/aten/src/THNN/generic/ClassNLLCriterion.c:94`

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

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


9

报错:RuntimeError: expected device cuda:0 and dtype Long but got device cpu and dtype Long Expected object of backend CPU but got backend CUDA for argument #2 'weight'

可能的原因:需计算的两个数据不在同一个设备上

解决方法:采用to函数将数据迁移到同一个设备上


10

报错: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显存,是内存)

解决方法:申请更大内存


11

报错:RuntimeError: reduce failed to synchronize: device-side assert triggered

可能的原因:采用BCE损失函数的时候,input必须是0-1之间,由于模型最后没有加sigmoid激活函数,导致的。

解决方法:让模型输出的值域在 [ 0 , 1 ] [0,1] [0,1]


12

报错:RuntimeError: unexpected EOF. The file might be corrupted.

可能的原因:torch.load加载模型过程报错,因为模型传输过程中有问题

解决方法:重新传一遍模型即可


13

报错:UnicodeDecodeError: 'utf-8' codec can't decode byte 0xff in position 1: invalid start byte

可能的原因:python2保存,python3加载,会报错

解决方法:把encoding改为encoding=‘iso-8859-1’,check_p = torch.load(path, map_location="cpu", encoding='iso-8859-1')


14

报错:RuntimeError: Input type (torch.cuda.FloatTensor) and weight type (torch.FloatTensor) should be the same

问题原因:数据张量已经转换到GPU上,但模型参数还在cpu上,造成计算不匹配问题。

解决方法:通过添加model.cuda()将模型转移到GPU上以解决这个问题。或者通过添加model.to(cuda)解决问题


15

报错:RuntimeError: cuDNN error: CUDNN_STATUS_INTERNAL_ERROR

问题原因:jupyter notebook中调用了cuda,但没有释放

解决方法:把对应的ipynb文件shutdown就可以了


16

报错:RuntimeError: CUDA out of memory. Tried to allocate 46.00 MiB (GPU 0; 2.00 GiB total capacity; 54.79 MiB already allocated; 39.30 MiB free; 74.00 MiB reserved in total by PyTorch)

原因:可以看出在GPU充足的情况下无法使用,本机有两个GPU,其中一个GPU的内存不可用?

解决办法:在model文件(只有model中使用了cuda)添加下面两句:

import os
os.environ['CUDA_VISIBLE_DEVICES']='2, 3'

PyTorch中的常见报错总结相关推荐

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

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

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

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

  3. MIKE 21 教程 1.7 网格生成过程中的常见报错与问题

    此文章实时更新,大家遇到任何问题均可文末留言,比较经典的问题我会放上来 目前已知的常见问题有: 1 边界数据与高程数据导入之后高程数据看不见/不在同一区域 可能因为二者坐标系选择问题,请确认二者的坐标 ...

  4. #环境配置#pytorch安装后常见报错

    1.from PIL import Image, ImageOps, ImageEnhance, PILLOW_VERSION ImportError: cannot import name 'PIL ...

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

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

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

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

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

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

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

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

  9. 微信小程序根据坐标点解析地址常见报错:请求来源未被授权

    功能需求 微信小程序提供的接口能够获取到当前位置的坐标(经纬度),但是不能得到当前位置的地址.或者从后台获取到坐标(经纬度)要解析成文字描述的地址小程序也没有对应的接口. 实现思路 这时候就需要通过腾 ...

最新文章

  1. Linux进程间的通信----->共享内存
  2. 深入biztalk消息以及消息订阅发布路由机制(二)-消息订阅【转】
  3. python发明者叫什么-近 50 年来最具影响力的 10 种编程语言,都是谁发明的?
  4. Android libcutils库中整数溢出导致的堆破坏漏洞的发现与利用
  5. Go的RESTful
  6. 使用手机测试、访问本地环境方法
  7. 联想计算机CDROM启动,联想电脑光驱启动问题?
  8. 10+ 最佳的 Node.js 教程和实例
  9. Android官方开发文档Training系列课程中文版:如何避免ANR?
  10. Cowboy 源码分析(二十六)
  11. ubuntu服务器系统管理软件,安装 Webmin 来管理你的 Ubuntu 主机
  12. php data取年月,PHP-date函数 年、月、日参数详解
  13. 英语口语常用1368词汇
  14. C++ 学习(基础语法篇)
  15. 工业相机 镜头 焦距 视野 计算相关
  16. 二叉树的层序遍历(二)---之字形层序遍历
  17. 谈谈HashMap为什么是线程不安全的?
  18. Fedora16+XAMPP+Drupal7建站,从零开始全程指导
  19. python小白入门
  20. bias and variance在机器学习中的应用

热门文章

  1. Maven工程错误 之 Failure to transfer org.codehaus.plexus:plexus-archiver:pom:1.0
  2. Java 常用图片处理合集
  3. python方差齐性检验_讲讲如何来检验方差齐性
  4. 蓝牙无线远程更换语音mp3方案 支持spiflash和TF卡或者U盘
  5. 史上最全的StarUML使用教程
  6. Python学习笔记 - 探索while无限迭代循环
  7. NiiOS-iOS复习及在学习进度更新
  8. GEE|在地图上显示传入的shp数据
  9. c语言点阵式注释语句,LED点阵显示与C语言编程(基础篇)_希希_百度空间
  10. 大数据之Python数据分析 实训 信用卡客户风险评价之一、处理信用卡数据异常值