文章目录
- yolov7示例 | 如何写一个剪枝代码?
- 1. 剪枝的介绍 (Introduction to Pruning)
- 2. 选择剪枝的颗粒度 (Determine the Pruning Granularity)
- 3. 选择在哪里剪枝 (Determine the Pruning Criterion)
- 4. 确定剪枝比率(Determine the Pruning Ratio)
- 5. Fine-tune/Train Pruned Neural Network 微调训练
yolov7示例 | 如何写一个剪枝代码?
1. 剪枝的介绍 (Introduction to Pruning)
什么是剪枝 (What is pruning)?


如何用公式定义剪枝 (How should we formulate pruning)?

2. 选择剪枝的颗粒度 (Determine the Pruning Granularity)
- 确定剪枝的标准。常见的标准包括基于权重大小的剪枝、基于重要性得分的剪枝(如梯度或二阶导数),或结构化剪枝(去除整个神经元或通道)。
- 考虑剪枝的具体目标,例如模型压缩、推理加速或内存减少。
Pruning can be performed at different granularities, from structured to non-structured
- 剪枝 权重 的记住这张图

- 剪枝特征图的记住这张图

3. 选择在哪里剪枝 (Determine the Pruning Criterion)
- 应该剪枝哪个神经元或者突触呢? What synapses/neurons should we prune?
选择与标准相符的剪枝方法或算法。例如,可以使用L1或L2正则化进行基于权重大小的剪枝,也可以使用通道剪枝等技术进行结构化剪枝。

3.1 应该剪哪个突触呢? What sysnapses should we prune? (适合CNN)(权重剪枝)
3.1.1 基于权重大小的剪枝 (Magnitude-based pruning)
“Magnitude-based pruning” 它基于神经网络中的参数(通常是权重)的大小来确定哪些参数应该被剪枝,以减小模型的大小和复杂性。该技术的主要思想是去除那些绝对值较小的权重,因为它们对模型的贡献相对较小,而保留那些较大的权重,以维持模

本文详细介绍了如何在Yolov7模型中实施剪枝技术,包括不同类型的剪枝策略(如基于权重大小、批量归一化缩放因子和二阶导数),选择剪枝颗粒度,确定剪枝比例的方法,以及微调训练以优化性能。重点讨论了如何在资源有限的情况下提高模型效率和压缩率。
最低0.47元/天 解锁文章
1390

被折叠的 条评论
为什么被折叠?



