位置: IT常识 - 正文

深度学习和日常代码中遇到的报错汇总及解决方案,持续更新中。。。。

编辑:rootadmin
深度学习和日常代码中遇到的报错汇总及解决方案,持续更新中。。。。

推荐整理分享深度学习和日常代码中遇到的报错汇总及解决方案,持续更新中。。。。,希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:,内容如对您有帮助,希望把文章链接给更多的朋友!

本文是深度学习和日常代码中遇到的报错汇总,因时间比较久,暂时都没有图片,只有文字描述。解决方案也大多参考网上的解决方案,有些有用,有些没有效果,本文章中的问题,也仅是本人遇到的问题,使用列举的方案已经解决。

1、报错"RuntimeError: Boolean value of Tensor with more than one value is ambiguous"。

处理:调用的方法是一个类,需要先进行实例化在进行调用

2、神经网络模型训练过程中,损失和输出都是nan

处理:尝试了网上大家的方式,都没有解决这个问题,后来将pytorch和cuda都降低了版本,问题解决了(要调试网络,看具体在那一步导致的loss为nan)。

网络上找到的其他人总结的解决方式:

1)如果在迭代的100轮以内,出现NaN,一般情况下的原因是因为你的学习率过高,需要降低学习率。可以不断降低学习率直至不出现NaN为止,一般来说低于现有学习率1-10倍即可。

2)如果当前的网络是类似于RNN的循环神经网络的话,出现NaN可能是因为梯度爆炸的原因,一个有效的方式是增加“gradient clipping”(梯度截断来解决)

3)可能用0作为了除数;

4)可能0或者负数作为自然对数

5)需要计算loss的数组越界(尤其是自己,自定义了一个新的网络,可能出现这种情况)

6)在某些涉及指数计算,可能最后算得值为INF(无穷)(比如不做其他处理的softmax中分子分母需要计算exp(x),值过大,最后可能为INF/INF,得到NaN,此时你要确认你使用的softmax中在计算exp(x)做了相关处理(比如减去最大值等等))

7)若模型训练开始时出现,增大或减小batch_size的值,需要增大或减小后去跑模型观察情况,是否还会出现;优化神经网络结构(增加或减少网络深度)

8)若模型运行过程中出现,需要考虑是否是梯度爆炸引起,需要调低学习率或对梯度进行优化。

特殊情况,换激活函数

卷积在使用BN之后,可以换成sigmoid或tanh激活函数

3、报错cuda内存不足

解决方式:

1)减小batch_size

2)减小网络

4、报错:AttributeError: cannot assign module before Module.__init__() call

原因:

1、引用了父类Module,但是在初始化中没有对父类的初始化函数进行重构

解决方式:

1、在init初始化中,使用super()对父类的初始化函数进行重构

5、训练时报错:cuDNNerror:CUDNN_STATUS_EXECUTION_FAILED

解决方式:

1)在循环的最后加上 torch.cuda.empty_cache()

2)检查在代码中是否有SummerWrite(),有的情况禁用相关代码在进行调试

3)在代码中加上os.environ["CUDA_LAUNCH_BLOCKING"] = "1"

6、报错RuntimeError: CUDNN_STATUS_MAPPING_ERROR

解决方式:

1)在尝试在代码开始部分加入如下2个代码:

torch.backends.cudnn.enabled = True

torch.backends.cudnn.benchmark = True

7、网络模型报错:Expected more than 1 value per channel when training, got input size torch.Size

原因:因为模型中用了batchnomolization,训练中用batch训练的时候当前batch恰好只含一个值,而由于BatchNorm操作需要多于一个数据计算平均值,因此造成该错误

解决方式:

1、加大Batch_Size

2、网络设置eval模式

3、去掉网络中的batchnormal

调整输入,使batchnormal不止是1个值

8、YOLOv3加载pt文件报错RuntimeError: PytorchStreamReader failed locating file data/4: file not found

原因:pt文件损坏,无法加载

解决方式:重新训练

9、神经网络运行时报错RuntimeError: Found dtype Double but expected Float”

原因:数据精度不一致导致的问题

处理方式:1、检查所有数据的精度是不是一样(标签、模型输入和输出、损失函数的输入和输出数据的精度),不一样的情况,需要修改为相同精度

10、加载参数文件报错EOFError: Ran out of input深度学习和日常代码中遇到的报错汇总及解决方案,持续更新中。。。。

