摘要:今天,發(fā)布了一個新的優(yōu)化工具包一套可以讓開發(fā)者,無論是新手還是高級開發(fā)人員,都可以使用來優(yōu)化機器學習模型以進行部署和執(zhí)行的技術。對于相關的機器學習模型,這可以實現(xiàn)最多倍的壓縮和倍的執(zhí)行速度提升。
今天,TensorFlow發(fā)布了一個新的優(yōu)化工具包:一套可以讓開發(fā)者,無論是新手還是高級開發(fā)人員,都可以使用來優(yōu)化機器學習模型以進行部署和執(zhí)行的技術。
這些技術對于優(yōu)化任何用于部署的TensorFlow模型都非常有用。特別是對于在內存緊張、功耗限制和存儲有限的設備上提供模型的TensorFlow Lite開發(fā)人員來說,這些技術尤其重要。
關于TensorFlow Lite,這里有更多教程:https://www.tensorflow.org/mobile/tflite/
優(yōu)化模型以減小尺寸,降低延遲和功耗,同時使精度損失可以忽略不計
這次添加支持的第一個技術是向TensorFlow Lite轉換工具添加post-training模型量化(post-training quantization)。對于相關的機器學習模型,這可以實現(xiàn)最多4倍的壓縮和3倍的執(zhí)行速度提升。
通過量化模型,開發(fā)人員還將獲得降低功耗的額外好處。這對于將模型部署到手機之外的終端設備是非常有用的。
啟用 post-training quantization
post-training quantization技術已集成到TensorFlow Lite轉換工具中。入門很簡單:在構建了自己的TensorFlow模型之后,開發(fā)人員可以簡單地在TensorFlow Lite轉換工具中啟用“post_training_quantize”標記。假設保存的模型存儲在saved_model_dir中,可以生成量化的tflite flatbuffer:
1converter=tf.contrib.lite.TocoConverter.from_saved_model(saved_model_dir)
2converter.post_training_quantize=True
3tflite_quantized_model=converter.convert()
4open(“quantized_model.tflite”, “wb”).write(tflite_quantized_model)
我們提供了教程詳細介紹如何執(zhí)行此操作。將來,我們的目標是將這項技術整合到通用的TensorFlow工具中,以便可以在TensorFlow Lite當前不支持的平臺上進行部署。
教程:
https://github.com/tensorflow/tensorflow/blob/master/tensorflow/contrib/lite/tutorials/post_training_quant.ipynb
post-training 量化的好處
模型大小縮小4倍
模型主要由卷積層組成,執(zhí)行速度提高10-50%
基于RNN的模型可以提高3倍的速度
由于減少了內存和計算需求,預計大多數模型的功耗也會降低
有關模型尺寸縮小和執(zhí)行時間加速,請參見下圖(使用單核心在Android Pixel 2手機上進行測量)。
圖1:模型大小比較:優(yōu)化的模型比原來縮小了4倍
圖2:延遲比較:優(yōu)化后的模型速度提高了1.2到1.4倍
這些加速和模型尺寸的減小對精度影響很小。一般來說,對于手頭的任務來說已經很小的模型(例如,用于圖像分類的mobilenet v1)可能會發(fā)生更多的精度損失。對于這些模型,我們提供預訓練的完全量化模型(fully-quantized models)。
圖3:精度比較:除 mobilenets外,優(yōu)化后的模型的精度下降幾乎可以忽略不計
我們希望在未來繼續(xù)改進我們的結果,請參閱模型優(yōu)化指南以獲得的測量結果。
模型優(yōu)化指南:
https://www.tensorflow.org/performance/model_optimization
post-training quantization的工作原理
在底層,我們通過將參數(即神經網絡權重)的精度從訓練時的32位浮點表示降低到更小、更高效的8位整數表示來運行優(yōu)化(也稱為量化)。 有關詳細信息,請參閱post-training量化指南。
post-training量化指南:
https://www.tensorflow.org/performance/post_training_quantization
這些優(yōu)化將確保將最終模型中精度降低的操作定義與使用fixed-point和floating-point數學混合的內核實現(xiàn)配對。這將以較低的精度快速執(zhí)行最繁重的計算,但是以較高的精度執(zhí)行最敏感的計算,因此通常會導致任務的最終精度損失很小,甚至沒有損失,但相比純浮點執(zhí)行而言速度明顯提高。
對于沒有匹配的“混合”內核的操作,或者工具包認為必要的操作,它會將參數重新轉換為更高的浮點精度以便執(zhí)行。有關支持的混合操作的列表,請參閱post-training quantizaton頁面。
未來的工作
我們將繼續(xù)改進post-training量化技術以及其他技術,以便更容易地優(yōu)化模型。這些將集成到相關的TensorFlow工作流中,使它們易于使用。
post-training量化技術是我們正在開發(fā)的優(yōu)化工具包的第一個產品。我們期待得到開發(fā)者的反饋。
原文鏈接:
https://medium.com/tensorflow/introducing-the-model-optimization-toolkit-for-tensorflow-254aca1ba0a3?linkId=57036398
聲明:文章收集于網絡,如有侵權,請聯(lián)系小編及時處理,謝謝!
歡迎加入本站公開興趣群商業(yè)智能與數據分析群
興趣范圍包括各種讓數據產生價值的辦法,實際應用案例分享與討論,分析工具,ETL工具,數據倉庫,數據挖掘工具,報表系統(tǒng)等全方位知識
QQ群:81035754
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉載請注明本文地址:http://systransis.cn/yun/4827.html
摘要:此前,在月底,阿里媽媽就公布了這項開源計劃,引來了業(yè)界的廣泛關注。突破了現(xiàn)有深度學習開源框架大都面向圖像語音等低維稠密數據而設計的現(xiàn)狀,面向高維稀疏數據場景進行了深度優(yōu)化,并已大規(guī)模應用于阿里媽媽的業(yè)務及生產場景。 showImg(https://segmentfault.com/img/remote/1460000017508808); 剛剛,阿里媽媽正式對外發(fā)布了X-Deep Le...
閱讀 3233·2021-11-23 09:51
閱讀 1040·2021-08-05 09:58
閱讀 671·2019-08-29 16:05
閱讀 981·2019-08-28 18:17
閱讀 3037·2019-08-26 14:06
閱讀 2730·2019-08-26 12:20
閱讀 2164·2019-08-26 12:18
閱讀 3072·2019-08-26 11:56