tf.kerasで作成して保存したモデルを読み込みcoremltoolsでconvertしようとすると"ValueError: Keras layer '' not supported. "エラーが出る場合の対処法

Core ML Toolsでこんな感じでconvertしようとすると、

from coremltools.converters import keras as converter
mlmodel = converter.convert(keras_model)

こういうエラーが出た。

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

同じようなエラーが出た人はたくさんいるようだ。

これらのissueの中に、こういう回答があった。

Experimental support for TensorFlow 2.x and tf.keras was added in coremltools 3.1 with some known issues, could you please try again with the latest version of coremltools 3.1 and/or tfcoreml 1.1. Please see the neural network conversion guide and/or Jupyter notebooks for some conversion examples. If you encounter any issues while converting your model, please file a new GitHub issue with steps to reproduce. Thanks!

今使用しているのはまさにcoremltools 3.1なんだけどな、と思いつつ、このガイドを見ろ、と貼られているリンクを開いてみた。

https://github.com/apple/coremltools/blob/master/docs/NeuralNetworkGuide.md#tensorflow-converter

こんなガイドあったの!?という感じだ。

で、ここが今関係あるところっぽい。

https://github.com/apple/coremltools/blob/master/docs/NeuralNetworkGuide.md#tensorflow-2-converter-tfkeras

Converting a tf.keras HDF5 model:

という見出しがついているコードを見ると、

import tfcoreml
model = tfcoreml.convert('./model.h5',...

なんてことをやっている。tfcoreml.convertなんてものがあったのか。

続きをみるには

残り 832字
文章やサンプルコードは多少荒削りかもしれませんが、ブログや書籍にはまだ書いていないことを日々大量に載せています。たったの400円で、すぐに購読解除してもその月は過去記事もさかのぼって読めるので、少しでも気になる内容がある方にはオトクかと思います。

技術的なメモやサンプルコード、思いついたアイデア、考えたこと、お金の話等々、頭をよぎった諸々を気軽に垂れ流しています。

最後まで読んでいただきありがとうございます!もし参考になる部分があれば、スキを押していただけると励みになります。 Twitterもフォローしていただけたら嬉しいです。 https://twitter.com/shu223/