yolov5剪枝蒸馏加速

下载项目

github剪枝项目:yolov5_prune
配套的作者修改的yolov5项目:yolov5-v6

运行代码

稀疏化训练和相关的数据集转化方法参考我之前的博客

踩坑

报错1:

找不到标签,这里已经把图片的路径改成了系统绝对路径写到了hand_data/train.txt和hand_data/valid.txt中,解决了图片找不到的问题,出现了标签找不到的问题

 No labels in hand_data/train.cache

后面发现是路径有问题,哭死
获取路径的小代码:

#导入对路径操作的库
import sys
import os

#图像路径
root_path = '/home/hitcrt/Documents/cyl/try_prune_yolov5/yolov5_prune-6/yolov5-v6/data/images/test'
fns = os.listdir(root_path)
with open('image_list.txt', 'w') as f:
	for fn in fns:
		path = os.path.join(root_path, fn)
		f.write('{}\n'.format(path))
		print(path)
报错2

运行剪枝代码,对稀疏化得到的权重剪枝:

python shortcut_prune_yolov5s.py --cfg cfg/yolov5s_v6_hand.cfg --data data/oxfordhand.data --weights best.pt --percent 0.5 --img_size 640

报错:

'collections.OrderedDict' object has no attribute 'yaml'
报错的代码:modelyolov5.yaml

这个是基于Yolov3的剪枝工程修改的,有些语法是旧的,Model也是Darknet类型

解决

用同一行命令加载v5和v3的权重:

model_v3 = torch.load('yolov3.pt', map_location=device)['model']
model_v5 = torch.load('best.pt', map_location=device)['model']
model_2  = torch.load('yolov5s.pt', map_location=device)['model']

model_v3,model_2的类型是{Model},model_v5的类型是{OrderedDict:348}

model_v3.yaml,model_2.yaml不报错
model_v5.yaml报错

应该是best.pt存储的时候有问题,加载不出来。

报错3
cv2.error: Caught error in DataLoader worker process 0.
cv2.error: OpenCV(4.5.3-openvino) ../opencv/modules/core/src/copy.cpp:1026: error: (-215:Assertion failed) top >= 0 && bottom >= 0 && left >= 0 && right >= 0 && _src.dims() <= 2 in function 'copyMakeBorder'

这个报错查了说是yolov3里test加载数据的问题,暂时先把所有test注释掉,就能跑了

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值