修剪不重要的权重

本文档提供了模型修剪概述,以帮助您确定它如何适合您的用例。

概览

基于幅度的权重修剪在训练过程中逐渐将模型权重归零,以实现模型稀疏性。稀疏模型更容易压缩,并且我们可以在推理期间跳过零以提高延迟。

此技术通过模型压缩带来了改进。未来,框架对该技术的支持将提供延迟改进。我们已经看到模型压缩最多提高了 6 倍,而准确性几乎没有损失。

该技术正在各种语音应用程序(例如语音识别和文本到语音)中进行评估,并且已经在各种视觉和翻译模型上进行了试验。

API 兼容性矩阵

用户可以使用以下 API 应用修剪

  • 模型构建:keras,仅适用于顺序模型和函数模型
  • TensorFlow 版本:TF 1.x(适用于 1.14+ 版本)和 2.x。
    • tf.compat.v1 与 TF 2.X 软件包和 tf.compat.v2 与 TF 1.X 软件包一起使用不受支持。
  • TensorFlow 执行模式:图形和急切
  • 分布式训练:tf.distribute 仅与图形执行一起使用

我们的路线图中包含在以下领域添加支持

结果

图像分类

模型 非稀疏 Top-1 准确度 随机稀疏准确度 随机稀疏性 结构化稀疏准确度 结构化稀疏性
InceptionV3 78.1% 78.0% 50% 75.8% 2 乘以 4
76.1%75%
74.6%87.5%
MobilenetV1 22471.04%70.84%50%67.35%2 乘以 4
MobilenetV2 22471.77%69.64%50%66.75%2 乘以 4

在 Imagenet 上测试了这些模型。

翻译

模型 非稀疏 BLEU 稀疏 BLEU 稀疏性
GNMT EN-DE 26.77 26.86 80%
26.5285%
26.1990%
GNMT DE-EN 29.47 29.50 80%
29.2485%
28.8190%

这些模型使用 WMT16 德语和英语数据集,其中 news-test2013 作为开发集,news-test2015 作为测试集。

关键字检测模型

DS-CNN-L 是为边缘设备创建的关键字检测模型。它可以在 ARM 软件的示例存储库中找到。

模型 非稀疏准确度 结构化稀疏准确度(2 乘以 4 模式) 随机稀疏准确度(目标稀疏性 50%)
DS-CNN-L 95.23 94.33 94.84

示例

除了使用 Keras 进行修剪教程外,请参阅以下示例

  • 使用修剪在 MNIST 手写数字分类任务上训练 CNN 模型:代码
  • 使用修剪在 IMDB 情感分类任务上训练 LSTM:代码

有关背景信息,请参阅修剪还是不修剪:探索修剪在模型压缩中的功效 [论文]。