项目场景:

python语言,GPU环境,定义神经网络后,初始化神经网络,训练模型前,cat数据,出现异常:RuntimeError: cuda runtime error (77)


问题描述:

虚拟试衣项目中,此处外层模型名称:Pix2PixHDModel,嵌套模型:G1,G2,U-net,G3。所以在最外层模型Pix2PixHDModel的forward函数,在处理前向传播过程中,难免会根据嵌套模型或最开始的输入数据,组织内层模型的输入,就像:G1_in = torch.cat([pre_clothes_mask, clothes, all_clothes_label, pose, noise], dim=1),然后遇到非法内存访问的问题。
RuntimeError: cuda runtime error (77) : an illegal memory access was encountered at XXXX:RuntimeError:CUDA运行时错误(77):在以下位置遇到了非法的内存访问.


原因分析与解决方案:

1)问题的分析一:可能是输入cat中进行拼接的各个对象的shape不匹配。
解决方式:查看各个对象的shape:print(248, pre_clothes_mask.shape, clothes.shape, all_clothes_label.shape, pose.shape, noise.shape, ),打印输出:248 torch.Size([1, 1, 256, 192]) torch.Size([1, 3, 256, 192]) torch.Size([1, 14, 256, 192]) torch.Size([1, 18, 256, 192]) torch.Size([1, 1, 256, 192]),发现size没有问题。排除问题一。
2) 问题分析二:可能是拼接的各个对象不再同一类设备上,比如有的数据存在cpu内存上,有的在gpu的内存上。
解决方式:查看各对象的设备:print(248, pre_clothes_mask.device, clothes.device, all_clothes_label.device, pose.device, noise.device, ),打印输出:248 cuda:0 cuda:0 cuda:0 cuda:0 cuda:0,发现device正常,没有问题。排除问题二。
3)问题分析三:可能拼接的各个对象的数据类型不一致。
解决方式:检查各个对象的数据的数据类型:print(248, pre_clothes_mask.type(), clothes.type(), all_clothes_label.type(), pose.type(), noise.type(), ),打印输出:248 torch.cuda.FloatTensor torch.cuda.FloatTensor torch.cuda.FloatTensor torch.cuda.FloatTensor torch.cuda.FloatTensor,发现数据类型一致,没有问题。排除问题三。
4)问题分析四:基于前面三种问题都排除了,那么,还有可能是拼接的各个对象中,有对象的数据元素出现非法值。
解决方法:梳理对象的数据元素,看看是否有非法元素。
首先查看了数据集的正确性:能够正常显示输入如下:人体解析标签label,人物模特image,关键点热图pose,待穿裤子color,该裤子的轮廓数据edge。

能够正常显示,没有报错,说明数据集没有问题。
在检查数据输入模型前的预处理,预处理后的值正常是否合法。
如果都没有问题,那么可能是报错时定位不准确。在运行前添加:CUDA_LAUNCH_BLOCKING = 1,帮助cuda运行报错正确定位。之后再次排查,正确定位:masked_label = masked_label.scatter_(1, (label_map * (1 - clothes_mask)).data.long().cuda(), 1.0),具体原因是:

关于scatter_,可以参考此blog。
5)以上都没有排查到你的代码具体问题,或没有解决问题。只能尝试换高版本的框架了。

排查bug出现的可能情况,借助问题分析1,2,3,4,5找到问题的原因,对应解决方法,修改bug。

