Заморозить модель для вывода с именем_сервера_данных для ssd mobilenet v1 coco

Я хочу скомпилировать график TensorFlow в график Movidius. Я использовал модель зоопарка ssd_mobilenet_v1_coco модель для обучения на моем собственном наборе данных.

Потом я побежал

python object_detection/export_inference_graph.py \
                --input_type=image_tensor \
                --pipeline_config_path=/home/redtwo/nsir/ssd_mobilenet_v1_coco.config \
                                --trained_checkpoint_prefix=/home/redtwo/nsir/train/model.ckpt-3362 \
                --output_directory=/home/redtwo/nsir/output

который порождает меня frozen_interference_graph.pb & saved_model/saved_model.pb

11

12

Теперь, чтобы преобразовать эту сохраненную модель в график Movidius. Есть команды

Экспорт файла GraphDef

python3 ../tensorflow/tensorflow/python/tools/freeze_graph.py \
        --input_graph=inception_v3.pb \
        --input_binary=true \
        --input_checkpoint=inception_v3.ckpt \
        --output_graph=inception_v3_frozen.pb \
        --output_node_name=InceptionV3/Predictions/Reshape_1

Заморозить модель для вывода

python3 ../tensorflow/tensorflow/python/tools/freeze_graph.py \
        --input_graph=inception_v3.pb \
        --input_binary=true \
        --input_checkpoint=inception_v3.ckpt \
        --output_graph=inception_v3_frozen.pb \
        --output_node_name=InceptionV3/Predictions/Reshape_1

который наконец можно подать на NCS Intel Movidius SDK

mvNCCompile -s 12 inception_v3_frozen.pb -in=input -on=InceptionV3/Predictions/Reshape_1

Все это дано на веб-сайте Intel Movidius здесь: https://movidius.github.io/ncsdk/tf_modelzoo.html

Моя модель уже была обучена, т.е. output/frozen_inference_graph, Почему я снова замораживаю это, используя /slim/export_inference_graph.py или это output/saved_model/saved_model.py это будет входить в slim/export_inference_graph.py??

Все, что я хочу, это output_node_name = Inceptionv3 / Predictions / Reshape_1. Как получить эту структуру каталогов output_name_name и что-нибудь внутри нее? Я не знаю, что все это содержит

какой выходной узел я должен использовать для модели зоопарка ssd_mobilenet_v1_coco модель (обучена на моем собственном наборе данных)

python freeze_graph.py \
                 --input_graph=/path/to/graph.pbtxt \
                 --input_checkpoint=/path/to/model.ckpt-22480 \
                 --input_binary=false \
                 --output_graph=/path/to/frozen_graph.pb \
                 --output_node_names="the nodes that you want to output e.g. InceptionV3/Predictions/Reshape_1 for Inception V3 "

Вещи, которые я понимаю и не понимаю: input_checkpoint: ✓ [контрольные точки, созданные во время обучения] output_graph: ✓ [путь к выводимому замороженному графику] out_node_names: X

Я не понимаю out_node_names параметр и что следует внутри этого, учитывая его ssd_mobilnet не inception_v3


Системная информация

  • Какой каталог верхнего уровня модели вы используете:
  • Написал ли я собственный код (вместо использования стандартного сценария, предоставленного в TensorFlow):
  • Платформа и распространение ОС (например, Linux Ubuntu 16.04): Linux Ubuntu 16.04
  • TensorFlow установлен из (источника или двоичного файла ): TensorFlow установлен с pip
  • Версия TensorFlow (используйте команду ниже): 1.13.1
  • Базельская версия (если компилируется из исходного кода):
  • Версия CUDA/cuDNN: V10.1.168/7.*
  • Модель и память графического процессора: 2080Ti 11Gb
  • Точная команда для воспроизведения:

1 ответ

График в сохраненной_модели / сохраненной_модели.pb - это определение графа (архитектура графа) предварительно обученной модели inception_v3 без весов, загруженных в граф. Frozen_interference_graph.pb - это график, замороженный с указанными вами контрольными точками и принимающий выходные узлы по умолчанию модели inception_v3. Для получения имен выходных узлов можно использовать инструмент summarise_graph

Вы можете использовать приведенные ниже команды для использования инструмента summarise_graph, если Bazel установлен

bazel build tenorflow/tools/graph_transforms:sumrize_graph

bazel-bin / tenorflow/tools/graph_transforms/sumrize_graph \ --in_graph=/tmp/inception_v3_inf_graph.pb

Если база не установлена, выходные узлы можно получить с помощью тензорной доски или любых других инструментов визуализации графа, таких как Netron.

Дополнительный файл freeze_graph.py может использоваться для замораживания графика, указывающего выходные узлы (т. Е. В случае, когда дополнительные входные узлы добавляются в inceptionV3). Frozen_interference_graph.pb также подходит для вывода.

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