目前在apple developer官網和github上都可以找很多相關tutorial,但主要都侷限拿現成Core ML model,但如果我想要有自己的一個客製化model該怎麼做呢?所以我想要從頭開始學會打造一個自己的model。例如,我想要有一個model可以幫我區別不同的遊戲機圖片(PS4, XBOX, Will)那又該怎麼做?
官方文件 - Core ML
在我看完官方文件跟範例後,可以發現到apple並沒有提到要如何自己做一個客製化model,只提到有一個python tool可以把目前流行的machine learning model(Caffe, Keras...)轉換Core ML model(Converting Trained Models to Core ML)
當環境建立完成,就可以透Digits訓練自己的model可以區分不同圖片,Digits是一個非常方便GUI tool,可以簡易的透過UI介面的操作完成訓練,當然這些操作也可以透過寫程式來執行,但在我選擇了digits來簡化入門的學習。
如何透過apple提供pyton tool進行轉換(coremltools)。
在安裝coremltools,一直無法順利安裝,後來是參考這篇(RuntimeError: Unable to load Caffe)才順利完成安裝。
coreml.py // 自行建立
test.caffemodel // 透過digit訓練完成的caffmodel,可以由digit直接output
test.prototxt // 透過digit訓練完成的caffmodel,可以由digit直接output
import coremltools
coreml_model = coremltools.converters.caffe.convert(
('test.caffemodel', 'test.prototxt'))
coreml_model.author = 'XXXX'
coreml_model.license = 'XXXX'
coreml_model.short_description = "XXXX"
coreml_model.input_description['data'] = 'Input image to be classified'
coreml_model.output_description['softmax'] = 'Most likely image category'
coreml_model.save('test.mlmodel')