原因:​EOFError​​是​​IOError​​的子类。表示没有按照正确的读写模式操作文件,会报此错。

本人是因为训练过程中突然断电,有电后重新加载参数进行训练时报的这个错误

解决方式:

1、本人解决方式是删除参数文件,并重新跑

网上有解决方式说在Dataloader中,将num_workers设置为0就可以。本人尝试无效,猜测可能是造成原因不同,导致该操作无效。

11、yoloV5训练过程中报错::OSError: [WinError 1455] 页面文件太小,无法完成操作。

原因:

1)环境的虚拟内存不足

2)batch-size太大,

3)数据问题

解决方式:

前2种情况可以参考博客:https://blog.csdn.net/weixin_53660567/article/details/126635843,一般前两种情况遇到比较多。

1)增大环境的虚拟内存(环境所在盘的虚拟内存)

2)调小batch-size,或者将workers设置为0

处理数据

12、yoloV5训练过程中报错:NotImplementedError: Could not run ‘torchvision::nms‘ with arguments from the ‘CUDA‘ backend.

原因:1、torch和torchvision版本不同,比如torch是支持cuda的,但是torchvision不支持cuda

2、torch和cuda版本不对

解决方式:

1、卸载torch和torchvision,重新一起安装 相同的torch和torchvision

2、卸载torch和cuda,并分别重新安装,使版本匹配

13、使用mac电脑运行时报错:"histogram_cpu" not implemented for "long"

原因:不支持long类型的运算

解决方式:将报错代码输入数据类型设置为float,我是在使用torch.histc()方法时出现的错误。

14、对图片进行操作时报错“AttributeError: ‘numpy.ndarray‘ object has no attribute ‘convert'”。

原因:此时图片的数据方式是numpy的array,不能进行图片相关操作,需要转换为图片数据

解决方式:将图片数据转化为Image的数据格式在进行图片操作。转换方式:Image.fromarray(np.uint8(img))

15、将numpy.ndarray转换为Image图片数据时,报错“TypeError: Cannot handle this data type: (1, 1, 512), |u1”。

原因:需要检查numpy.ndarray的数据的格式,是否是(H,W,C)格式,如果是(C,H,W)格式的话,需要换轴处理

解决方式:将numpy.ndarray数据进行换轴操作(img = img.transpose((1, 2, 0))),换成(H,W,C)格式,换轴之后在进行转换

16、使用神经网络训练/测试图片时,会报错“RuntimeError: Given groups=1, weight of size [64, 3, 7, 7], expected input[1, 4, 224, 224] to have 3”。

原因:图片通道数发生变化导致,例如训练时使用的是3通道图片进行训练,测试时使用单通道图片进行测试

解决方案:对传入的图片进行处理,转为单通道图片或转为3通道图片,根据实际项目调整。

17、对PIL的Image图片进行抠图时报错“TypeError: type numpy.ndarray doesn‘t define __round__ method”。

原因:抠图时,传入的坐标值为nump.ndarray ,没有__round__这个方法

解决方案:使用np.round(data)对数据进行处理之后,在传入到抠图的方法中即可。

18、pytorch操作张量时报错“IndexError: too many indices for tensor of dimension 1”。

原因:张量中存在多个tensor张量列表,导致在dim=1的轴上进行索引时,存在多个张量数组,程序报错,数据格式类似如下:

tensor([tensor([1]),tensor([b])])

解决方式:检测前面步骤的数据处理,是否存在问题,可以参考以下处理方式:

1、使用索引方式获取数据,一次性获取所有所需要数据

2、使用cat将不同张量数据整合为一个张量数据

将张量数据转化为numpy数据,在将数据组合到一起之后,在转为tensor张量

19、神经网络开始训练的时候计算损失报错:untimeError: 0D or 1D target tensor expected, multi-target not supported。

解决方式:

1、若使用的是NllLoss损失函数,则标签的损失不需要处理成one-hot编码格式,只需要是0或1维的标签数据就可以。

2、若是其他损失函数,需要检查计算损失的2个张量的大小和形状是否一致

20、使用cv2处理图片时,报错:error: (-215:Assertion failed) m.dims >= 2 in function 'cv::Mat::Mat'。

分析:图片或文件路径问题,可以将cv2.imread()的图片打印出来,看返回是否有数据还是None,我的情况是返回的是None。

