前提・実現したいこと
tiny-yolov3の学習済みモデルをkerasモデルに変換しそのモデルをcoremlモデル(mlmodel)に変換をしようとしています。
iosアプリでtiny-yolov3の学習モデルを用いて物体の座標を検出させるアプリを作っています。ですがiosでtiny-yolov3の学習済みモデルを直接使用することはできないのでcoremlモデルに変換する必要があります。そこでtiny-yolov3のモデルをkerasモデル(.h5)までは変換することができるのですがcoremlモデルに変換するところでエラーがでてcoremlモデルを作成することができません。
またkerasモデルへの変換はこのサイトを参考にしました。
(不足している情報がありましたらお知らせください。修正させていただきます)
kerasモデルからcoremlモデルに変換する際のエラーメッセージ
tensorflowバージョン1.1.4の場合
ValueError: ('Unrecognized keyword arguments:', dict_keys(['ragged']))
tensorflowバージョン1.1.5の場合
ValueError: Keras layer '<class 'tensorflow.python.keras.engine.input_layer.InputLayer'>' not supported.
該当のソースコード
tensorflowバージョン1.1.4の場合
python
1import coremltools 2from tensorflow.keras import models, layers 3 4model = models.load_model('yolo-tiny.h5') 5coreml_model = coremltools.converters.keras.convert(model) 6coreml_model.save('my_model.mlmodel')
試したこと
coremlモデルに変換する手法の一つでtiny-yolov3学習モデルをtensorflow(pb)に変換しcoremlモデルに変換する方法を試しましたがtensorflow(pb)に変換するdarkflowがtiny-yolov3に対応していないため断念しました。
参考サイトではtiny-yolov3のモデルをdarkflowを用いて変換するという記述がありますがどうやって対応させたかが不明です。
参考サイト
モジュールのバージョン
python 3.7.4
coremltool 3.4
tensorflow 1.14.0
keras 2.2.4
環境構築に参考にしたサイト
回答1件
あなたの回答
tips
プレビュー