微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

使用 coremltools 3 将 TF 2.* keras 模型转换为适用于 iOS 12 的 mlmodel

如何解决使用 coremltools 3 将 TF 2.* keras 模型转换为适用于 iOS 12 的 mlmodel

我有一个 keras 模型 (TF 2.*),我想使用 iOS 12 版本将其转换为 mlmodel

根据coremltools 4 release notes: “要将 Core ML 模型部署到 iOS12、macOS 10.13、watchOS 5、tvOS 12 或更旧版本的目标,请使用 coremltools 3 和 tfcoreml 1。”

tfcoreml 仅适用于 TF 1.*,所以我知道我需要使用 coremltools version 3.*

我正在尝试 coremltools version 3.2,我想使用此函数 [coremltools.converters.keras.convert][2]

我从一个简单的尝试开始,使用带有 coremltools==3.2tensorflow==2.4.1keras==2.4.3 的新鲜 venv:

base_model = load_model(keras_model_p)
coreml_model = coremltools.converters.keras.convert(model)

但我收到以下错误

TypeError: Keras layer of type <class 'tensorflow.python.keras.engine.functional.Functional'> is not supported.

我试图改变功能部分,从:

base_model2 = load_model(keras_model_p)
top_model2 = Sequential()
top_model2.add(Permute((3,1,2)))
model2 = Model(inputs=base_model2.input,outputs=top_model2(base_model2.output))

base_model = load_model(keras_model_p)
model = Sequential()
model.add(base_model)
model.add(Permute((3,2)))

并收到错误消息: TypeError: 'InputLayer' object is not iterable

第二次尝试使用第一个 TF 2.* 版本:tensorflow==2.0.0keras==2.3.0

我执行相同但收到:

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

我该如何解决

谢谢

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。