如何在keras中转换mlmodel

时间:2018-10-30 10:09:09

标签: python keras mlmodel

我想使用keras和CoreML制作一个应用程序,因此阅读参考资料时,我是在代码下编写的。但是,当我转换模型时,我几乎遇到了一些问题。

例如,模型的层是

model = Sequential()

all_class = 7

model.add(Conv2D(32, (3, 3), padding='same',
                input_shape=X_train.shape[1:]))
model.add(Dense(7, input_dim =4))


model.add(Activation('relu'))
model.add(Conv2D(32, (3, 3)))
model.add(Activation('relu'))
model.add(Dropout(0.5))

model.add(MaxPooling2D(pool_size=(2, 2)))
model.add(Dropout(0.25))

model.add(Conv2D(64, (3, 3), padding='same'))
model.add(Activation('relu'))
model.add(Conv2D(64, (3, 3)))
model.add(Dropout(0.5))
model.add(Activation('relu'))
model.add(MaxPooling2D(pool_size=(2, 2)))
model.add(Dropout(0.25))

model.add(Activation('relu'))
model.add(Conv2D(32, (3, 3)))
model.add(Dropout(0.5))
model.add(Activation('relu'))
model.add(MaxPooling2D(pool_size=(2, 2)))
model.add(Dropout(0.25))

model.add(Flatten())
model.add(Dense(512))
model.add(Activation('relu'))
model.add(Dropout(0.5))
model.add(Dense(all_class))  
model.add(Activation('softmax'))

model.compile(loss='sparse_categorical_crossentropy',
                optimizer='Adam',
                metrics=['accuracy'])

,并且当我使用此代码将模型转换为mlmodel形状模型时,

coreml_model = coremltools.converters.keras.convert(model,
    class_labels='labels.text',
    input_names='image',
    is_bgr = True,
    image_input_names='image',
    image_scale=1/255.0)

发生此问题

Input name length mismatch
0 : conv2d_121_input, <keras.engine.input_layer.InputLayer object at 0x1c59438c88>
                          :
KeyError: 'conv2d_121_input'

请告诉我如何解决此问题。

0 个答案:

没有答案