Как конвертировать млмодель в керас - PullRequest
0 голосов
/ 30 октября 2018

Я хочу сделать приложение, используя 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'

Скажите, пожалуйста, как решить эту проблему.

...