我有一个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之间的浮点值是0-255
之间的整数
我试图像这样对模型中的值进行标准化,
z = x.mul(1.0/255.0) # div op is not supported for export yet
但是,当此操作在coreml级别的模型内完成时,int * float
被强制转换为int
,并且所有值本质上都是0
导出不支持广播操作,例如x = x.float()
如何确定输入的形状正确以进行预测?本质上,我想采用pixel rgb and float divide 255.0
并将其传递给模型进行推理吗?
答案 0 :(得分:0)
我使用coreml onnx掩护程序的preprocessing_args来解决它,
preprocessing_args= {'image_scale' : (1.0/255.0)}
希望这对某人有帮助