Не удается преобразовать модель Keras в tflite - PullRequest
1 голос
/ 15 апреля 2019

У меня сохранена модель Keras со следующей строкой:

tf.keras.models.save_model(model, "path/to/model.h5")

Позже я пытаюсь преобразовать ее в tflite файл следующим образом:

converter = tf.contrib.lite.TFLiteConverter.from_keras_model_file('path/to/model.h5')
tflite_model = converter.convert()
open("path/to/model.tflite", "wb").write(tflite_model)

Но яполучаю странную ошибку:

Вы пытаетесь загрузить файл весов, содержащий 35 слоев, в модель с 0 слоями.

Я знаю, что моя модель работает нормально.Я могу загрузить его и сделать выводы.Эта ошибка появляется только при попытке сохранить ее как модель tflite.

Версия TensorFlow: tenorflow-gpu 1.12.0

Я использую tf.keras.

1 Ответ

0 голосов
/ 16 апреля 2019

Оказывается, проблема связана с явным определением InputLayer с некоторыми input_shape.

Моя модель имела вид:

InputLayer (input_shape = (...))

BatchNormalization ()

.... Остальные слои

Я изменил его на:

BatchNormalization(input_shape = (...))

.... Оставшиеся слои

и перенесенные веса из предыдущей модели сюда.Теперь работает отлично.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...