Как конвертировать.ckpt файл в.pb
Я использую ssd_mobilenets в API обнаружения объектов для обучения своей собственной модели и получения файлов.ckpt. Это хорошо работает на моем компьютере, но теперь я хочу использовать модель на моем телефоне. Итак, мне нужно преобразовать его в файл.pb. Я не знаю, как это сделать, может кто-нибудь помочь? Кстати, график ssd_mobilenets является сложным, я не могу найти, какой вывод модели. Есть ли кто-нибудь, кто знает название выхода?
2 ответа
Используйте export_inference_graph.py, чтобы преобразовать файл контрольных точек модели в файл.pb.
python tensorflow_models/object_detection/export_inference_graph.py \
--input_type image_tensor \
--pipeline_config_path architecture_used_while_training.config \
--trained path_to_saved_ckpt/model.ckpt-NUMBER \
--output_directory model/
Это 4-я ячейка кода в object_detection_tutorial.ipynb в этой ссылке - https://github.com/tensorflow/models/blob/master/research/object_detection/object_detection_tutorial.ipynb
# What model to download. MODEL_NAME = 'ssd_mobilenet_v1_coco_2017_11_17' MODEL_FILE = MODEL_NAME + '.tar.gz' DOWNLOAD_BASE = 'http://download.tensorflow.org/models/object_detection/' # Path to frozen detection graph. This is the actual model that is used for the object detection. PATH_TO_CKPT = MODEL_NAME + '/frozen_inference_graph.pb' # List of the strings that is used to add correct label for each box. PATH_TO_LABELS = os.path.join('data', 'mscoco_label_map.pbtxt') NUM_CLASSES = 90
Теперь клетка четко говорит
.pb
имя файла/frozen_inference_graph.pb
- Итак, у вас уже есть
.pb
файл, почему вы хотите конвертировать?? - В любом случае вы можете обратиться по этой ссылке для замораживания графика: https://github.com/jayshah19949596/Tensorboard-Visualization-Freezing-Graph
- вам нужно использовать
tensorflow.python.tools.freeze_graph()
функция для преобразования вашего.ckpt
подать в.pb
файл Ниже строка кода показывает, как вы это делаете
freeze_graph.freeze_graph(input_graph_path, input_saver_def_path, input_binary, input_checkpoint_path, output_node_names, restore_op_name, filename_tensor_name, output_graph_path, clear_devices, initializer_nodes)
- input_graph_path: путь к
.pb
файл, где вы будете писать свой график, и это.pb
файл не заморожен вы будете использоватьtf.train.write_graph()
написать график - input_saver_def_path: вы можете оставить его пустой строкой
- input_binary: это логическое значение, оставьте его ложным, чтобы генерируемый файл не был двоичным и читаемым человеком
- input_checkpoint_path: путь к
.ckpt file
- output_graph_path: путь, куда вы хотите написать
pb
файл - clear_devices: логическое значение... оставьте его ложным
- output_node_names: явные имена тензорных узлов, которые вы хотите сохранить
- restore_op_name: строковое значение, которое должно быть "save / restore_all"
- filename_tensor_name = "save / Const: 0"
- initializer_nodes = ""
- input_graph_path: путь к