TransWikia.com

tiny-yolov3の学習済みモデルをcoremlモデルに変換

スタック・オーバーフロー Asked by marakasu on December 2, 2021

前提・実現したいこと

tiny-yolov3の学習済みモデルをkerasモデルに変換しそのモデルをcoremlモデル(mlmodel)に変換をしようとしています。
iosアプリでtiny-yolov3の学習モデルを用いて物体の座標を検出させるアプリを作っています。ですがiosでtiny-yolov3の学習済みモデルを直接使用することはできないのでcoremlモデルに変換する必要があります。そこでtiny-yolov3のモデルをkerasモデル(.h5)までは変換することができるのですがcoremlモデルに変換するところでエラーがでてcoremlモデルを作成することができません。
またkerasモデルへの変換はこのサイトを参考にしました。
https://github.com/qqwweee/keras-yolo3
(不足している情報がありましたらお知らせください。修正させていただきます)

kerasモデルからcoremlモデルに変換する際のエラーメッセージ

tensorflow 1.14の場合

ValueError: ('Unrecognized keyword arguments:', dict_keys(['ragged']))

tensorflow 1.5.0の場合

ValueError: Keras layer '<class 'tensorflow.python.keras.engine.input_layer.InputLayer'>' not supported.

該当のソースコード

import coremltools
from tensorflow.keras import models, layers

model = models.load_model('yolo-tiny.h5')
coreml_model = coremltools.converters.keras.convert(model)
coreml_model.save('my_model.mlmodel')

試したこと

coremlモデルに変換する手法の一つでtiny-yolov3学習モデルをtensorflow(pb)に変換しcoremlモデルに変換する方法を試しましたがtensorflow(pb)に変換するdarkflowがtiny-yolov3に対応していないため断念しました。
参考サイトではtiny-yolov3のモデルをdarkflowを用いて変換するという記述がありますがどうやって対応させたかが不明です。
<https://stackoverflow.com>

モジュールのバージョン

  • python 3.7.4
  • coremltool 3.4
  • tensorflow 1.14.0(1.15.0)
  • keras 2.2.4

環境構築に参考にしたサイトhttps://qiita.com/shu223/items/7679eaeea9c243c80c4d

Add your own answers!

Ask a Question

Get help from others!

© 2024 TransWikia.com. All rights reserved. Sites we Love: PCI Database, UKBizDB, Menu Kuliner, Sharing RPP