精品国产一级在线观看,国产成人综合久久精品亚洲,免费一级欧美大片在线观看

移動設備上的實時深度學習

責任編輯:editor004

作者:Akira Sosa

2017-11-16 11:36:01

摘自:INFOQ

2017年,在移動應用的深度學習方面取得了一些重大進展。Benchmark TensorFlow model in AndroidBenchmark Core ML model in iOS

2017年,在移動應用的深度學習方面取得了一些重大進展。2017年4月,谷歌發布了輕量級神經網絡MobileNets。2017年6月,蘋果公司發布了Core ML,支持在移動設備上運行機器學習模型。除此之外,最近發布的一些高端設備配備了GPU,它們運行機器學習甚至比MacBook Pro還要快。

深度學習已經無處不在。在這篇文章里,我將會介紹深度學習在現實世界中的應用情況,并見識一下它們的速度到底有多快。

MobileNets應用

我們最近開發了一種新的深度神經網絡,叫作MobileUNet,用于解決語義切分問題。它的設計極其簡單,它在U-Net中使用了MobileNets。這里只列出其中關鍵的點,更多細節可以參考它的GitHub倉庫。

它由編碼器和解碼器組成。編碼器使用了MobileNets,缺少用于分類的全連接層。解碼器使用卷積轉置進行升采樣(upsample)。

在開發該項目時,我們主要關心它的推理速度。我們知道深度神經網絡在GPU上跑得更快一些,但如果運行在移動設備上會怎樣呢?

這也就是為什么我們使用了MobileNets。

它使用深度卷積塊(depthwise conv block)來加快推理速度。它具有更高的準確性和推理速度比率。它提供了一些參數用于在準確性和速度之間做出權衡。

我們可以得到較為理想的結果,如下圖所示。

  速度與準確性

在介紹MobileUNet的性能之前,我想先澄清幾個一般性的概念。

是否所有的卷積(如Conv2D、DepthwiseConv2D和Conv2DTranspose)在不同的處理器上都有相同的速度表現?

答案是否定的。在不同的處理器上,有些操作會很快,有些會很慢。CPU和GPU之間的區別是很容易區分出來的,即使是不同的GPU之間也存在優化差異。

下圖展示了普通的卷積塊和深度卷積塊之間的差別。

深度卷積塊和普通卷積塊在CPU上的表現差別很大,但在GPU上的差別卻小了很多。

因此,如果你想要發布基于移動設備的深度學習應用,最好先在主流的設備上做一下測試。接下來,我要分享一下MobileUNet的各種指標。

我們主要使用了以下幾個設備。

iPhone 6 PlusiPhone 7 PlusiPhone 8 PlusSony Xperia XZ(驍龍820)

MobileNets提供了一個叫作alpha的參數用于控制速度和準確性之間的比率,所以我們也在MobileUNet里使用了這個參數。我們選擇了4個alpha值(1、0.75、0.5和0.25)和4種尺寸的圖像(224、192、160、128)。

下圖是速度對比。

讓人感到驚訝的是,速度最快的并不是iPhone 8 Plus,而是iPhone 7 Plus。iPhone 7 Plus真的很快,在實時應用方面完全沒有問題。iPhone 6 Plus和驍龍820就沒那么快了,特別是當alpha值很大的時候就更慢了。

下圖是準確性對比。

在alpha達到0.25時,準確性開始急速下降。準確性隨著alpha的值和圖像尺寸呈線性下降。所以,我們不使用alpha 0.25這個值。

下圖展示了在驍龍820上運行的速度和準確性。

如果速度對于我們來說很重要,那么就可以考慮左上角那個,尺寸為128,準確性為0.875 IoU,alpha值為0.5。如果更看重準確性,那么可以選擇尺寸為192、alpha值為0.5的那個。

當然,我們也可以為不同的設備使用不同的模型,但這樣會增加復雜性。

現在讓我們來看看為什么iPhone 7 Plus會比iPhone 8 Plus更快。

之前已經說過,速度取決于每個處理器。iPhone 7 Plus的GPU比iPhone 8 Plus的GPU更加契合我們的神經網絡,為此我做了一個實驗。

我們將MobileUNet的編碼器和解碼器分為不同的部分,并測試它們的性能。

很明顯,解碼器部分是iPhone 8 Plus的瓶頸所在。我們在解碼器中使用了Conv2DTranspose,iPhone 7 Plus的GPU針對Conv2DTranspose進行過優化,而iPhone 8 Plus則沒有。

用于基準測試的腳本放在了Gist上。

Benchmark TensorFlow model in AndroidBenchmark Core ML model in iOS

結論

在移動設備上使用深度學習已經成為一種趨勢,在不久的將來,深度學習的應用會越來越方便。

但不是所有的設備都配備了高端GPU,所以進行性能調優是很有必要的。因為不同的處理器具有不同的特點,所以一定要使用真實的設備進行性能測試。

性能測試本身并不難,甚至不需要使用訓練過的模型,我們完全可以使用未訓練的模型找出性能的瓶頸。

鏈接已復制,快去分享吧

企業網版權所有?2010-2024 京ICP備09108050號-6京公網安備 11010502049343號

  • <menuitem id="jw4sk"></menuitem>

    1. <form id="jw4sk"><tbody id="jw4sk"><dfn id="jw4sk"></dfn></tbody></form>
      主站蜘蛛池模板: 特克斯县| 海林市| 库伦旗| 兴隆县| 陈巴尔虎旗| 宜章县| 平罗县| 嘉善县| 涡阳县| 明水县| 长寿区| 井冈山市| 凌源市| 定州市| 金沙县| 二连浩特市| 天祝| 香格里拉县| 上饶县| 安岳县| 西华县| 呈贡县| 白山市| 定南县| 曲水县| 吕梁市| 拜泉县| 富蕴县| 枣阳市| 丹江口市| 富裕县| 青河县| 阳朔县| 桐城市| 台中市| 微山县| 扶沟县| 金堂县| 佛冈县| 东源县| 资兴市|