RuntimeError: cuda runtime error (77)相关推荐

  1. RuntimeError: cuda runtime error (59) : device-side assert triggered

    问题 在训练 Transformer 的过程中,pytorhc出现的问题:RuntimeError: cuda runtime error (59) : device-side assert trig ...

  2. 解决RuntimeError: cuda runtime error (30) : unknown error at /pytorch/aten/src/THC/THCGeneral.cpp:70N

    解决两个问题: (1)RuntimeError: cuda runtime error (30) : unknown error at /pytorch/aten/src/THC/THCGeneral ...

  3. pytorch测试报错:RuntimeError: cuda runtime error (10) : invalid device ordinal at torch/csrc/cuda/Module

    模型在服务器多gpu上训练,测试在自己台式机上进行,只有一块gpu,测试报错: File "/home/fuxueping/sdb/PycharmProjects/face_recognit ...

  4. RuntimeError: cuda runtime error (3) : initialization error at /pytorch/aten/src/THC/THCGeneral.cpp:

    第三个大坑:在python多进程中使用pytorch加载模型时报错: THCudaCheck FAIL file=/pytorch/aten/src/THC/THCGeneral.cpp line=5 ...

  5. RuntimeError: cuda runtime error (30) : unknown error at /pytorch/aten/src/THC/THCGeneral.cpp:50

    RuntimeError: cuda runtime error (30) : unknown error at /pytorch/aten/src/THC/THCGeneral.cpp:50 在运行 ...

  6. RuntimeError: cuda runtime error (11) : invalid argument at /pytorch/aten/src/THC/THCGeneral.cpp

    RuntimeError: cuda runtime error (11) : invalid argument at /pytorch/aten/src/THC/THCGeneral.cpp cud ...

  7. RuntimeError: cuda runtime error (8) : invalid device function at /pytorch/torch/lib/THC/generic/THC

    一般是 CUDA 编译的问题,编译时候使用的参数与使用的GPU显卡不一致 在 Makefile 里编译的时候有关 CUDA 的参数 arch=compute_61,code=sm_61 参数里边的 6 ...

  8. RuntimeError: cublas runtime error : the GPU program failed to execute at /tmp/pip-req-build-jh50bw2

    RuntimeError: cublas runtime error : the GPU program failed to execute at /tmp/pip-req-build-jh50bw2 ...

  9. cuda runtime error (59) : device-side assert triggered when running transfer_learning_

    cuda runtime error (59) : device-side assert triggered when running transfer_learning_ 参考:https://bl ...

最新文章

  1. 网友:Java岗,自学一个月跳槽计算机视觉!附学习资源合集
  2. 用纯 CSS 创作一个小球反弹的动画
  3. matlab dividend,[原创]基于(Matlab/R/C++)的方差Gamma模型(Hull期权期货)随机抽样[by fantuanxiaot]...
  4. 使用多个tomcat如何修改端口号
  5. 正则表达式验证首尾是空格的字符串
  6. textfilestream_C#里的文件流(FileStream)
  7. 大国崛起:数据库领域的中国力量
  8. 三年不重装:令电脑百毒不侵的13个妙招
  9. 51单片机计算机加原理图,AT89C51单片机的基本结构和工作原理
  10. iphone 与 PC端电脑投屏设置
  11. 《多多自走棋》、《全民超神》均停服:盘点那些凉得最快的游戏
  12. 12306春运火车票抢票攻略——3分钟抢到热门票
  13. 声音在计算机内表现形式为,声音与视频信息在计算机内的表现形式是什么
  14. 微信公众平台数据统计
  15. 数据结构——树和二叉树章节思维导图
  16. 风控人不能不知的黑产大揭秘
  17. ICPR-2018-OCR笔记
  18. 机器学习完整项目实战附代码(一):探索型数据分析+特征工程+建模+报告
  19. python+scrapy爬虫 + mongoodb + hadoop+hive综合项目:招聘网站数据
  20. 版本控制系统_繁星漫天_新浪博客

热门文章

  1. 002稀疏数组和队列[超大章]
  2. 正则表达式验证系统登录密码必须由字母数字和特殊符号组成
  3. 老派程序员浅谈Python的异常处理
  4. POI导入和导出Excel
  5. java中flist cannot_cannot
  6. MockWebServer使用指南
  7. (SQL语句)查询条件模糊匹配若干字段
  8. 数加加众包实习生招募进行中
  9. 常用离散、连续分布及期望、方差总结
  10. js 中的循环(全)