900字范文,内容丰富有趣,生活中的好帮手!
900字范文 > (ubuntu)YOLOv5报错:RuntimeError: CUDA error: no kernel image is available for execution on the ...

(ubuntu)YOLOv5报错:RuntimeError: CUDA error: no kernel image is available for execution on the ...

时间:2019-03-17 22:47:18

相关推荐

(ubuntu)YOLOv5报错:RuntimeError: CUDA error: no kernel image is available for execution on the ...

笔者之前在另一台电脑成功跑通了自己修改的yolov5,但在新系统运行时报了如下错误

RuntimeError: CUDA error: no kernel image is available for execution on the deviceCUDA kernel errors might be asynchronously reported at some other API call,so the stacktrace below might be incorrect.For debugging consider passing CUDA_LAUNCH_BLOCKING=1.

方法一(不好使):

查阅资料后发现,是因为在配置conda环境时,是直接一键pip install -r requirements。由于自己的显卡是RTX3050,算力8.6,而cuda10只能支持算力7.0以下的。(明明计算速度那么低要求这么高)因此可能引起pytorch和cuda版本不匹配。因此重装cuda

然而重装新cuda后还是不好使。。。

方法二(大多数时候有用):

继续研究报错内容,觉得可能是因为pip install -r requirements安装的pytorch和cuda版本不匹配。于是自己写了一小段代码验证

import torchimport torchvisionprint(torch.cuda.is_available())a = torch.Tensor(5,3)a=a.cuda()print(a)

代码输出结果:第四行之前都执行正常,输出True。但之后报错,依旧和上面报错类似。

因此去官网下载了相匹配的pytorch(我的cuda是11.1,也没问题)

下载安装完后,重新执行了上面自己写的示例代码,输出结果正常如下

Truetensor([[0., 0., 0.],[0., 0., 0.],[0., 0., 0.],[0., 0., 0.],[0., 0., 0.]], device='cuda:0')

方法三(可以试一试):

这么执行完后,基本能解决大多数问题。但我重新执行了yolov5的代码,然而还是报原来的错。。

没办法,继续研究。由于代码已经在原来的电脑上成功执行过了,所以不可能是代码逻辑出问题。我看了下自己的调试配置信息,发现加载的权重不是我训练出来的best.pt,而是一个yolov5-s的初始权重。想到之前有人说权重版本不对(比如第六版yolov5用第五版权重)也可能会报同样的错,我将权重改为自己的best.pt

程序终于能正常执行

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。