解决措施:

1)如果是路径问题,处理图片路径

2)如果是图片问题,可以尝试使用PIL打开图片,在转换成cv2格式进行操作

from PIL import Imageimport cv2img = cv2.imread(file_path)#将cv2打开的图片转换为PIL格式的图片img_pil = Image.fromarray(np.asarray(cv2.cvtColor(crop_img, cv2.COLOR_BGR2RGB)))#将PIL打开的图片转换为CV2 格式img1 = Image.open(file_path)img_cv2 = cv2.cvtColor(numpy.asarray(img1), cv2.COLOR_RGB2BGR)21、使用PIL处理图片时报错:OSError: broken data stream when reading image file

解决措施:在代码文件开始,添加该代码:ImageFile.LOAD_TRUNCATED_IMAGES = True,我遇到这个问题,是因为处理的图片超出了上限,导致截断数据流,报出这个错误。

22、使用tensorboard过程中遇到报错:ValueError: Duplicate plugins for name projector

原因:安装包下面存在多个tensorboard,删除/卸载一个就好

解决措施:浏览了网络上很多的解决方式都不管用,最后使用网络上的一段代码,查看了tensorboard的包,发现有一个~ensorboard的包,把这个包删除之后就好了(一般和tensorboard的包在同一个位目录内,我的是在D:\ProgramData\anaconda3\Lib\site-packages里面)。

#查看安装的包:import pkg_resourcesfor entry_point in pkg_resources.iter_entry_points('tensorboard_plugins'):print(entry_point.dist)
本文链接地址:https://www.jiuchutong.com/zhishi/283248.html 转载请保留说明!

上一篇:笔记本屏幕坏点检测及正确使用方法(笔记本屏幕坏点几个算正常)

