torch.load map_location CUDA kernel errors might be asynchronously reported at some other API call

Boss之前因工作推荐了一个道路识别的模型,这个模型赢得了GRDDC’2020大赛的冠军。
GRDDC’2020大赛的冠军模型

该模型以YOLOv5为基础,所以在使用的时候,出现了一些YOLOv5一样的问题。

首先,YOLOv5的request.txt中是要求torch>=1.6.0,结果我在运行的时候就给我安装了1.9.0版本的torch。这就是悲剧的开端。

在train.py加载模型的时候:

python3 train.py --data data/road.yaml --cfg models/yolov5x.yaml --weights weight/yolov5x.pt --batch-size 64

# torch.load(weight,,map_loction=device)报错:
#    CUDA run out time....
#    CUDA kernel errors might be asynchronously reported at some other API call....

我试了一下去掉map_loction,这句就没报错了,但是下面又有其他的报错。但我总不能一直改下去吧?

于是上网搜答案

第一种解释

不知道有没有用,我这里没用,但是其他人说有用,可能每个人原因不一样,可以试试,没太大损失):
yolov5x.pt版本可能不对,有可能用了4.0版本,但是我这里只能用3.0版本的yolov5x.pt,所以我又去下了一个3.0版本的。
注:代码里面的yolov5x.pt下载链接已经失效,去YOLOv5原作者那边找就好,往下拉,就能看到3.0版本的东西了。

3.0版本的信息
点一下大大的蓝色字体的 v3.0 就会跳到对应页面,然后拉到最底,就能看到系数文件的下载链接。
在这里插入图片描述
我这里选了yolov5x.pt,如果想选其他的,记得回去改一下代码即可。

把系数文件放到对应文件夹,命令行运行即可:

python3 train.py --data data/road.yaml --cfg models/yolov5x.yaml --weights weight/yolov5x.pt --batch-size 64

但我这里依旧报同一个错误。

第二种解释

对我有用

百无聊赖,心如死灰,一直在搜这方面的文章,大概一个上午。纵欲有人说,是torch版本太高的问题。
于是,我看了看我的torch版本:1.9.0
想了想,试试吧,反之不会si。现在够惨的了。(就怕老板扣我工资)

把torch删除,重新安装torch,并且指定版本为1.6.0,torchvision版本为0.7.0。
Bingo~对啦

终于能运行train.py了。嘿嘿

奇怪的是,我原来可以运行detect.py文件的,但是,train.py文件不行。好奇怪呢。
不过最后还是解决了问题了。开心~

  • 3
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值