本文档提供了模型修剪的概述,以帮助您确定它如何适合您的用例。
- 要直接深入了解端到端示例,请参阅 使用 Keras 修剪 示例。
- 要快速找到您用例所需的 API,请参阅 修剪综合指南。
- 要探索在设备内推理中应用修剪,请参阅 使用 XNNPACK 进行设备内推理修剪。
- 要查看结构化修剪的示例,请运行教程 具有 2 x 4 稀疏性的结构化修剪。
概览
基于幅度的权重修剪在训练过程中逐渐将模型权重归零,以实现模型稀疏性。稀疏模型更容易压缩,并且我们可以在推理期间跳过零以提高延迟。
此技术通过模型压缩带来了改进。将来,框架对该技术的支持将提供延迟改进。我们已经看到模型压缩提高了 6 倍,而准确性损失最小。
该技术正在各种语音应用中进行评估,例如语音识别和文本到语音,并且已在各种视觉和翻译模型中进行了实验。
API 兼容性矩阵
用户可以使用以下 API 应用修剪
- 模型构建:仅使用 Sequential 和 Functional 模型的
keras
- TensorFlow 版本:1.14+ 版本的 TF 1.x 和 2.x。
- 带有 TF 2.X 包的
tf.compat.v1
和带有 TF 1.X 包的tf.compat.v2
不受支持。
- 带有 TF 2.X 包的
- TensorFlow 执行模式:图形和急切
- 分布式训练:仅使用图形执行的
tf.distribute
我们的路线图中包含在以下领域添加支持
结果
图像分类
模型 | 非稀疏 Top-1 准确度 | 随机稀疏准确度 | 随机稀疏性 | 结构化稀疏准确度 | 结构化稀疏性 |
---|---|---|---|---|---|
InceptionV3 | 78.1% | 78.0% | 50% | 75.8% | 2 乘以 4 |
76.1% | 75% | ||||
74.6% | 87.5% | ||||
MobilenetV1 224 | 71.04% | 70.84% | 50% | 67.35% | 2 乘以 4 |
MobilenetV2 224 | 71.77% | 69.64% | 50% | 66.75% | 2 乘以 4 |
这些模型在 Imagenet 上进行了测试。
翻译
模型 | 非稀疏 BLEU | 稀疏 BLEU | 稀疏性 |
---|---|---|---|
GNMT EN-DE | 26.77 | 26.86 | 80% |
26.52 | 85% | ||
26.19 | 90% | ||
GNMT DE-EN | 29.47 | 29.50 | 80% |
29.24 | 85% | ||
28.81 | 90% |
这些模型使用 WMT16 德语和英语数据集,其中 news-test2013 作为开发集,news-test2015 作为测试集。
关键字识别模型
DS-CNN-L 是为边缘设备创建的关键字识别模型。它可以在 ARM 软件的 示例存储库 中找到。
模型 | 非稀疏准确度 | 结构化稀疏准确度(2 乘以 4 模式) | 随机稀疏准确度(目标稀疏性 50%) |
---|---|---|---|
DS-CNN-L | 95.23 | 94.33 | 94.84 |
示例
除了 使用 Keras 进行修剪 教程外,请参阅以下示例
有关背景信息,请参阅剪枝与否:探索剪枝在模型压缩中的效用 [论文]