CoreML输出类型

2024-04-23 11:46:36 发布

您现在位置:Python中文网/ 问答频道 /正文

是否可以更改CoreML模型的输出类型?我的模型将图像作为输入,图像作为输出,但是当我将Keras模型转换为mlmodel时,我得到:

coreml_model = coremltools.converters.keras.convert('/Users/user/Desktop/model.h5',input_names='input_img',image_input_names='input_img',output_names='image')
coreml_model.save('/Users/user/Desktop/model.mlmodel')

enter image description here

输出是一个多数组类型,但我想要一个图像类型,我如何更改它?在


Tags: 模型图像image类型imginputmodelnames
1条回答
网友
1楼 · 发布于 2024-04-23 11:46:36

是的,有可能。但是,您以后需要手动更改转换后的核心ML模型,因为从2.1版起,coremltools没有为此提供任何转换选项。在

简而言之,以下是将模型转换为核心ML格式后需要做的事情。这些应该通过调用coremltools的低级api在Python端完成。在

  1. 使用coremltools将转换后的CoreML模型加载到Python中
  2. 在链的末尾添加一个新的ActivationLinear层,就在原始模型的输出层之后。也可以使用该层执行线性变换,例如转换0..1到0..255的范围和/或添加偏移。在
  3. 通过设置它的type属性,将新层配置为图像输出层。在
  4. 将更新后的模型保存到新的核心ML模型中。在
  5. 重新加载它,并使用训练数据集中的样本进行测试,作为健全性检查。在

为了使步骤5正常工作,您需要在Mac上运行Python脚本,因为它使用本机核心ML库来运行模型。在

有关详细信息,请阅读我在getting Core ML to produce images as output上的帖子。在

相关问题 更多 >