Hancheng Ye

Results 23 comments of Hancheng Ye

您好,感谢对我们工作的关注! Γ的参数值设置依不同模型和任务目标而定,另外Γ没有直接参与到每一轮内的压缩优化过程中,所以在文章和代码中,我们没有显式地给出具体参数值。可以将最终的压缩结果理解为该参数值。 希望上述回复能解答您的相关疑问。若仍有疑惑,欢迎进一步交流。

> 剪枝過一次的模型,想再剪枝一次壓縮參數量,目前是將剪枝過後的模型先載入,再載入權重,但會遇到以下問題,想請問這作法是否是對的? > > RuntimeError: Given groups=1, expected weight to be at least 1 at dimension 0, but got weight of size [0, 2, 1, 1] instead 您好,感谢您对工作的关注。 首先关于迭代剪枝的方式,您可以直接载入模型和权重,所以您的做法应该是没问题的。从报错信息来看,您的压缩模型中应该存在某些层的通道被剪完了,可以调试一下看看具体报错在哪一层的剪枝上,然后适当调整一下压缩比例或者加一些压缩约束来保证这个层不会被完全剪掉。 希望上述回复能解答您的相关疑问。若仍有疑惑,欢迎进一步交流。

> 感謝您的回覆, 我有嘗試過避開被完全剪枝掉的層但尚未成功,請問有什麼方法或修改哪部分能像你說的約束不完全剪掉層數,或是避開被完全裁剪層? 一种简单的方式是在执行剪枝操作前判断是否会全部剪完,如果会剪完,则保留允许的最低通道数。这样可以保证每一层不会被完全剪枝掉。同时也还有其他方式,比如降低阈值等等。可以视具体情况选择。

> 博主你好,我计算出每层卷积的FLOPs后,发现不论是按照升序还是降序,都与实际剪枝顺序不符合,这是什么问题呢 您好,感谢您对工作的关注。 如果关于您的问题理解正确的话,本文的排序对象准确来说应该是各层剪枝一定比例后的FLOPs压缩贡献,这个和您所计算的每层卷积的FLOPs概念有一些区别。区别主要来源于各层剪枝的时候不仅减少了自身所在层的FLOPs,也会减少其它依赖层的FLOPs,因此不能直接等价地将卷积层自身的FLOPs视作本文提出的FLOPs压缩贡献,这应该是不匹配的原因。 希望上述回复能解答您的相关疑问。若仍有疑惑,欢迎进一步交流。

> 关于这个问题我明白了,谢谢您,看了您发表的论文中剪枝框图和实验部分后,我还有一个关于在YOLO模型剪枝训练的问题想请教您,整个剪枝流程是下面我所描述的哪种呢:一、训练一个基础模型,然后不断调整初始层损失等超参数对基础模型进行剪枝,直到达到满意的剪枝效果;二、训练一个基础模型,以固定的超参数对模型进行剪枝重训练后,再将剪枝后的模型作为新的基础模型进行剪枝重训练,直到达到满意的剪枝效果。抱歉频繁打扰您了,感谢您的解答。 一般而言,本文所提的整个剪枝流程遵循的是迭代式剪枝,也就是您描述的第二种方式。这种迭代式剪枝流程适用于大比例压缩的目标,当压缩目标比例较小时,可以选择第一种,即只剪一次,其中通过调整超参实现相似压缩比例下性能最大程度保留。

