當前位置:
首頁 > 科技 > 資源 | TensorFlow推出模型優化工具包,可將模型壓縮75%

資源 | TensorFlow推出模型優化工具包,可將模型壓縮75%


選自Medium


機器之心編譯

參與:張倩、王淑婷





近日,TensorFlow 推出了一款新的模型優化工具包。利用該該工具包中的技術可以將模型壓縮 75%,最大可將速度提升到原來的 3 倍。



新手和熟練的開發者都能利用這套工具包中的技術來優化待部署和執行的機器學習模型。預計該工具包中的技術將有助於優化所有 TensorFlow 模型以進行部署,但它對於那些為內存緊張、功率和存儲受限的設備提供模型的 TensorFlow Lite 開發人員來說幫助最大。




TensorFlow Lite 相關信息鏈接:https://www.tensorflow.org/mobile/tflite/。





優化模型以減少尺寸、延遲和功耗,使準確率損失不明顯




添加的第一項支持技術是對 TensorFlow Lite 轉換工具的訓練後量化(post-training quantization)。對於相關的機器學習模型,利用該技術可以將模型壓縮到原來的 1/4,並將速度提升到原來的 3 倍。




開發者可以通過量化模型減少能耗。這點對於在邊緣設備中部署(不局限於手機)非常有用。




實現訓練後量化




訓練後量化技術是 TensorFlow Lite 轉換工具的一部分。上手非常簡單:創建 TensorFlow 模型之後,開發者可以簡單地實現 TensorFlow Lite 轉換工具中的「post_training_quantize」標記。假設這一保存的模型存儲在 saved_model_dir 中,則可以生成量化的 tflite flatbuffer:



converter=tf.contrib.lite.TocoConverter.from_saved_model(saved_model_dir)
converter.post_training_quantize=True
tflite_quantized_model=converter.convert()
open(「quantized_model.tflite」, 「wb」).write(tflite_quantized_model)



TensorFlow 提供了相關教程,深入解析如何做到這一點。未來的目標是將這種技術納入通用的 TensorFlow 工具中,以便將其部署在目前沒有 TensorFlow Lite 支持的平台上。



教程鏈接:https://github.com/tensorflow/tensorflow/blob/master/tensorflow/contrib/lite/tutorials/post_training_quant.ipynb




訓練後量化的好處







  • 模型縮小到原來的 1/4



  • 主要由卷積層組成的模型執行速度提高了 10-50%。



  • 基於 RNN 的模型得到了 3 倍的加速



  • 由於減少了內存和計算需求,預計大多數模型將降低功耗。




下圖顯示一些模型尺寸減小,執行速度提高(使用單核的 Android Pixel 2 手機上進行的測量)。




圖 1:模型大小比較:優化後的模型差不多縮小到原來的 1/4。





圖 2:延時比較:優化後的模型速度是原來的 1.2—1.4 倍。



加速和模型尺寸減小對準確率的影響很小。一般對於手頭任務來說,已經較小的模型(如用於圖像分類的 mobilenet v1)可能會損失更多的準確率。對於這些模型,TensorFlow 為其中的大部分提供預訓練的完全量化模型。





圖 3:準確率比較:除了 mobilenets,優化後的模型準確率下降不明顯。




TensorFlow 期望在未來繼續改進結果,所以請參見模型優化指南,了解最新的測量結果。




地址:https://www.tensorflow.org/performance/model_optimization




訓練後量化如何起作用




TensorFlow 通過將參數(即神經網路權重)的精度從訓練時的 32 位浮點表示降至小得多且高效的 8 位浮點數表示,來進行優化(也稱為量化)。詳細信息請參見訓練後量化指南。

地址:https://www.tensorflow.org/performance/post_training_quantization




這些優化將確保結果模型中精度降低的操作定義與使用固定和浮點數學混合的內核實現配對。這將在較低精度下快速執行最重的計算,但在較高精度下執行最敏感的計算,因此通常會導致任務很少甚至沒有最終準確率損失,但與純浮點執行相比,速度顯著加快。對於沒有匹配的「混合」內核的操作,或者工具包認為有必要的操作,它會將參數重新轉換為更高的浮點精度來執行。有關支持混合操作的列表,請參見訓練後量化頁面。




未來展望




TensorFlow 將繼續改進訓練後量化及簡化模型優化過程的其它技術上的工作。這些將整合到 TensorFlow 相關工作流程中,使其更加容易使用。




訓練後量化是 TensorFlow 正在開發的優化工具包下的第一個產品,該團隊希望得到來自開發者的相關反饋。




原文鏈接:https://medium.com/tensorflow/introducing-the-model-optimization-toolkit-for-tensorflow-254aca1ba0a3






本文為機器之心編譯,

轉載請聯繫本公眾號獲得授權



?------------------------------------------------


加入機器之心(全職記者 / 實習生):hr@jiqizhixin.com


投稿或尋求報道:

content

@jiqizhixin.com


廣告 & 商務合作:bd@jiqizhixin.com

喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 機器之心 的精彩文章:

Julia 1.0 正式發布,這是新出爐的一份簡單中文教程
現在,所有人都可以在18分鐘內訓練ImageNet了

TAG:機器之心 |