【问题标题】:Coreml model float input for a pytorch modelpytorch 模型的 Coreml 模型浮点输入
【发布时间】:2019-02-09 18:33:57
【问题描述】:

我有一个 pytorch 模型,它以 3 x width x height 图像作为输入,像素值在 0-1 之间标准化

例如,在 pytorch 中输入

img = io.imread(img_path)
input_img =  torch.from_numpy( np.transpose(img, (2,0,1)) ).contiguous().float()/255.0

我将此模型转换为 coreml 并导出了一个 mlmodel,它采用正确尺寸的输入

Image (Color width x height)

但是,我的预测是不正确的,因为模型期望 0-1 和 cvpixelbuffer 之间的浮点值是 int bwetween 0-255

我试图像这样规范化模型内部的值,

z = x.mul(1.0/255.0) # div op is not supported for export yet

但是,当此操作在 coreml 级别的模型内部完成时,int * float 被强制转换为 int 并且所有值本质上都是 0

Cast op 不支持导出,例如 x = x.float()

如何确保我的输入适合预测?本质上,我想将pixel rgb and float divide 255.0 传递给模型进行推理?

【问题讨论】:

  • 您能否为您的问题提供更多代码?为什么“不支持演员阵容”?这看起来很奇怪。

标签: python ios pytorch coreml onnx-coreml


【解决方案1】:

我使用 coreml onnx 转换器的 preprocessing_args 解决了这个问题,

preprocessing_args= {'image_scale' : (1.0/255.0)}

希望这对某人有所帮助

【讨论】:

    猜你喜欢
    • 2023-03-03
    • 2017-12-10
    • 2020-09-03
    • 2021-06-03
    • 2019-06-01
    • 1970-01-01
    • 2020-12-24
    • 1970-01-01
    • 2021-11-19
    相关资源
    最近更新 更多