下一篇:jfCacheMgr.exe是什么进程?jfCacheMgr.exe是病毒吗?jfCacheMgr.exe程序文件介绍(jusched.exe是什么进程)

  • 荣耀magic3怎么开5g(荣耀magic3怎么开热点)

    荣耀magic3怎么开5g(荣耀magic3怎么开热点)

  • 淘宝自行寄回有运费险吗(淘宝自行寄回有运费险钱到哪里去)

    淘宝自行寄回有运费险吗(淘宝自行寄回有运费险钱到哪里去)

  • 小米手机关机键怎么成了小爱同学(小米手机关机键设置在哪里)

    小米手机关机键怎么成了小爱同学(小米手机关机键设置在哪里)

  • 华为mate30无线快充怎么使用(华为mate30epro无线)

    华为mate30无线快充怎么使用(华为mate30epro无线)

  • medal00是华为什么型号(med—al00是华为什么型号)

    medal00是华为什么型号(med—al00是华为什么型号)

  • 如何更改手机内存大小(如何更改手机内存位置)

    如何更改手机内存大小(如何更改手机内存位置)

  • 小红书为什么老是闪退(小红书为什么老是登陆已过期)

    小红书为什么老是闪退(小红书为什么老是登陆已过期)

  • 剪映本地音乐怎么导入(剪映本地音乐怎么添加歌曲)

    剪映本地音乐怎么导入(剪映本地音乐怎么添加歌曲)

  • ipad阴阳屏什么意思(ipad 阴阳屏)

    ipad阴阳屏什么意思(ipad 阴阳屏)

  • wps宏有什么用(wps office的宏)

    wps宏有什么用(wps office的宏)

  • 文件传输和远程登录的区别(文件传输和远程登录都是)

    文件传输和远程登录的区别(文件传输和远程登录都是)

  • ps油漆桶在哪

    ps油漆桶在哪

  • 微型计算机一般按什么进行分类(微型计算机一般采用( )来描述运算速度(1.0))

    微型计算机一般按什么进行分类(微型计算机一般采用( )来描述运算速度(1.0))

  • 手机卡能上网不能打电话和接电话(手机卡能上网不能发短信)

    手机卡能上网不能打电话和接电话(手机卡能上网不能发短信)

  • 一加7T怎么关闭拍照声音(一加7t怎么关闭智能护盾)

    一加7T怎么关闭拍照声音(一加7t怎么关闭智能护盾)

  • 小米充电双闪电什么意思(小米充电双闪变成单闪)

    小米充电双闪电什么意思(小米充电双闪变成单闪)

  • 微信公众号怎么注册(微信公众号怎么发布作品)

    微信公众号怎么注册(微信公众号怎么发布作品)

  • qq号注销后还能恢复吗(qq号注销后还能恢复吗 视频)

    qq号注销后还能恢复吗(qq号注销后还能恢复吗 视频)

  • 怎么看是屏幕碎了还是钢化膜碎了(怎么看是屏幕碎了还是膜花了)

    怎么看是屏幕碎了还是钢化膜碎了(怎么看是屏幕碎了还是膜花了)

  • iphonexsmax怎么开机(iPhonexsmax怎么开小窗)

    iphonexsmax怎么开机(iPhonexsmax怎么开小窗)

  • 小米9支持双电信卡吗(小米支持双电信卡吗)

    小米9支持双电信卡吗(小米支持双电信卡吗)

  • app定制开发问题有哪些(定制app软件开发)

    app定制开发问题有哪些(定制app软件开发)

  • 电脑耳机插上还是外放解决方法(电脑耳机插上还是外放,重启就可以)

    电脑耳机插上还是外放解决方法(电脑耳机插上还是外放,重启就可以)

  • 前端加载高德离线地图的解决方案(高德加载kml)

    前端加载高德离线地图的解决方案(高德加载kml)

  • 外商投资合伙企业的性质与特征
  • 排污费用计入什么会计科
  • 怎么用一证通报税
  • 股权转让需要开董事会吗
  • 计算错误多缴税怎么处理
  • 个人所得税允许扣除的费用
  • 调整凭证分录
  • 两个单位同一个法人
  • 出口退税的原则是什么
  • 三证合一不需要税务登记情况说明
  • 控股合并吸收合并新设合并图示
  • 库存成本与实际成本不符
  • 高速公路过路费税率是多少
  • 在win7系统中怎样为另外一块硬盘安装系统
  • 注册的注释
  • windows 10怎么回事
  • 应交税费年末账务处理
  • win10锁屏壁纸模糊怎么回事
  • php几天可以速成
  • 高新企业研发费用会计分录
  • PHP:session_save_path()的用法_Session函数
  • PHP:stream_get_transports()的用法_Stream函数
  • 受托代销商品会计科目
  • PHP:file_put_contents()的用法_Filesystem函数
  • 缴医保分录
  • 辞退补偿款怎么算
  • php加密文件解密
  • phpstorm怎么用
  • 考拉妈妈打考拉
  • php实现的浏览器有哪些
  • 公司账户转法人账户
  • 所得税申报资产总额
  • 印花税最新的征收方法
  • 贷款呆账准备金
  • 让税务局代开的发票直接交纳的税金如何做会计分录?
  • 核定征收企业可以享受研发费用加计扣除
  • 向税务局缴纳工会经费的没计提
  • 假如出口收汇的钱怎么办
  • 用友软件操作流程图片
  • 开票方未缴税,为何要追回付款方的退税款
  • 分公司交纳的管理费用
  • 其他收益会计科目核算什么
  • 如果停产怎么计算成本
  • 赠送产品会计分录怎么写
  • 现金流量表格式有几种
  • 未计提坏账准备的应收账款
  • 银行的手续费开票怎么开
  • 酒店支付清洗费属于什么会计科目
  • 购买的材料入库属于什么会计科目
  • 开具红字增值税专用发票信息表需要盖章吗
  • 资本增值率计算公式是什么?
  • 会计核算方法包括
  • 营业成本包括哪些会计科目
  • mysql死锁的例子
  • bash是什么意思中文翻译
  • win8pe下载iso
  • Win10预览版怎么变回正式版
  • RHCE心得3 基于VSFTP的本地YUM源及光盘YUM源搭建步骤分享
  • centos5.5加固
  • 标签windows
  • win10操作中心设置
  • win7打开tftp服务器
  • windows10周年更新
  • win8创建我的电脑
  • win7旗舰版系统激活码
  • win8如何升级系统
  • windows7安全更新服务
  • 小郭聊一聊
  • 一键备份系统和一键还原系统
  • bat删除所有文件
  • bat怎么设置
  • 又拍云cdn配置
  • python+django
  • python的设置
  • 个人所得税代扣代缴会计分录
  • 供暖配套费
  • 广州税务举报电话
  • 企业代缴房产税可以入账吗
  • 攸县丧葬
  • 企业所得税法里财产转让所得是什么意思
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设