由 TensorFlow 模型最佳化維護
這份文件將概略說明模型修剪,協助您判斷模型修剪是否適用於您的用途。
- 如要直接開始閱讀端對端範例,請參閱使用 Keras 進行修剪的範例。
- 如要快速找到所需的 API,請參閱修剪完整指南。
- 如要探索如何為裝置端推論套用修剪效果,請參閱為使用 XNNPACK 進行的裝置端推論套用修剪效果。
總覽
以規模為基礎的權重修剪會在訓練過程中,逐步將模型權重歸零,以建立稀疏的模型。稀疏模型更易於壓縮,而且我們可在推論期間略過零的數值,改善延遲狀況。
這項技術透過壓縮模型而帶來了改善。在未來,這項技術的架構支援將可改善延遲狀況。我們發現,在盡量不犧牲準確率的前提下,模型壓縮率最多可提升 6 倍。
這項技術目前正在各種語音應用程式 (例如語音識別和文字轉語音) 中接受評估,並已在各種視覺和翻譯模型上進行實驗。
API 相容性矩陣
使用者可透過下列 API 套用修剪:
- 模型建構:
tf.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 執行模式:包括 Graph 和 Eager 模式
- 分散式訓練:僅包含 Graph Execution 的
tf.distribute
我們之後會支援以下領域:
結果
圖片分類
模型 | 非稀疏的最高準確率 | 稀疏準確率 | 稀疏度 |
---|---|---|---|
InceptionV3 | 78.1% | 78.0% | 50% |
76.1% | 75% | ||
74.6% | 87.5% | ||
MobilenetV1 224 | 71.04% | 70.84% | 50% |
模型已在 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 做為測試集。
範例
除了使用 Keras 進行修剪的教學課程外,請一併參閱下列範例:
如需背景資訊,請參閱〈To prune, or not to prune: exploring the efficacy of pruning for model compression〉(修剪與否:探索模型壓縮的修剪效果) [論文]。