TensorFlow發(fā)布了一個(gè)新的優(yōu)化工具包,引入post-training模型量化技術(shù),將模型大小縮小了4倍,執(zhí)行速度提升了3倍!
今天,TensorFlow發(fā)布了一個(gè)新的優(yōu)化工具包:一套可以讓開(kāi)發(fā)者,無(wú)論是新手還是高級(jí)開(kāi)發(fā)人員,都可以使用來(lái)優(yōu)化機(jī)器學(xué)習(xí)模型以進(jìn)行部署和執(zhí)行的技術(shù)。
這些技術(shù)對(duì)于優(yōu)化任何用于部署的TensorFlow模型都非常有用。特別是對(duì)于在內(nèi)存緊張、功耗限制和存儲(chǔ)有限的設(shè)備上提供模型的TensorFlow Lite開(kāi)發(fā)人員來(lái)說(shuō),這些技術(shù)尤其重要。
優(yōu)化模型以減小尺寸,降低延遲和功耗,同時(shí)使精度損失可以忽略不計(jì)
這次添加支持的第一個(gè)技術(shù)是向TensorFlow Lite轉(zhuǎn)換工具添加post-training模型量化(post-training quantization)。對(duì)于相關(guān)的機(jī)器學(xué)習(xí)模型,這可以實(shí)現(xiàn)最多4倍的壓縮和3倍的執(zhí)行速度提升。
通過(guò)量化模型,開(kāi)發(fā)人員還將獲得降低功耗的額外好處。這對(duì)于將模型部署到手機(jī)之外的終端設(shè)備是非常有用的。
啟用 post-training quantization
post-training quantization技術(shù)已集成到TensorFlow Lite轉(zhuǎn)換工具中。入門很簡(jiǎn)單:在構(gòu)建了自己的TensorFlow模型之后,開(kāi)發(fā)人員可以簡(jiǎn)單地在TensorFlow Lite轉(zhuǎn)換工具中啟用“post_training_quantize”標(biāo)記。假設(shè)保存的模型存儲(chǔ)在saved_model_dir中,可以生成量化的tflite flatbuffer:
1converter=tf.contrib.lite.TocoConverter.from_saved_model(saved_model_dir)2converter.post_training_quantize=True3tflite_quantized_model=converter.convert()4open(“quantized_model.tflite”,“wb”).write(tflite_quantized_model)
我們提供了教程詳細(xì)介紹如何執(zhí)行此操作。將來(lái),我們的目標(biāo)是將這項(xiàng)技術(shù)整合到通用的TensorFlow工具中,以便可以在TensorFlow Lite當(dāng)前不支持的平臺(tái)上進(jìn)行部署。
教程:
https://github.com/tensorflow/tensorflow/blob/master/tensorflow/contrib/lite/tutorials/post_training_quant.ipynb
post-training 量化的好處
模型大小縮小4倍
模型主要由卷積層組成,執(zhí)行速度提高10-50%
基于RNN的模型可以提高3倍的速度
由于減少了內(nèi)存和計(jì)算需求,預(yù)計(jì)大多數(shù)模型的功耗也會(huì)降低
有關(guān)模型尺寸縮小和執(zhí)行時(shí)間加速,請(qǐng)參見(jiàn)下圖(使用單核心在Android Pixel 2手機(jī)上進(jìn)行測(cè)量)。
圖1:模型大小比較:優(yōu)化的模型比原來(lái)縮小了4倍
圖2:延遲比較:優(yōu)化后的模型速度提高了1.2到1.4倍
這些加速和模型尺寸的減小對(duì)精度影響很小。一般來(lái)說(shuō),對(duì)于手頭的任務(wù)來(lái)說(shuō)已經(jīng)很小的模型(例如,用于圖像分類的mobilenet v1)可能會(huì)發(fā)生更多的精度損失。對(duì)于這些模型,我們提供預(yù)訓(xùn)練的完全量化模型(fully-quantized models)。
圖3:精度比較:除 mobilenets外,優(yōu)化后的模型的精度下降幾乎可以忽略不計(jì)
我們希望在未來(lái)繼續(xù)改進(jìn)我們的結(jié)果,請(qǐng)參閱模型優(yōu)化指南以獲得最新的測(cè)量結(jié)果。
模型優(yōu)化指南:
https://www.tensorflow.org/performance/model_optimization
post-training quantization的工作原理
在底層,我們通過(guò)將參數(shù)(即神經(jīng)網(wǎng)絡(luò)權(quán)重)的精度從訓(xùn)練時(shí)的32位浮點(diǎn)表示降低到更小、更高效的8位整數(shù)表示來(lái)運(yùn)行優(yōu)化(也稱為量化)。 有關(guān)詳細(xì)信息,請(qǐng)參閱post-training量化指南。
post-training量化指南:
https://www.tensorflow.org/performance/post_training_quantization
這些優(yōu)化將確保將最終模型中精度降低的操作定義與使用fixed-point和floating-point數(shù)學(xué)混合的內(nèi)核實(shí)現(xiàn)配對(duì)。這將以較低的精度快速執(zhí)行最繁重的計(jì)算,但是以較高的精度執(zhí)行最敏感的計(jì)算,因此通常會(huì)導(dǎo)致任務(wù)的最終精度損失很小,甚至沒(méi)有損失,但相比純浮點(diǎn)執(zhí)行而言速度明顯提高。
對(duì)于沒(méi)有匹配的“混合”內(nèi)核的操作,或者工具包認(rèn)為必要的操作,它會(huì)將參數(shù)重新轉(zhuǎn)換為更高的浮點(diǎn)精度以便執(zhí)行。有關(guān)支持的混合操作的列表,請(qǐng)參閱post-training quantizaton頁(yè)面。
未來(lái)的工作
我們將繼續(xù)改進(jìn)post-training量化技術(shù)以及其他技術(shù),以便更容易地優(yōu)化模型。這些將集成到相關(guān)的TensorFlow工作流中,使它們易于使用。
post-training量化技術(shù)是我們正在開(kāi)發(fā)的優(yōu)化工具包的第一個(gè)產(chǎn)品。我們期待得到開(kāi)發(fā)者的反饋。
-
機(jī)器學(xué)習(xí)
+關(guān)注
關(guān)注
66文章
8349瀏覽量
132312 -
tensorflow
+關(guān)注
關(guān)注
13文章
328瀏覽量
60473
原文標(biāo)題:TensorFlow 首個(gè)優(yōu)化工具來(lái)了:模型壓縮4倍,速度提升3倍!
文章出處:【微信號(hào):AI_era,微信公眾號(hào):新智元】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論