Попытка получить ИК openVino от замороженной модели TF - PullRequest
0 голосов
/ 27 февраля 2019

У меня есть заданная начальная модель V2, которую я хочу получить на RPI, используя NCS2.Примеры работают нормально.Теперь модель, которую мне дают, основана на демонстрации ssd_inceptionv2, которая, как я знаю, работает, поскольку я смог преобразовать замороженные pb этой демонстрации в файлы IR bin и xml и успешно запустить их на pi.Тем не менее, когда я пытаюсь преобразовать данную модель в IR, это не удается.Чтобы быть более конкретным, он терпит неудачу по-разному, в зависимости от того, как я пытаюсь его преобразовать.

Данная модель имеет замороженный файл .pb, файлы контрольных точек и файл .pbtxt.Конвертируя файл .pb, я использую команду:

python3 /opt/intel/computer_vision_sdk/deployment_tools/model_optimizer/mo_tf.py 
  --input_model frozengraph.pb 
  --tensorflow_use_custom_operations_config /opt/intel/computer_vision_sdk/deployment_tools/model_optimizer/extensions/front/tf/ssd_v2_support.json 
  --tensorflow_object_detection_api_pipeline "PATH"/pipeline.config 
  --reverse_input_channels 
  --data_type FP16

, это дает ошибку формы ввода, которую я исправляю с помощью --input_shape [1,299,299,3], но это только приводит к ошибке:

Невозможно вывести формы или значения для узла

"Постпроцессор / BatchMultiClassNonMaxSuppression / MultiClassNonMaxSuppression / SortByField / TopKV2"

Поэтому я пытаюсь выполнить повторное замораживание модели и запустить преобразованиена графике.pbtxt.Для обоих методов он выдает ошибки, поскольку число узлов равно 0 и 1. соответственно.

Есть идеи, что я мог бы сделать не так?

Ответы [ 3 ]

0 голосов
/ 01 марта 2019

Модели Tensorflow могут быть немного хитрыми, особенно когда вы модифицируете модели в зоопарке, которые уже довольно сложны.Есть несколько вещей, которые я хотел бы упомянуть для вашего сценария:

В это руководство по OpenVINO , в « Использование TensorFlow * -специфических параметров преобразования », вы 'Вы обнаружите, что

Модели, созданные с помощью TensorFlow *, обычно не имеют полностью определенных форм (содержат -1 в некоторых измерениях).Необходимо передать явную форму для ввода, используя параметр командной строки --input_shape или -b, чтобы переопределить только размер пакета.Если форма полностью определена, то нет необходимости указывать опции -b или --input_shape.

Некоторые примеры включают эту проблему / ответ Openvino и еще пару в руководстве Model Optimizer в разделе " Дополнительные сведения о внутренних компонентах оптимизатора модели ".

Для записи я былвозможность преобразовывать точно настроенный fast_rcnn_inception_v2 из зоопарка модели без указания аргумента --input_shape, так что это действительно зависит от вашей модели.

Кроме того, это может быть опечатка или проблема с версией, но аргумент --tensorflow_object_detection_api_pipeline официально --tensorflow_object_detection_api_pipeline_config (как упомянуто @Bhargavi).

Наконец, хороший способ отладки ваших команд преобразования - использовать параметр --log_level DEBUG для просмотра полного вывода.

0 голосов
/ 31 мая 2019

Пожалуйста, обратитесь по ссылке ниже

http://docs.openvinotoolkit.org/R5/_docs_MO_DG_prepare_model_convert_model_tf_specific_Convert_Object_Detection_API_Models.html

Ваша команда выглядит следующим образом:

<INSTALL_DIR>/deployment_tools/model_optimizer/mo_tf.py --input_model=/tmp/ssd_inception_v2_coco_2018_01_28/frozen_inference_graph.pb --tensorflow_use_custom_operations_config <INSTALL_DIR>/deployment_tools/model_optimizer/extensions/front/tf/ssd_v2_support.json --tensorflow_object_detection_api_pipeline_config /tmp/ssd_inception_v2_coco_2018_01_28/pipeline.config --reverse_input_channels

Пожалуйста, внимательно прочитайте раздел в пользовательской форме ввода в документации.Пожалуйста, добавьте
--log_level DEBUG, чтобы увидеть более подробную информацию о сбое MO.

Надеюсь, это поможет.

0 голосов
/ 01 марта 2019

Предполагая, что вы можете обнаружить объекты с помощью замороженного графа, попробуйте один раз, изменив аргумент командной строки на tenorflow_object_detection_api_pipeline_config и какой файл pipeline.config вы используете?Вы сможете создавать IR-файлы, если используете файл pipeline.config , который был создан вместе со замороженным графиком для вашей пользовательской модели.

...