CoreML中的Python Tensorflow模型的图像输入

时间:2019-01-05 23:31:24

标签: python tensorflow classification coreml coremltools

我正在使用张量流(python)实现一个简单的图像分类模型。

这是我的图像预处理:

import glob
for filename in glob.glob('/Volumes/G-DRIVE mobile USB-C/traan/*.jpeg'): #assuming jpeg
    im=Image.open(filename)
    im = im.resize((150,120), Image.ANTIALIAS)
    print(im.size)
    training_images.append(im)

这是我非常简单的模型:

model = keras.Sequential([
    keras.layers.Flatten(input_shape=(120, 150, 3)),
    keras.layers.Dense(512, activation=tf.nn.relu),
    keras.layers.Dense(256, activation=tf.nn.relu),
    keras.layers.Dense(128, activation=tf.nn.relu),
    keras.layers.Dense(10, activation=tf.nn.softmax)
])

我想将此模型加载到CoreML中,

import coremltools

modelCoreML = coremltools.converters.tensorflow.convert(model, input_feature, output_feature)
modelCoreML.save("Model.mlmodel")

但是如何在可以输入图像而不是numpy堆栈的位置执行此操作?我应该在应用程序本身中处理图像并将其转换为正确的格式,然后将其放入模型中吗?我该怎么办?

1 个答案:

答案 0 :(得分:0)

您需要为image_input_names提供coremltools.converters.keras.convert()参数,以便coremltools知道应将哪些输入视为图像。 documentation中对此进行了解释。