Python CoreML输出类型

Python CoreML输出类型,python,keras,coreml,Python,Keras,Coreml,是否可以更改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('/Use

是否可以更改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')


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

是的,这是可能的。但是,由于自2.1版起,
coremltools
不提供任何转换选项,因此您需要在之后手动更改转换后的Core ML模型

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

  • 使用
    coremltools
  • 将一个新的
    ActivationLinear
    层附加到链的末尾,就在原始模型的输出层之后。您还可以使用该层执行线性变换,例如转换从0..1到0..255的范围和/或添加偏移
  • 通过设置新图层的
    类型
    属性,将其配置为图像输出图层
  • 将更新后的模型保存到新的Core ML模型中
  • 将其加载回,并使用训练数据集中的样本进行测试,作为健全性检查
  • 要使步骤5起作用,您需要在Mac上运行Python脚本,因为它使用本机核心ML库来运行模型


    有关详细信息,您可以阅读我的文章。

    我认为当前Core ML不支持尽可能的输出类型的图像(尽管这可能在最新的betas中发生了更改)。我已经发布了一些可以将MLMultiArray转换回图像的代码:(虽然你的图像看起来是灰度的,但是你必须稍微调整一下代码,因为它目前只支持RGB图像)。谢谢你,我来看看!希望CoreML能在下一版本中支持图像。我刚刚推出了一个可以处理灰度图像的更新,它展示了如何修改mlmodel,使其输出图像而不是多数组:@NathanHubens我正在使用python开发一个.mlmodel文件。为此,我正在使用线性回归,我想要使用xls文件(或它的原始数据)作为.mlmodel的输入,我想要在py文件中使用此数据,它应该返回一个数组,即(1)如何将xlx或csv或其原始数据作为输入传递到.mlmodel(2)如何在py文件中使用此输入数据并进行计算(3)mlmodel应返回数组如何实现此类型的mlmodel?