HankYe / PAGCP

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

关于剪枝前模型每层基于FLOPs重排问题 #13

Open fengfasheng opened 1 year ago

fengfasheng commented 1 year ago

博主你好,我计算出每层卷积的FLOPs后,发现不论是按照升序还是降序,都与实际剪枝顺序不符合,这是什么问题呢

HankYe commented 1 year ago

博主你好,我计算出每层卷积的FLOPs后,发现不论是按照升序还是降序,都与实际剪枝顺序不符合,这是什么问题呢

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

fengfasheng commented 1 year ago

关于这个问题我明白了,谢谢您,看了您发表的论文中剪枝框图和实验部分后,我还有一个关于在YOLO模型剪枝训练的问题想请教您,整个剪枝流程是下面我所描述的哪种呢:一、训练一个基础模型,然后不断调整初始层损失等超参数对基础模型进行剪枝,直到达到满意的剪枝效果;二、训练一个基础模型,以固定的超参数对模型进行剪枝重训练后,再将剪枝后的模型作为新的基础模型进行剪枝重训练,直到达到满意的剪枝效果。抱歉频繁打扰您了,感谢您的解答。

HankYe commented 1 year ago

关于这个问题我明白了,谢谢您,看了您发表的论文中剪枝框图和实验部分后,我还有一个关于在YOLO模型剪枝训练的问题想请教您,整个剪枝流程是下面我所描述的哪种呢:一、训练一个基础模型,然后不断调整初始层损失等超参数对基础模型进行剪枝,直到达到满意的剪枝效果;二、训练一个基础模型,以固定的超参数对模型进行剪枝重训练后,再将剪枝后的模型作为新的基础模型进行剪枝重训练,直到达到满意的剪枝效果。抱歉频繁打扰您了,感谢您的解答。

一般而言,本文所提的整个剪枝流程遵循的是迭代式剪枝,也就是您描述的第二种方式。这种迭代式剪枝流程适用于大比例压缩的目标,当压缩目标比例较小时,可以选择第一种,即只剪一次,其中通过调整超参实现相似压缩比例下性能最大程度保留。

fengfasheng commented 1 year ago

关于这个问题我明白了,谢谢您,看了您发表的论文中剪枝框图和实验部分后,我还有一个关于在YOLO模型剪枝训练的问题想请教您,整个剪枝流程是下面我所描述的哪种呢:一、训练一个基础模型,然后不断调整初始层损失等超参数对基础模型进行剪枝,直到达到满意的剪枝效果;二、训练一个基础模型,以固定的超参数对模型进行剪枝重训练后,再将剪枝后的模型作为新的基础模型进行剪枝重训练,直到达到满意的剪枝效果。抱歉频繁打扰您了,感谢您的解答。

一般而言,本文所提的整个剪枝流程遵循的是迭代式剪枝,也就是您描述的第二种方式。这种迭代式剪枝流程适用于大比例压缩的目标,当压缩目标比例较小时,可以选择第一种,即只剪一次,其中通过调整超参实现相似压缩比例下性能最大程度保留。

感谢您的回答,祝您未来不断有更好的成果出现,谢谢您

fengfasheng commented 1 year ago

关于这个问题我明白了,谢谢您,看了您发表的论文中剪枝框图和实验部分后,我还有一个关于在YOLO模型剪枝训练的问题想请教您,整个剪枝流程是下面我所描述的哪种呢:一、训练一个基础模型,然后不断调整初始层损失等超参数对基础模型进行剪枝,直到达到满意的剪枝效果;二、训练一个基础模型,以固定的超参数对模型进行剪枝重训练后,再将剪枝后的模型作为新的基础模型进行剪枝重训练,直到达到满意的剪枝效果。抱歉频繁打扰您了,感谢您的解答。

一般而言,本文所提的整个剪枝流程遵循的是迭代式剪枝,也就是您描述的第二种方式。这种迭代式剪枝流程适用于大比例压缩的目标,当压缩目标比例较小时,可以选择第一种,即只剪一次,其中通过调整超参实现相似压缩比例下性能最大程度保留。

您好,我看论文中关于超参数对模型剪枝影响的实验中,涉及到剪枝率pruning ratio和掩蔽比masking ratio,我想请教您,我在自己应用剪枝算法时,这两个参数是否需要进行调整呢,需要调整的话,是在代码哪个部分进行修改,还是说按照您给出的命令行代码,只对初始层损失、总体性能损失和滤波比进行修改即可

HankYe commented 1 year ago

关于这个问题我明白了,谢谢您,看了您发表的论文中剪枝框图和实验部分后,我还有一个关于在YOLO模型剪枝训练的问题想请教您,整个剪枝流程是下面我所描述的哪种呢:一、训练一个基础模型,然后不断调整初始层损失等超参数对基础模型进行剪枝,直到达到满意的剪枝效果;二、训练一个基础模型,以固定的超参数对模型进行剪枝重训练后,再将剪枝后的模型作为新的基础模型进行剪枝重训练,直到达到满意的剪枝效果。抱歉频繁打扰您了,感谢您的解答。

一般而言,本文所提的整个剪枝流程遵循的是迭代式剪枝,也就是您描述的第二种方式。这种迭代式剪枝流程适用于大比例压缩的目标,当压缩目标比例较小时,可以选择第一种,即只剪一次,其中通过调整超参实现相似压缩比例下性能最大程度保留。

您好,我看论文中关于超参数对模型剪枝影响的实验中,涉及到剪枝率pruning ratio和掩蔽比masking ratio,我想请教您,我在自己应用剪枝算法时,这两个参数是否需要进行调整呢,需要调整的话,是在代码哪个部分进行修改,还是说按照您给出的命令行代码,只对初始层损失、总体性能损失和滤波比进行修改即可

这两个参数是可调的,不过我们在主实验部分对不同模型进行压缩的时候基本没有调过这两个超参,所以总体而言可以优先调整命令行中的三个超参,如果始终达不到理想压缩效果的话可以再调整这两个超参。