本週TensorFlow推出了一個新的模型優化工具包。這套技術同時適用於新老開發員以優化機器學習模型,特別是運行TensorFlowLite的開發人員。任何現有TensorFlow模型均適用。網絡
什麼是TensorFlow中的模型優化?機器學習
TensorFlowLite轉換工具新支持訓練後量化。理論上,這能夠使數據中的壓縮率提升四倍,相關機器學習模型的執行速度提升三倍。工具
在量化它們所使用的模型時,功耗也下降。post
啓用訓練後量化學習
此量化技術已集成到TensorFlowLite轉換工具中。啓動很是容易。構建TensorFlow模型後,您能夠在TensorFlowLite轉換工具中簡單地啓用「post_training_quantize」標誌。若是模型被保存並存儲在saved_model_dir中,則能夠生成量化的tfliteflatbuffer。優化
有一個說明性的教程解釋瞭如何作。TensorFlowLite當前不支持在平臺上使用此技術部署,但計劃將其合併到通用TensorFlow工具中。blog
訓練後量化的優點教程
這種量化技術的好處包括:內存
l模型尺寸減小約四倍。開發
l在主要由卷積層組成的模型中執行速度提升10-50%。
l是RNN模型速度的三倍。
l因爲減小了內存和計算要求,大多數模型的功耗也會下降。
下圖顯示了使用單核在GooglePixel2手機上幾個模型的模型尺寸減少,執行時間加速。咱們能夠看到優化後的模型幾乎小了四倍。
加速和模型尺寸的減少不會對精度產生太大影響。啓動時小尺寸的模型可能會遭受更大的損失。這是一個比較:
它是如何工做的?
在幕後,它以減小參數精度(神經網絡權重)的方式來運行優化。從訓練時間32位浮點表達至更小更有效的8位整數表達中縮減模型尺寸。
這些優化在結果模型中用固定和浮點算數混合的內核粗略地操做,以確保配對。這可以快速執行最重的計算,但精度較低。可是,最敏感的數據仍然是以高精度計算的,準確性較高。