本文件概述模型剪枝,協助您判斷模型剪枝與您的使用情境的適用程度。
- 如要直接深入瞭解端對端範例,請參閱「使用 Keras 進行剪枝」範例。
- 如要快速找到符合您使用情境的 API,請參閱「剪枝完整指南」。
- 如要探索剪枝在裝置端推論上的應用,請參閱「使用 XNNPACK 進行裝置端推論的剪枝」。
- 如要查看結構化剪枝範例,請執行「使用 2x4 稀疏性的結構化剪枝」教學課程。
總覽
以量值為基礎的權重剪枝會在訓練期間逐步將模型權重歸零,以達到模型稀疏性。稀疏模型更容易壓縮,而且我們可以在推論期間略過零值,以改善延遲時間。
這項技術透過模型壓縮帶來改善。未來,架構對這項技術的支援將可改善延遲時間。我們已看到模型壓縮最多改善 6 倍,而且精確度損失極小。
這項技術正在各種語音應用程式 (例如語音辨識和文字轉語音) 中評估,並已在各種視覺和翻譯模型中進行實驗。
API 相容性矩陣
使用者可以透過下列 API 套用剪枝
- 模型建構:
keras
,僅限循序和函數式模型 - TensorFlow 版本:TF 1.x (適用於 1.14 以上版本) 和 2.x。
- 不支援搭配 TF 2.X 套件使用的
tf.compat.v1
以及搭配 TF 1.X 套件使用的tf.compat.v2
。
- 不支援搭配 TF 2.X 套件使用的
- TensorFlow 執行模式:圖表和 eager 模式皆可
- 分散式訓練:
tf.distribute
,僅限圖表執行
我們已將在下列領域新增支援列入藍圖
結果
圖片分類
模型 | 非稀疏 Top-1 精確度 | 隨機稀疏精確度 | 隨機稀疏性 | 結構化稀疏精確度 | 結構化稀疏性 |
---|---|---|---|---|---|
InceptionV3 | 78.1% | 78.0% | 50% | 75.8% | 2x4 |
76.1% | 75% | ||||
74.6% | 87.5% | ||||
MobilenetV1 224 | 71.04% | 70.84% | 50% | 67.35% | 2x4 |
MobilenetV2 224 | 71.77% | 69.64% | 50% | 66.75% | 2x4 |
這些模型已在 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 software 的 範例存放區中找到這個模型。
模型 | 非稀疏精確度 | 結構化稀疏精確度 (2x4 模式) | 隨機稀疏精確度 (目標稀疏性 50%) |
---|---|---|---|
DS-CNN-L | 95.23 | 94.33 | 94.84 |
範例
除了「使用 Keras 進行剪枝」教學課程以外,另請參閱下列範例
如需背景資訊,請參閱「To prune, or not to prune: exploring the efficacy of pruning for model compression」[論文]。