TensorFlow官方發布消息稱將引入一個新的優化工具包

2021-01-09 電子發燒友
TensorFlow官方發布消息稱將引入一個新的優化工具包

李倩 發表於 2018-09-21 08:53:44

編者按:幾個月前,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位整數存儲和計算來達到內存佔用更少、計算更少和功耗更少的目的。

隨著深層神經網絡不斷在現實中落地,這種技術將適應現代科技設備的發展步伐,為開發者和產品用戶帶來便利。

打開APP閱讀更多精彩內容

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容圖片侵權或者其他問題,請聯繫本站作侵刪。 侵權投訴

相關焦點

  • TensorFlow 攜手 NVIDIA,使用 TensorRT 優化 TensorFlow Serving...
    目前,TensorFlow Serving 1.13 已實現對 TF-TRT 的支持,而不久後  TensorFlow 2.0 也將支持 TF-TRT 的實現。 TensorFlow 在官方博客中對這項成果進行了發布,雷鋒網 AI 科技評論編譯如下。
  • TensorFlow極速入門
    最後給出了在 tensorflow 中建立一個機器學習模型步驟,並用一個手寫數字識別的例子進行演示。1、tensorflow是什麼?tensorflow 是 google 開源的機器學習工具,在2015年11月其實現正式開源,開源協議Apache 2.0。
  • 步履不停:TensorFlow 2.4新功能一覽!
    Keras 混合精度 API        https://tensorflow.google.cn/api_docs/python/tf/keras/mixed_precision如要使用混合精度 API,您必須使用 Keras 層和優化工具,但無需使用其他 Keras 類,例如模型或損失。
  • 分享TensorFlow Lite應用案例
    不支持的 op 主要集中有兩大類情況:   包括控制流 (control flow) 的 op   相對於 TF mobile,TF Lite 的部分 op 只支持最簡單的 case   目前的一個好的消息就是 TensorFlow 項目組一直在持續的推進對 RNN 系列的支持。   3.
  • 終於來了,TensorFlow 新增官方 Windows 支持
    隨著 TensorFlow r0.12 版的發布,這一開源軟體庫現已支持 Windows7、10 和 Server 2016。同時,這一新版本可以讓用戶在 TensorFlow 訓練中得到 CUDA 8 的 GPU 加速。我們已將新版本在 PyPI 中封裝成型。現在你可以使用命令 C:\> pip install tensorflow 安裝 TensorFlow 了。
  • 深度解讀TensorFlow,了解它的最新發展!
    TensorBoard  TensorBoard是一套可視化工具,研發人員使用TensorFlow寫的神經網絡看上去會顯得非常複雜混亂,為了可以更加直觀的調試、優化神經網絡,谷歌開發了TensorBoard。
  • 官方文檔太辣雞?TensorFlow 2.0開源工具書,30天「無痛」上手
    開源電子書地址:https://lyhue1991.github.io/eat_tensorflow2_in_30_days/GitHub 項目地址:https://github.com/lyhue1991/eat_tensorflow2_in_30_days為什麼一定要學
  • Tensorflow 2.0 即將入場
    但是,如果你和我們一樣是從0.x版本用起的,那麼你就可能得重寫所有代碼庫——雖然官方說會發布轉換工具方便老用戶,但這種工具肯定有很多bug,需要一定的手動幹預。而且,你也必須開始轉變思維模式。這做起來不容易,但真的猛士不就應該喜歡挑戰嗎?
  • 玩轉TensorFlow?你需要知道這30功能
    對於線上訓練來說,這是一個量很大的工作!https://www.tensorflow.org/tfx/data_validation/?hl=zh-cn4)TFX -TensorFlow 變換同樣地,你可能希望用於重新訓練的數據也能被自動進行預處理:對特定特性進行歸一化、將字符串轉換為數值等。
  • tensorflow初級必學算子
    在之前的文章中介紹過,tensorflow框架的核心是將各式各樣的神經網絡抽象為一個有向無環圖,圖是由tensor以及tensor變換構成;雖然現在有很多高階API可以讓開發者忽略這層抽象,但對於靈活度要求比較高的算法仍然需要開發者自定義網絡圖,所以建議開發者儘量先學習tf1.x
  • 輸入示例,自動生成代碼:TensorFlow官方工具TF-Coder已開源
    最近,谷歌 TensorFlow 開源了一個幫助開發者寫 TensorFlow 代碼的程序合成工具 TF-Coder。項目地址:https://github.com/google-research/tensorflow-coderGoogle Colab 試用地址:https://colab.research.google.com/github/google-research/tensorflow-coder/blob/master/TF-Coder_Colab.ipynb
  • Tensorflow 2.0的這些新設計,你適應好了嗎?
    換言之,如果你在這之前從沒接觸過Tensorflow,你是幸運的。但是,如果你和我們一樣是從0.x版本用起的,那麼你就可能得重寫所有代碼庫——雖然官方說會發布轉換工具方便老用戶,但這種工具肯定有很多bug,需要一定的手動幹預。而且,你也必須開始轉變思維模式。這做起來不容易,但真的猛士不就應該喜歡挑戰嗎?
  • TensorFlow 2.4來了:上線對分布式訓練和混合精度的新功能支持
    根據 TensorFlow 官方博客,本次更新的主要內容整理如下:tf.distribute 中的新功能參數伺服器策略在 TensorFlow 2.4 中,tf.distribute 模塊引入了對使用 ParameterServerStrategy 和自定義訓練循環進行模型異步訓練的試驗性支持
  • 資源| TensorFlow版本號升至1.0,正式版即將到來
    發布地址官網:https://www.tensorflow.org/versions/r1.0/GitHub:https://github.com/tensorflow/tensorflow/releases主要特性和提升TensorFlow Debugger (tfdbg):命令行接口和 API增加新的 python 3 docker 鏡像使
  • 谷歌正式發布TensorFlow 1.5,究竟提升了哪些功能?
    昨天,谷歌在 GitHub 上正式發布了 TensorFlow 的最新版本 1.5.0,並開源了其代碼。支持 CUDA 9 和 cuDNN 7 被認為是本次更新的最重要部分。機器之心對這次更新的重大改變以及主要功能和提升進行了編譯介紹,原文請見文中連結。
  • TensorFlow 2.1指南:keras模式、渴望模式和圖形模式(附代碼)
    我們是否使用了正確的工具?哪種框架最適合我的用例?這種方法可擴展嗎?我們是否考慮到可擴展性?如果你像我一樣是一個普通人,那麼可能已經體驗到有時會陷入應用程式開發的困境,以至於很難停下來,去思考一下我們是否採取了有效的方式。在AI領域尤其如此。眾所周知,人工智慧是一個快速發展的領域。當天發表了新的研究。正在迅速開發的主要AI框架之間存在著巨大的鬥爭。
  • Keras和TensorFlow究竟哪個會更好?
    然後,基於一個示例數據集,來訓練這些 CNN,然後檢查所得結果,你會發現,Keras 和 TensorFlow 是可以和諧共處的。 雖然自一年多之前,TensorFlow 就宣稱 Keras 將被併入 TensorFlow 的官方發布版本中,但令我詫異的是,仍有很多深度學習開發者沒有意識到,他們可以通過 tf.keras 子模塊來調用 Keras。
  • 從系統和代碼實現角度解析TensorFlow的內部實現原理|深度
    摘要2015年11月9日,Google發布深度學習框架TensorFlow並宣布開源,並迅速得到廣泛關注,在圖形分類、音頻處理、推薦系統和自然語言處理等場景下都被大面積推廣。TensorFlow系統更新快速,官方文檔教程齊全,上手快速且簡單易用,支持Python和C++接口。
  • TensorFlow 2.0 新鮮出爐!新版本,新架構,新特性
    易用至上,TensorFlow 2.0 Alpha發布這次TensorFlow的一些列更新,重點就在於:讓你使用得更加簡單。TensorFlow 2.0發布以後,訓練的流程將變得十分簡潔:主要流程就是:數據集成和轉換→模型構建→訓練→保存模型。
  • 基於TensorFlow 、OpenCV 和 Docker 的實時視頻目標檢測
    在數據科學和機器學習領域,每周都會發布許多新的算法,工具和程序,直接在你的計算機目錄上安裝調試這些代碼、程序會讓系統變得凌亂不堪。為了防止這種情況,我使用 Docker 容器來創建我的數據科學工作區將程序部署在容器中。你可以在我的代碼庫中找到這個項目的 Dockerfile。