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版本的东西了。
点一下大大的蓝色字体的 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文件不行。好奇怪呢。
不过最后还是解决了问题了。开心~