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版本的东西了。

torch.load map_location CUDA kernel errors might be asynchronously reported at some other API call_第1张图片
点一下大大的蓝色字体的 v3.0 就会跳到对应页面,然后拉到最底,就能看到系数文件的下载链接。
torch.load map_location CUDA kernel errors might be asynchronously reported at some other API call_第2张图片
我这里选了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文件不行。好奇怪呢。
不过最后还是解决了问题了。开心~

你可能感兴趣的:(pytorch,深度学习)