HankYe / PAGCP

PAGCP for the compression of YOLOv5
GNU General Public License v3.0
111 stars 11 forks source link

如何提高剪枝率 #7

Open bucter-lmw opened 1 year ago

bucter-lmw commented 1 year ago

我利用源码在自己的数据集上进行剪枝,但是剪枝率很低只有24%,请问修改哪些参数可以提高模型的剪枝率。

bucter-lmw commented 1 year ago

我用的参数和COCO数据集的一样,只是模型改成了yolov5s模型

HankYe commented 1 year ago

我利用源码在自己的数据集上进行剪枝,但是剪枝率很低只有24%,请问修改哪些参数可以提高模型的剪枝率。 我用的参数和COCO数据集的一样,只是模型改成了yolov5s模型

您好,感谢对我们工作的关注!关于在(YOLOv5s)小模型上剪枝率低的问题,可能的原因有:

  1. 模型在该数据集上的冗余性较低;
  2. 初始层损失(--initial_rate)或总体性能损失的阈值(--initial_thres)设置较小;
  3. 总体剪枝迭代次数较少。 因此,您可以根据上述三种情况以及您的实验设置对应调整剪枝策略(排序不分主次)。希望上述回复能解答您的相关疑问。若仍有疑惑,欢迎进一步交流。
TianL123 commented 1 year ago

我利用源码在自己的数据集上进行剪枝,但是剪枝率很低只有24%,请问修改哪些参数可以提高模型的剪枝率。

我也在YOLOv5s上用作者给的超参数试,剪枝率25%左右,可以问一下你现在调了哪些参数效果如何呢?

bucter-lmw commented 1 year ago

我利用源码在自己的数据集上进行剪枝,但是剪枝率很低只有24%,请问修改哪些参数可以提高模型的剪枝率。

我也在YOLOv5s上用作者给的超参数试,剪枝率25%左右,可以问一下你现在调了哪些参数效果如何呢?

我按照作者所提供的思路尝试增加了那三个超参数,虽然增大了剪枝率,但是感觉剪枝后精度不是很好,可能还是由于s模型冗余特征通道相比于m模型更少吧,但是我是用于做实验对比的,所以没太仔细研究究竟如何更好的提高剪枝率。

HankYe commented 1 year ago

我利用源码在自己的数据集上进行剪枝,但是剪枝率很低只有24%,请问修改哪些参数可以提高模型的剪枝率。

我也在YOLOv5s上用作者给的超参数试,剪枝率25%左右,可以问一下你现在调了哪些参数效果如何呢?

我按照作者所提供的思路尝试增加了那三个超参数,虽然增大了剪枝率,但是感觉剪枝后精度不是很好,可能还是由于s模型冗余特征通道相比于m模型更少吧,但是我是用于做实验对比的,所以没太仔细研究究竟如何更好的提高剪枝率。

@bucter-lmw @TianL123 ,感谢大家对工作的关注。由于这段时间任务比较繁重,我们会在晚些时候对yolov5s模型进行压缩测试,届时会更新comment。就大家目前的实验反馈而言,性能方面我个人认为可能小模型的训练过程中重要特征没有学得很好,从而导致冗余特征的区分度没有更大的模型高,如果感兴趣的话可以尝试做些可视化看看。最后,再次感谢大家的关注和理解!

TianL123 commented 1 year ago

我利用源码在自己的数据集上进行剪枝,但是剪枝率很低只有24%,请问修改哪些参数可以提高模型的剪枝率。

我也在YOLOv5s上用作者给的超参数试,剪枝率25%左右,可以问一下你现在调了哪些参数效果如何呢?

我按照作者所提供的思路尝试增加了那三个超参数,虽然增大了剪枝率,但是感觉剪枝后精度不是很好,可能还是由于s模型冗余特征通道相比于m模型更少吧,但是我是用于做实验对比的,所以没太仔细研究究竟如何更好的提高剪枝率。

我剪了大概68%的参数,再训练相同的轮数后可以恢复精度,我用的NWPU数据集

bucter-lmw commented 1 year ago

我利用源码在自己的数据集上进行剪枝,但是剪枝率很低只有24%,请问修改哪些参数可以提高模型的剪枝率。

我也在YOLOv5s上用作者给的超参数试,剪枝率25%左右,可以问一下你现在调了哪些参数效果如何呢?

我按照作者所提供的思路尝试增加了那三个超参数,虽然增大了剪枝率,但是感觉剪枝后精度不是很好,可能还是由于s模型冗余特征通道相比于m模型更少吧,但是我是用于做实验对比的,所以没太仔细研究究竟如何更好的提高剪枝率。

我剪了大概68%的参数,再训练相同的轮数后可以恢复精度,我用的NWPU数据集

方便提供您的超参数设置吗,我也想试试。

TianL123 commented 1 year ago

我利用源码在自己的数据集上进行剪枝,但是剪枝率很低只有24%,请问修改哪些参数可以提高模型的剪枝率。

我也在YOLOv5s上用作者给的超参数试,剪枝率25%左右,可以问一下你现在调了哪些参数效果如何呢?

我按照作者所提供的思路尝试增加了那三个超参数,虽然增大了剪枝率,但是感觉剪枝后精度不是很好,可能还是由于s模型冗余特征通道相比于m模型更少吧,但是我是用于做实验对比的,所以没太仔细研究究竟如何更好的提高剪枝率。

我剪了大概68%的参数,再训练相同的轮数后可以恢复精度,我用的NWPU数据集

方便提供您的超参数设置吗,我也想试试。

$ python compress.py --model $model name$ --dataset COCO --data coco.yaml --batch 64 --weights /path/to/to-prune/model --initial_rate 0.05 --initial_thres 30 --topk 0.8 --exp --device 0

Tomhardy13 commented 1 year ago

我利用源码在自己的数据集上进行剪枝,但是剪枝率很低只有24%,请问修改哪些参数可以提高模型的剪枝率。

我也在YOLOv5s上用作者给的超参数试,剪枝率25%左右,可以问一下你现在调了哪些参数效果如何呢?

我按照作者所提供的思路尝试增加了那三个超参数,虽然增大了剪枝率,但是感觉剪枝后精度不是很好,可能还是由于s模型冗余特征通道相比于m模型更少吧,但是我是用于做实验对比的,所以没太仔细研究究竟如何更好的提高剪枝率。

我剪了大概68%的参数,再训练相同的轮数后可以恢复精度,我用的NWPU数据集

方便提供您的超参数设置吗,我也想试试。

$ python compress.py --model modelname --dataset COCO --data coco.yaml --batch 64 --weights /path/to/to-prune/model --initial_rate 0.05 --initial_thres 30 --topk 0.8 --exp --device 0

请问你这样设置精度和原来比差多少?P,R,mAP都没怎么掉吗?