Не удается преобразовать модель Keras в Coreml

Я пробовал различными способами преобразовать мою модель Keras в core ml с помощью инструментов core ml, но это дает мне эту ошибку.

Слой Keras '' не поддерживается.

Я пытаюсь преобразовать модель .h5 в core ml, чтобы я мог использовать ее в своем приложении, но это дает мне некоторые ошибки, которые я не могу решить. Кроме того, я попытался преобразовать модель .h5 в PB (замороженный график), но там были ошибки.

Так выглядит моя модель.

img_input = layers.Input(shape=(224, 224, 3))


seed = 230

numpy.random.seed(seed)


x = layers.Conv2D(16, 3, activation='relu')(img_input)

x = layers.MaxPooling2D(2)(x)

x = layers.Conv2D(32, 3, activation='relu')(x)

x = layers.MaxPooling2D(2)(x)

x = layers.Flatten()(x)

x = layers.Dense(128, activation='relu')(x)

x = layers.Dropout(0.4)(x)

output = layers.Dense(3, activation='softmax')(x)

model = Model(img_input, output)

model.compile (loss = 'sparse_categorical_crossentropy', optimizer = 'adam', metrics = ['precision'])

это код, который я нашел в Интернете для преобразования модели Keras в основные инструменты ML.

импорт keras импорт coremltools

fcn_mlmodel = coremltools.converters.keras.convert (модель, input_names = 'image', image_input_names = 'image', output_names = 'class_label')

fcn_mlmodel.input_description ['image'] = "Размер изображения (224,224,3)"

fcn_mlmodel.output_description ['class_label'] = "Метка класса"

fcn_mlmodel.save ("Test_my.mlmodel")

Err: слой Keras '' не поддерживается. -


person Shaz Saleem    schedule 24.09.2019    source источник
comment
Добро пожаловать в SO; то, как именно выглядит ваша модель, возможно, не имеет отношения к вашей проблеме; опубликуйте, пожалуйста, что именно вы пробовали с помощью упомянутых инструментов преобразования и какие проблемы возникли   -  person desertnaut    schedule 24.09.2019
comment
@desertnaut это код, который я нашел в Интернете для преобразования модели Keras в основные инструменты ML. import keras import coremltools model.summary () fcn_mlmodel = coremltools.converters.keras.convert (model, input_names = 'image', image_input_names = 'image', output_names = 'class_label') fcn_mlmodel.input_description ['image'] = Размер изображения (224,224,3) fcn_mlmodel.output_description ['class_label'] = Метка класса fcn_mlmodel.save (Test_my.mlmodel) Ошибка: слой Keras '‹class' tensorflow.python.keras.engine.input_layer.InputLayer '›' не поддерживается.   -  person Shaz Saleem    schedule 24.09.2019
comment
Пожалуйста, не размещайте код в поле для комментариев - он буквально нечитаем! Вместо этого отредактируйте и обновите свое сообщение.   -  person desertnaut    schedule 24.09.2019


Ответы (1)


Не могу воссоздать вашу проблему, скопировал все. Может проблема в ваших версиях:

pip install -U coremltools==3.0b6 tensorflow==1.13.1 keras==2.2.4 хорошо работают вместе.

person Seb    schedule 25.09.2019
comment
Решил это. Восстановите модель, просто используя keras. Удален весь импорт из тензорного потока - person Shaz Saleem; 26.09.2019