1

是否可以在 mlmodel 中预测批次?如果是,如何?

如文档中所述,我将 keras 模型转换为 mlmodel :

import coremltools as ct 
image_input = ct.ImageType(name='input', shape=(1, 224, 224, 3))
model = ct.convert(keras_model, inputs=[image_input])

接下来,我加载一个图像,将其调整为 (224, 224),将其转换为 PIL,并在预测中使用它:

img_resized = cv2.resize(img_read, (224, 224))
PIL_image = Image.fromarray(np.uint8(img_resized))
img_heatmap = self.model.predict({'input': PIL_image})

是否可以做一批图像而不是单个图像?

我试图在转换中定义一批输入类型:

BATCH_SIZE = 8
image_input = ct.ImageType(name='input', shape=(BATCH_SIZE, 224, 224, 3))
model = ct.convert(keras_model, inputs=[image_input])

但它似乎并没有改变模型的输入。

  1. 当我尝试为它提供图像的numpy数组BATCH_SIZE(8, 224, 224, 3))时,我收到:
    return self.__proxy__.predict(data, useCPUOnly)
RuntimeError: value type not convertible
  1. 当我尝试向它提供我收到的PIL 图像列表时:BATCH_SIZE
RuntimeError: {
    NSLocalizedDescription = "Required input feature not passed to neural network.";
}
  1. 当我使用单个图像进行预测时,输出与带有BATCH_SIZE=1.

是否可以预测批次?谢谢

4

0 回答 0