CaffeModelからCoreMLで使えるmlmodelに変換するにはcoremltoolsを使います。
PIPが古い場合はpipをupgradeします。
以下のスクリプトをpython3で実行することでcaffemodelをmlmodelに変換します。
Xcodeに取り込むと以下のように見えます。

アプリに組み込む場合、Xcodeでは拡張子がmlmodelと表示されますが、アプリからはmlmodelcとしてアクセスする必要があります。mlmodelcにはXcodeが自動的に変換します。mlmodelcには手動で変換することもできます。
Compile .mlmodel to .mlmodelc for Xamarin.iOS?
pip install coremltools
PIPが古い場合はpipをupgradeします。
pip install --upgrade pip
以下のスクリプトをpython3で実行することでcaffemodelをmlmodelに変換します。
import coremltools coremlmodel = coremltools.converters.caffe.convert( ("lenet.caffemodel", "lenet.prototxt")) coremlmodel.save("lenet.mlmodel")
python3 coreml.py ================= Starting Conversion from Caffe to CoreML ====================== Layer 0: Type: 'Input', Name: 'data'. Output(s): 'data'. Ignoring batch size and retaining only the trailing 3 dimensions for conversion. Layer 1: Type: 'Convolution', Name: 'conv1'. Input(s): 'data'. Output(s): 'conv1'. Layer 2: Type: 'Pooling', Name: 'pool1'. Input(s): 'conv1'. Output(s): 'pool1'. Layer 3: Type: 'Convolution', Name: 'conv2'. Input(s): 'pool1'. Output(s): 'conv2'. Layer 4: Type: 'Pooling', Name: 'pool2'. Input(s): 'conv2'. Output(s): 'pool2'. Layer 5: Type: 'InnerProduct', Name: 'ip1'. Input(s): 'pool2'. Output(s): 'ip1'. Layer 6: Type: 'ReLU', Name: 'relu1'. Input(s): 'ip1'. Output(s): 'ip1'. Layer 7: Type: 'InnerProduct', Name: 'ip2'. Input(s): 'ip1'. Output(s): 'ip2'. Layer 8: Type: 'Softmax', Name: 'prob'. Input(s): 'ip2'. Output(s): 'prob'. ================= Summary of the conversion: =================================== Detected input(s) and shape(s) (ignoring batch size): 'data' : 1, 28, 28 Network Input name(s): 'data'. Network Output name(s): 'prob'.
Xcodeに取り込むと以下のように見えます。

アプリに組み込む場合、Xcodeでは拡張子がmlmodelと表示されますが、アプリからはmlmodelcとしてアクセスする必要があります。mlmodelcにはXcodeが自動的に変換します。mlmodelcには手動で変換することもできます。
/Applications/Xcode.app/Contents/Developer/usr/bin/coremlc compile in.mlmodel out.mlmodelc
Compile .mlmodel to .mlmodelc for Xamarin.iOS?
コメント