tf.keras 模型到 coreml 模型,不支持 BatchNormalization
Posted
技术标签:
【中文标题】tf.keras 模型到 coreml 模型,不支持 BatchNormalization【英文标题】:tf.keras model to coreml model, BatchNormalization not supported 【发布时间】:2021-09-02 08:05:01 【问题描述】:我正在开发一个图像识别项目,该项目使用来自 keras(张量流版本)的 InceptionV3。我已经训练了一个输出层,现在我正在尝试将其导出为 coreMl 格式,以便在 ios 设备上使用它。
然而,我得到了错误:
ValueError:不支持 Keras 层 '
'。
我跑的时候:
model.save('IncepNet_SN_class.h5')
output_labels = ['0', '1', '2', '3', '4']
model_2 = tf.keras.models.load_model('IncepNet_SN_class.h5')
your_model = coremltools.converters.keras.convert('IncepNet_SN_class.h5', input_names=['image'], output_names=['output'],
class_labels=output_labels)
your_model.save('IncepNet_SN_class.mlmodel')
有人知道怎么处理吗?
非常感谢,卢卡斯。
【问题讨论】:
您无法使用 Core ML 工具 Keras 转换器转换 TF 2.x 模型。你需要使用coremltools.convert(...)
先生,您是真正的英雄。效果很好,非常感谢!
【参考方案1】:
来自 cmets
您无法使用 Core ML 工具 Keras 转换
TF 2.x model
转换器。你需要使用coremltools.convert(...)
(转述自Matthijs Hollemans)
【讨论】:
以上是关于tf.keras 模型到 coreml 模型,不支持 BatchNormalization的主要内容,如果未能解决你的问题,请参考以下文章
从不同版本的 tf.keras 加载保存的模型(从 tf 2.3.0 到 tf 1.12)
JSONDecodeError:加载 tf.Keras 模型时的期望值
如何在 Tensorflow-2.0 中绘制 tf.keras 模型?
tf.keras 模型 多个输入 tf.data.Dataset