> > > 关于这个问题我明白了,谢谢您,看了您发表的论文中剪枝框图和实验部分后,我还有一个关于在YOLO模型剪枝训练的问题想请教您,整个剪枝流程是下面我所描述的哪种呢:一、训练一个基础模型,然后不断调整初始层损失等超参数对基础模型进行剪枝,直到达到满意的剪枝效果;二、训练一个基础模型,以固定的超参数对模型进行剪枝重训练后,再将剪枝后的模型作为新的基础模型进行剪枝重训练,直到达到满意的剪枝效果。抱歉频繁打扰您了,感谢您的解答。 > > > > > > 一般而言,本文所提的整个剪枝流程遵循的是迭代式剪枝,也就是您描述的第二种方式。这种迭代式剪枝流程适用于大比例压缩的目标,当压缩目标比例较小时,可以选择第一种,即只剪一次,其中通过调整超参实现相似压缩比例下性能最大程度保留。 > > 您好,我看论文中关于超参数对模型剪枝影响的实验中,涉及到剪枝率pruning ratio和掩蔽比masking ratio,我想请教您,我在自己应用剪枝算法时,这两个参数是否需要进行调整呢,需要调整的话,是在代码哪个部分进行修改,还是说按照您给出的命令行代码,只对初始层损失、总体性能损失和滤波比进行修改即可 这两个参数是可调的,不过我们在主实验部分对不同模型进行压缩的时候基本没有调过这两个超参,所以总体而言可以优先调整命令行中的三个超参,如果始终达不到理想压缩效果的话可以再调整这两个超参。

> 你好,我看了论文,好像没做YOLOv5s的剪枝测试,是因为s模型已经Scaling后冗余没大模型多,然后剪枝性能提升不大吗? 您好,感谢您对工作的关注。 文中没做YOLOv5s的压缩的原因主要是:我们在考虑压缩YOLOv5时选择性能更接近sota的模型,从而在高性能模型上也验证算法的有效性,同时考虑到训练成本的问题,我们折中选择了YOLOv5m模型进行测试,并在之后补充了更高性能和规模的模型上的压缩结果。至于YOLOv5s的冗余是否没大模型多这个问题,我个人觉得这主要和训练策略有关,可能冗余比例是差不多的,我们没有在s模型上做测试,如果您感兴趣的话可以自行测试一下。 希望上述回复能解答您的相关疑问。若仍有疑惑,欢迎进一步交流。

> 我利用源码在自己的数据集上进行剪枝,但是剪枝率很低只有24%,请问修改哪些参数可以提高模型的剪枝率。 > 我用的参数和COCO数据集的一样,只是模型改成了yolov5s模型 您好,感谢对我们工作的关注!关于在(YOLOv5s)小模型上剪枝率低的问题,可能的原因有: 1. 模型在该数据集上的冗余性较低; 2. 初始层损失(--initial_rate)或总体性能损失的阈值(--initial_thres)设置较小; 3. 总体剪枝迭代次数较少。 因此,您可以根据上述三种情况以及您的实验设置对应调整剪枝策略(排序不分主次)。希望上述回复能解答您的相关疑问。若仍有疑惑,欢迎进一步交流。

> > > 我利用源码在自己的数据集上进行剪枝,但是剪枝率很低只有24%,请问修改哪些参数可以提高模型的剪枝率。 > > > > > > 我也在YOLOv5s上用作者给的超参数试,剪枝率25%左右,可以问一下你现在调了哪些参数效果如何呢? > > 我按照作者所提供的思路尝试增加了那三个超参数,虽然增大了剪枝率,但是感觉剪枝后精度不是很好,可能还是由于s模型冗余特征通道相比于m模型更少吧,但是我是用于做实验对比的,所以没太仔细研究究竟如何更好的提高剪枝率。 @bucter-lmw @TianL123 ,感谢大家对工作的关注。由于这段时间任务比较繁重,我们会在晚些时候对yolov5s模型进行压缩测试,届时会更新comment。就大家目前的实验反馈而言,性能方面我个人认为可能小模型的训练过程中重要特征没有学得很好,从而导致冗余特征的区分度没有更大的模型高,如果感兴趣的话可以尝试做些可视化看看。最后,再次感谢大家的关注和理解!

Hi, thanks for ur attention to our work, and sorry for the late response. Opt.part refers to the list of layers that are expected to be compressed during pruning. So...