У меня есть модель 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 между двумя 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
и передать его модели для вывода?