那麼這次淺談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會比較好
沒有留言:
張貼留言