ZJU-lishuang / yolov5_prune

yolov5 prune,Support V2, V3, V4 and V6 versions of yolov5
Apache License 2.0
556 stars 136 forks source link

你好,我在 STEP3:通道剪枝 遇上问题,想请你帮忙看看 #22

Closed Moon404 closed 3 years ago

Moon404 commented 3 years ago

python prune_yolov5s.py --cfg cfg/yolov5s_v4.cfg --data data/myvoc.data --weights best.pt --percent 0.8 后出现以下错误: Traceback (most recent call last): File "prune_yolov5s.py", line 361, in origin_model_metric = eval_model(model) File "prune_yolov5s.py", line 348, in eval_model = lambda model:test(opt.cfg, opt.data, File "D:\Gitee\yolov5_prune-4\test.py", line 181, in test inf_out, train_out = model(imgs) # inference and training outputs File "C:\Users\TXY\anaconda3\envs\yolo_v5\lib\site-packages\torch\nn\modules\module.py", line 727, in _call_impl result = self.forward(*input, *kwargs) File "D:\Gitee\yolov5_prune-4\modelsori.py", line 293, in forward x = module(x, img_size) File "C:\Users\TXY\anaconda3\envs\yolo_v5\lib\site-packages\torch\nn\modules\module.py", line 727, in _call_impl result = self.forward(input, **kwargs) File "D:\Gitee\yolov5_prune-4\modelsori.py", line 178, in forward p = p.view(bs, self.na, self.nc + 5, self.ny, self.nx).permute(0, 1, 3, 4, 2).contiguous() # prediction RuntimeError: shape '[16, 3, 85, 28, 52]' is invalid for input of size 489216 你是否遇到过该错误呢? 还有请问通道剪枝命令命令 python prune_yolov5s.py --cfg cfg/yolov5s.cfg --data data/fangweisui.data --weights weights/yolov5s_prune0.pt --percent 0.8 中,yolov5s.cfg和fangweisui.data文件是否做了修改呢?是否可以上传一下呢?

Moon404 commented 3 years ago

@ZJU-lishuang

ZJU-lishuang commented 3 years ago

没碰到,你可以先跑实例熟悉下工程。 cfg里面,只有类别和anchor可能会不同,这些都是训练自己数据集要自己手动配置的,和darknet没有不同。 data只是个配置文件。

python prune_yolov5s.py --cfg cfg/yolov5s_v4_hand.cfg --data data/oxfordhand.data --weights weights/last_v4s.pt --percent 0.8

可以使用上面的指令,替换cfg和data,weights可能需要重新稀疏训练一下。 --prune 0 适用于通道剪枝策略一,--prune 1 适用于其他剪枝策略。

Moon404 commented 3 years ago

没碰到,你可以先跑实例熟悉下工程。 cfg里面,只有类别和anchor可能会不同,这些都是训练自己数据集要自己手动配置的,和darknet没有不同。 data只是个配置文件。

python prune_yolov5s.py --cfg cfg/yolov5s_v4_hand.cfg --data data/oxfordhand.data --weights weights/last_v4s.pt --percent 0.8

可以使用上面的指令,替换cfg和data,weights可能需要重新稀疏训练一下。 --prune 0 适用于通道剪枝策略一,--prune 1 适用于其他剪枝策略。

--prune 0 和 --prune 1均已尝试,均是以上错误。权重训练和稀疏训练皆是按照你Yolov5项目进行的。只有yaml文件和数据集是使用自己的。按理是不会出现问题才对。是否可以添加我的vx指导我一下呢?vx:txy1292757414

ZJU-lishuang commented 3 years ago

这就是类别数的不同,只免费指导训练开源数据集。

scuizhibin commented 3 years ago

不要使用yolov5s.cfg ,使用yolov5s_hand.cfg .