TensorFlow用于移動設(shè)備的框架TensorFlow Lite發(fā)布重大更新,支持開發(fā)者使用手機等移動設(shè)備的GPU來提高模型推斷速度。
在進行人臉輪廓檢測的推斷速度上,與之前使用CPU相比,使用新的GPU后端有不小的提升。在Pixel 3和三星S9上,提升程度大概為4倍,在iPhone 7上有大約有6倍。
為什么要支持GPU?
眾所周知,使用計算密集的機器學(xué)習(xí)模型進行推斷需要大量的資源。
但是移動設(shè)備的處理能力和功率都有限。雖然TensorFlow Lite提供了不少的加速途徑,比如將機器學(xué)習(xí)模型轉(zhuǎn)換成定點模型,但總是會在模型的性能或精度上做出讓步。
而將GPU作為加速原始浮點模型的一種選擇,不會增加量化的額外復(fù)雜性和潛在的精度損失。
在谷歌內(nèi)部,幾個月來一直在產(chǎn)品中使用GPU后端做測試。結(jié)果證明,的確可以加快復(fù)雜網(wǎng)絡(luò)的推斷速度。
在Pixel 3的人像模式(Portrait mode)中,與使用CPU相比,使用GPU的Tensorflow Lite,用于摳圖/背景虛化的前景-背景分隔模型加速了4倍以上。新深度估計(depth estimation)模型加速了10倍以上。
在能夠為視頻增加文字、濾鏡等特效的YouTube Stories和谷歌的相機AR功能Playground Stickers中,實時視頻分割模型在各種手機上的速度提高了5-10倍。
對于不同的深度神經(jīng)網(wǎng)絡(luò)模型,使用新GPU后端,通常比浮點CPU快2-7倍。對4個公開模型和2個谷歌內(nèi)部模型進行基準(zhǔn)測試的效果如下:
使用GPU加速,對于更復(fù)雜的神經(jīng)網(wǎng)絡(luò)模型最為重要,比如密集的預(yù)測/分割或分類任務(wù)。
在相對較小的模型上,加速的效果就沒有那么明顯了,使用CPU反而有利于避免內(nèi)存?zhèn)鬏斨泄逃械难舆t成本。
如何使用?
安卓設(shè)備(用Java)中,谷歌已經(jīng)發(fā)布了完整的Android Archive (AAR) ,其中包括帶有GPU后端的TensorFlow Lite。
你可以編輯Gradle文件,用AAR替代當(dāng)前的版本,并將下面的代碼片段,添加到Java初始化代碼中。
//InitializeinterpreterwithGPUdelegate.GpuDelegatedelegate=newGpuDelegate();Interpreter.Optionsoptions=(newInterpreter.Options()).addDelegate(delegate);Interpreterinterpreter=newInterpreter(model,options);//Runinference.while(true){writeToInputTensor(inputTensor);interpreter.run(inputTensor,outputTensor);readFromOutputTensor(outputTensor);}//Cleanup.delegate.close();在iOS設(shè)備(用C++)中,要先下載二進制版本的TensorFlowLite。然后更改代碼,在創(chuàng)建模型后調(diào)用ModifyGraphWithDelegate()。//InitializeinterpreterwithGPUdelegate.std::unique_ptr
(更多的使用教程,可以參見TensorFlow的官方教程,傳送門在文末)
還在發(fā)展中
當(dāng)前發(fā)布的,只是TensorFlow Lite的開發(fā)者預(yù)覽版。
新的GPU后端,在安卓設(shè)備上利用的是OpenGL ES 3.1 Compute Shaders,在iOS上利用的是Metal Compute Shaders。
能夠支持的GPU操作并不多。有:
ADD v1、AVERAGE_POOL_2D v1、CONCATENATION v1、CONV_2D v1、DEPTHWISE_CONV_2D v1-2、FULLY_CONNECTED v1、LOGISTIC v1
MAX_POOL_2D v1、MUL v1、PAD v1、PRELU v1、RELU v1、RELU6 v1、RESHAPE v1、RESIZE_BILINEAR v1、SOFTMAX v1、STRIDED_SLICE v1、SUB v1、TRANSPOSE_CONV v1
TensorFlow官方表示,未來將會擴大操作范圍、進一步優(yōu)化性能、發(fā)展并最終確定API。
完整的開源版本,將會在2019年晚些時候發(fā)布。
傳送門
使用教程:
https://www.tensorflow.org/lite/performance/gpu
項目完整文檔:
https://www.tensorflow.org/lite/performance/gpu_advanced
博客地址:
https://medium.com/tensorflow/tensorflow-lite-now-faster-with-mobile-gpus-developer-preview-e15797e6dee7
-
cpu
+關(guān)注
關(guān)注
68文章
10903瀏覽量
213018 -
移動設(shè)備
+關(guān)注
關(guān)注
0文章
506瀏覽量
54824 -
tensorflow
+關(guān)注
關(guān)注
13文章
329瀏覽量
60631 -
TensorFlow Lite
+關(guān)注
關(guān)注
0文章
26瀏覽量
647
原文標(biāo)題:TensorFlow Lite發(fā)布重大更新!支持移動GPU、推斷速度提升4-6倍
文章出處:【微信號:worldofai,微信公眾號:worldofai】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
相關(guān)推薦
評論