KerasモデルのCoreMLへの変換
◎環境:Python 3.6.7、TensorFlow 1.13.1、coremltools 2.1.0
概要
Kerasで作成したモデル(HDF5形式)を、AppleのCoreML(.mlmodel形式)で使用できるように変換する。
KerasモデルのHDF5形式での保存
Kerasモデルは、以下コードにてHDF5形式にエクスポートできる。
model = Sequential() model.add() ... # いろいろ処理 model.save('./model.hdf5') # モデルをHDF5形式で保存(モデル構造/重み/学習時の設定を保存)
参考:Kerasモデルの保存には、上記の他に以下の2通りがある (ただし、CoreMLへ変換するには、上記の方法で保存する)
model.to_json() # モデルのアーキテクチャのみ保存 model.save_weights('./model_param.hdf5') # モデルの重みのみ保存
HDF5形式をCoreML(mlmodel)形式に変換
HDF5形式をCoreML(mlmodel)形式に変換するには、coremltoolsというツールを使用する。 coremltoolsは、pipにてインストール可能。
pip install coremltools
インストール後、以下コードを使用し、変換することができる。
import coremltools strHDF5File = 'mymodel.hdf5' strmlmodelFile = 'mymodel.mlmodel' coreml_model = coremltools.converters.keras.convert(strHDF5File) coreml_model.save(strmlmodelFile)
※追記(2019/6/6):mlmodelのファイル名は「model.mlmodel」だとxcodeでビルドエラーとなるため注意
→mlmodelのファイル内には、モデル動作用のコードも含まれている