使用CoreML模型对图像进行分类时出错

时间:2017-07-28 12:35:01

标签: python predict coremltools

我尝试使用CoreML工具将Keras模型转换为coreml,并且我在预测中出错。 首先我转换了模型:

coreml_model = coremltools.converters.keras.convert(  
    model,  
    input_names='stampImage',    # Inform CoreML the input name  
    image_input_names = 'stampImage', # Inform CoreML the input for images  
    output_names='prediction',  
    class_labels = class_labels, # From labels_dict  
    predicted_feature_name='predicted_feature_name',  
    is_bgr=True) 
coreml_model.save('./trained_models_data/stamps' + version + '.mlmodel') 

转换运行正常。然后我加载了模型:

model =  coremltools.models.MLModel('./trained_models_data/stamps' + version + '.mlmodel')  

图片:

from PIL import Image  
image = Image.open('C1243_LND_899FA3F6-B703-4724-9701-F11DAD7CEDFE.jpg') 

但是当我试图预测时:

model.predict({'stampImage': image})  

我收到了一个错误:

Error: value type not convertible:  
<PIL.JpegImagePlugin.JpegImageFile image mode=RGB size=714x714 at 0x1127425A8>  
---------------------------------------------------------------------------  
RuntimeError                              Traceback (most recent call last)  
<ipython-input-21-82fd85392a7f> in <module>()  
----> 1 model.predict({'stampImage': image})  


/anaconda/envs/coremltools_py2/lib/python2.7/site-packages/coremltools/models/model.pyc in predict(self, data, **kwargs)  
    236         """  
    237         if self.__proxy__:  
--> 238             return self.__proxy__.predict(data)  
    239         else:  
    240             if _sys.platform != 'darwin' or float('.'.join(_platform.mac_ver()[0].split('.')[:2])) < 10.13:  


RuntimeError: value type not convertible  

我试图深入了解&#34; Core ML的步骤&#34;在WWDC会议......有人知道出了什么问题吗?

1 个答案:

答案 0 :(得分:0)

您应该在iOS端加载转换后的模型CoreML。对于python,请在转换前使用模型。