Использование оптимизатора моделей для моделей tenorflow slim
Я стремлюсь сделать вывод о модели Slimorflow с оптимизатором Intel OpenVINO. Использование открытых документов и слайдов Vino для вывода и тонких документов для модели обучения.
Это проблема классификации нескольких классов. Я обучил модель 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, просто нужно достичь этого результата.
Большое спасибо.
РЕДАКТИРОВАТЬ
Мне удалось запустить оптимизатор модели OpenVINO на замороженном графике модели TF Slim. Однако я до сих пор не знаю, почему мои предыдущие попытки (на основе документов) потерпели неудачу.
1 ответ
Вы можете попробовать преобразовать модель в замороженный формат (.pb), а затем преобразовать модель с помощью openvino.
.ckpt-meta имеет метаграф. Структура графов вычислений без значений переменных. тот, который вы можете наблюдать в тенорборде.
.ckpt-data имеет значения переменных, без скелета или структуры. чтобы восстановить модель, нам нужны файлы мета и данных.
Файл.pb сохраняет весь график (мета + данные)
Согласно документации открытого вина:
Когда сеть определена в коде Python*, вы должны создать файл графа вывода. Обычно графики строятся в форме, которая позволяет моделировать обучение. Это означает, что все обучаемые параметры представлены в виде переменных на графике. Чтобы использовать график с Оптимизатором модели, он должен быть заморожен. https://software.intel.com/en-us/articles/OpenVINO-Using-TensorFlow
Открытое вино оптимизирует модель путем преобразования взвешенного графика, переданного в замороженном виде.