Translate

bloggerads內文

2017年11月21日 星期二

IOS- 淺談TensorFlow 到 Core ML

這幾天在看Apple今年6月的關於機器學習的部分的影片(都過這麼久了...),覺得Apple終於要開源AI這塊了,但是還是慢Google好多步阿,不過對於我們開發者而言也是一項福音不是嗎?

那麼這次淺談Apple 的 Core ML 與 Google 的 TensorFlow好了


1.Core ML:





看上圖,Core ML是把已經訓練好的數據模型(比如利用Caffe訓練的模型),通過coremltools轉換成Core ML格式的模型,最後提供了一系列的API,快速的集成到App中。所以並不包含訓練過程。

PS:官網(底下有訓練好的模型)

我們拿其中一個模型拉到Xcode裡看一下長什麼樣子

Core ML的數據格式包括三大部分:名稱,輸入以及輸出.Xcode會自動生成swift或者oc的包裝類,APP可以通過Core ML提供的API方便的使用該訓練好的數據模型。

所以綜合所述,Core ML本身的API只是藉助已經訓練好的數據模型,最後生成對應的包裝類,接收輸入,輸出結果值。

2. TensorFlow:


那麼TensorFlow是什麼呢?


TensorFlow是一個採用資料流圖,用於數值計算的開源軟體庫。
TensorFlow支持Python和C ++兩種編程語言,再複雜的多層神經網絡模型都可以用Python來實現。
所以綜合所述,TensorFlow更偏向的是數據訓練層,如果要對比,那麼他應該是和來自Caffe等框架在一個層面上,
而不是和Core ML使用層去對比。當然TensorFlow也可以和Core ML一樣,在移動設備上運行的。





3.性能比較:

那麼兩者在性能上是否有很大的差別呢?由於我還沒試過TensorFlow運用在IOS上,

先提供網友在同樣的模型下拿來做識別物件的比較.



1.core ML





2.TesorFlow






在識別速度上幾乎無差別,但在運算損耗上後者更高,意味著手機很快就會發燙。這就是我為什麼把APP轉換成Core ML實現了的。但這樣也成變成只能在IOS11 以上才能運作了,相信再過幾年更新,讓最低版本從11開始,相信可以更普及了吧.

4.Core ML 訓練部分:
訓練部分不屬於Core ML,你只需要把你訓練好的數據模型,通過CoreMLTool轉換成Core ML格式的模型即可。當然Apple官方說明使用Core ML支持的模型和第三方工具(網址連結),需使用python來轉.

5.總結:

以上總結Google的TensorFlow有開源出來,但Core ML僅限ios,但卻可以發揮設備本身最大的性能。目前 而言Core ML讓我覺得資料集是跟隨APP版本一起發佈出去的,他並不支持對資料再次訓練,導致無法繼續優化的資料集 Core ML僅僅是個開始,這也告知開發者要開始朝ML邁進了,但以目前多元發展性而言還是TensorFlow會比較好


沒有留言:

張貼留言