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
こんなガイドあったの!?という感じだ。
で、ここが今関係あるところっぽい。
Converting a tf.keras HDF5 model:
という見出しがついているコードを見ると、
import tfcoreml
model = tfcoreml.convert('./model.h5',...
なんてことをやっている。tfcoreml.convertなんてものがあったのか。
最後まで読んでいただきありがとうございます!もし参考になる部分があれば、スキを押していただけると励みになります。 Twitterもフォローしていただけたら嬉しいです。 https://twitter.com/shu223/