ios - 使用 coremltools 3 将 TF 2.* keras 模型转换为 iOS 12 的 mlmodel
问题描述
我有一个keras
模型 ( TF 2.*
),我想将其转换为mlmodel
iOS 版本 12。
根据coremltools 4
发行说明:“要将 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.2
, tensorflow==2.4.1
,的新鲜 venv keras==2.4.3
:
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, 1, 2)))
并收到错误:
TypeError: 'InputLayer' object is not iterable
第二次尝试是使用第一个 TF 2.* 版本:tensorflow==2.0.0
和keras==2.3.0
.
我执行相同但收到:
ValueError: Keras layer '<class 'tensorflow.python.keras.engine.input_layer.InputLayer'>' not supported.
我该如何解决?
谢谢
解决方案
推荐阅读
- odoo - 从 odoo pos 中的 api rpc(xml 或 json)获取屏幕上的当前 pos 订单
- php - 自定义重写规则正在破坏分页
- apache-spark - 如何在RDD中将字符串元素转换为数字一
- r - R如何从长格式转换为宽格式
- java - Java/SpringBoot Web 应用程序。插入具有自动递增 id 列的新行
- json - 正则表达式匹配 JSON 值
- python - 如何使用 subplot2grid 自定义子图中的每个轴?
- flask - 如何记录到具有一对多关系的数据库?
- mysql - 我的 WordPress 网站和 phpMyAdmin 无法连接到 MySQL
- java - 有没有办法找到连接到我的 android 以打印文档的打印机的打印机名称?