Экспорт в Tensorflow Lite выглядит так, как будто он не добавляет веса и добавляет неподдерживаемые операции

Я хочу перезагрузить некоторые из моих переменных модели с сохраненным весом в chheckpoint и затем экспортировать его в файл tflite.

Вопрос немного сложен без кода, поэтому я сделал эту записную книжку Colab Jupyter с полным кодом, чтобы объяснить его лучше (весь код работает, вы можете скопировать новый коллаж и изменить, если хотите):

https://colab.research.google.com/drive/1wSor4CxEz36LgElVi4y_N8uiSt4-j9b2

Я получил это работает, но с двумя проблемами:

  • Экспортированный файл.tflite имеет размер 3 КБ, поэтому я не верю, что это вся модель с весами. Только входное изображение 128x128x3, один вес для каждого больше 3К.
  • Когда я наконец импортирую модель в Android, у меня появляется эта ошибка: "Не найдено пользовательской операции для имени" VariableV2 "/n Не найдено пользовательской операции для имени" ReorderAxes "/n Регистрация не удалась".

Может быть, последняя ошибка вызывает операции сохранения / восстановления? Они выглядят так, когда я сохраняю определение графа.

Заранее спасибо.

1 ответ

Я осознаю свою проблему... Я пытаюсь преобразовать в TFLITE модель без предварительного ее замораживания, TFLITE не разрешает узлы "VariableV2", потому что их там быть не должно..

Вся проблема исправлена ​​замораживанием модели следующим образом:

output_graph_def = graph_util.convert_variables_to_constants(sess, sess.graph.as_graph_def(), ["output"])

Я потерял время на поиски, надеюсь, это поможет.

Другие вопросы по тегам