編者按:幾個月前,Tensorflow發布了一份名為《Quantizing deep convolutional networks for efficient inference》的白皮書,主要介紹團隊關于模型量化的相關工作,所謂量化,簡單來說就是將32浮點數近似地用8位整數存儲和計算,量化后,模型占用存儲空間減小75%,能起到壓縮模型的效果。而現在,這項技術就快和大家見面了。
今天凌晨,TensorFlow官方發布消息稱將引入一個新的優化工具包,方便機器學習初學者和高級開發人員進行優化,方便模型的部署和執行。
它的名字是訓練后量化(post-training quantization),這是模型量化的一類,主要優點有:
模型占用存儲空間縮小75%
如果是主要由卷積層組成的模型,執行速度提高10–50%
如果是基于RNN的模型,執行速度提高3倍
內存、算力要求的降低也意味著大多數模型的功耗會大幅降低
內存、算力、功耗,這是模型量化的主要優化對象,而在實踐中,最能從中收益的自然是在各種移動端設備上使用機器學習模型的開發人員,尤其是TensorFlow Lite的用戶。
下圖展示了使用這個優化工具包后,幾種典型模型在存儲空間占用上的變化(單核Android Pixel 2手機):
模型尺寸比較:經優化的模型幾乎為原來的1/4
下圖是訓練后量化對模型執行的加速效果(單核Android Pixel 2手機):
延遲比較:經優化的模型執行速度提高了1.2到1.4倍
通常情況下,模型壓縮會對原有準確率造成不同程度的影響,但訓練后量化的影響幾乎等同于無,它能在縮小尺寸、提高速度的前提下保持模型精度,如下圖所示(單核Android Pixel 2手機):
啟用模型量化
現在訓練后量化已被集成到TensorFlow Lite中,它的使用方法很簡單:首先構建一個TensorFlow模型,其次在conversion tool中找到模型量化的標志“posttrainingquantize”。假設模型存儲在savedmodeldir中,那么具體命令就是:
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)
具體操作可見github:github.com/tensorflow/tensorflow/blob/master/tensorflow/contrib/lite/tutorials/posttrainingquant.ipynb
雖然目前開發者們只能在TensorFlow Lite中用到這個技術,但官方也稱將盡快把它整合到一般的TensorFlow工具中。
小結
除了訓練后量化,在之前提到的白皮書中,Tensorflow還提到了訓練時量化,它能使模型的準確率更高。而綜合來看,它們都是基于量化設計的技術,依靠把32浮點數近似地用8位整數存儲和計算來達到內存占用更少、計算更少和功耗更少的目的。
-
機器學習
+關注
關注
66文章
8446瀏覽量
133124 -
tensorflow
+關注
關注
13文章
329瀏覽量
60638
原文標題:模型大小縮小75%,TensorFlow推出模型優化工具包
文章出處:【微信號:jqr_AI,微信公眾號:論智】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
七款經久不衰的數據可視化工具!
最新Simplicity SDK軟件開發工具包發布
基于EasyGo Vs工具包和Nl veristand軟件進行的永磁同步電機實時仿真
![基于EasyGo Vs<b class='flag-5'>工具包</b>和Nl veristand軟件進行的永磁同步電機實時仿真](https://file1.elecfans.com/web3/M00/00/1A/wKgZPGdGksGARpQuAAAioYCYmqQ802.png)
FPGA仿真工具包軟件EasyGo Vs Addon介紹
![FPGA仿真<b class='flag-5'>工具包</b>軟件EasyGo Vs Addon介紹](https://file1.elecfans.com/web2/M00/0A/1E/wKgZomcZ_emAODWOAAAN1PSrPUk190.jpg)
TensorFlow是什么?TensorFlow怎么用?
使用freeRTOS開發工具包時,在哪里可以找到freeRTOS的版本?
tensorflow和pytorch哪個好
keras模型轉tensorflow session
TensorFlow的定義和使用方法
寶塔面板Docker一鍵安裝:部署GPTAcademic,開發私有GPT學術優化工具
![寶塔面板Docker<b class='flag-5'>一</b>鍵安裝:部署GPTAcademic,開發私有GPT學術<b class='flag-5'>優化工具</b>](https://file1.elecfans.com//web2/M00/F7/00/wKgZomaDetqAKW_2AAMDjihaz70243.png)
新加坡推出Project Moonshot -- 這是一款生成式人工智能測試工具包,用于應對LLM安全和安保挑戰
![新加坡推出Project Moonshot -- 這是<b class='flag-5'>一</b>款生成式人工智能測試<b class='flag-5'>工具包</b>,用于應對LLM安全和安保挑戰](https://file1.elecfans.com//web2/M00/EC/39/wKgaomZdsDaAGNPhAADKGDqEwWM835.jpg)
Edge Impulse發布新工具,助 NVIDIA 模型大規模部署
QE for Motor V1.3.0:汽車開發輔助工具解決方案工具包
![QE for Motor V1.3.0:汽車開發輔助<b class='flag-5'>工具</b>解決方案<b class='flag-5'>工具包</b>](https://file.elecfans.com/web1/M00/D9/4E/pIYBAF_1ac2Ac0EEAABDkS1IP1s689.png)
評論