Использование оптимизатора моделей для моделей tenorflow slim - PullRequest
0 голосов
/ 03 января 2019

Я стремлюсь сделать вывод о модели tenorflow slim с оптимизатором Intel OpenVINO. Использование открытых документов vino и слайдов для вывода и tf slim docs для модели обучения.

Это проблема классификации нескольких классов. Я тренировал модель slim mobilnet_v2 с нуля (используя скрипт train_image_classifier.py) . Оценка обученной модели на тестовом наборе дает относительно хорошие результаты, начиная с (используя скрипт eval_image_classifier.py) :

Eval / Точность [0,8017] Eval / Recall_5 [0,9993]

Тем не менее, один .ckpt файл не сохраняется (хотя в конце выполнения train_image_classifier.py появляется сообщение типа "model.ckpt сохраняется в checkpoint_dir" ), есть 3 файла (.ckpt-180000.data-00000-of-00001, .ckpt-180000.index, .ckpt-180000.meta).

Оптимизатору модели OpenVINO требуется один файл контрольных точек.

Согласно документам я звоню mo_tf.py со следующими параметрами:

python mo_tf.py --input_model D:/model/mobilenet_v2_224.pb --input_checkpoint D:/model/model.ckpt-180000 -b 1

Выдает ошибку (то же самое, если передать --input_checkpoint D: /model/model.ckpt):

[ ERROR ]  The value for command line parameter "input_checkpoint" must be existing file/directory,  but "D:/model/model.ckpt-180000" does not exist.

Сообщение об ошибке ясно, таких файлов на диске нет. Но, как я знаю, большинство утилит tf преобразуют .ckpt - ????. Meta в .ckpt под капотом.

Пытается позвонить:

python mo_tf.py --input_model D:/model/mobilenet_v2_224.pb --input_meta_graph D:/model/model.ckpt-180000.meta -b 1

Причины:

[ ERROR ]  Unknown configuration of input model parameters

Для меня не имеет значения, каким образом я буду переводить граф в промежуточное представление OpenVINO, просто нужно достичь этого результата.

Большое спасибо.

EDIT

Мне удалось запустить оптимизатор модели OpenVINO на замороженном графике модели TF Slim. Однако я до сих пор не понимаю, почему мои предыдущие попытки (на основе документов) потерпели неудачу.

1 Ответ

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

вы можете попробовать преобразовать модель в замороженный формат (.pb), а затем преобразовать модель с помощью OpenVINO.

.ckpt-meta имеет метаграф. Структура графов вычислений без значений переменных. тот, который вы можете наблюдать на тензорной доске.

.ckpt-данные имеют значения переменных, без скелета или структуры. для восстановления модели нам нужны файлы мета и данных.

.pb файл сохраняет весь график (мета + данные)

Согласно документации OpenVINO:

Когда сеть определена в коде Python *, вы должны создать файл графа вывода. Обычно графики строятся в форме, которая позволяет моделировать обучение. Это означает, что все обучаемые параметры представлены в виде переменных на графике. Чтобы использовать график с Оптимизатором модели, он должен быть заморожен. https://software.intel.com/en-us/articles/OpenVINO-Using-TensorFlow

OpenVINO оптимизирует модель путем преобразования взвешенного графика, переданного в замороженном виде.

...