是否可以在 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])
但它似乎并没有改变模型的输入。
- 当我尝试为它提供图像的numpy数组
BATCH_SIZE
((8, 224, 224, 3)
)时,我收到:
return self.__proxy__.predict(data, useCPUOnly)
RuntimeError: value type not convertible
- 当我尝试向它提供我收到的PIL 图像列表时:
BATCH_SIZE
RuntimeError: {
NSLocalizedDescription = "Required input feature not passed to neural network.";
}
- 当我使用单个图像进行预测时,输出与带有
BATCH_SIZE=1
.
是否可以预测批次?谢谢