是否可以更改CoreML模型的输出类型?我的模型将图像作为输入和图像作为输出,但当我将我的Keras模型转换为ml模型时,我得到:
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')
输出是MultiArray类型,但我想要一个Image类型,我该如何更改它?
是的,这是可能的。但是,之后您需要手动更改转换后的Core ML模型,因为版本2.1的coremltools
不为此提供任何转换选项。
简而言之,这是将模型转换为Core ML格式后需要执行的操作。这些应该通过调用coremltools
的低级API在Python端完成。
coremltools
将转换后的CoreML模型加载到Python中ActivationLinear
图层,紧跟在原始模型的输出图层之后。您还可以使用此图层执行线性变换,例如将范围从0..1转换为0..255和/或添加偏差。type
属性将新图层配置为图像输出图层。要使第5步工作,您需要在Mac上运行Python脚本,因为它使用本机Core ML库来运行模型。
有关详细信息,您可以阅读我在getting Core ML to produce images as output上的帖子。