В чем разница между frozen_inference_graph.pb и save_model.pb? - PullRequest
0 голосов
/ 22 октября 2018

У меня есть обученная модель (Faster R-CNN), которую я экспортировал, используя export_inference_graph.py, чтобы использовать ее для вывода.Я пытаюсь понять разницу между созданными frozen_inference_graph.pb и saved_model.pb, а также model.ckpt* файлами.Я также видел .pbtxt представлений.

Я пытался прочитать это, но не смог найти ответы: https://www.tensorflow.org/extend/tool_developers/

Что содержится в каждом из этих файлов?Какие из них могут быть преобразованы в какие другие?Какова идеальная цель каждого?

Ответы [ 2 ]

0 голосов
/ 28 февраля 2019

Как добавить, frozen_graph.pb включает в себя две вещи: 1. Определение графа 2. Обученные параметры

В то время как save_model.pb, просто есть определение графа.

Вот почему, если вы проверитеразмер обоих файлов .pb, frozen_graph.pb всегда будет больше.

0 голосов
/ 22 октября 2018

frozen_inference_graph.pb, это замороженный граф, который больше не может быть обучен, он определяет graphdef и фактически является сериализованным графом и может быть загружен с этим кодом:

def load_graph(frozen_graph_filename):
    with tf.gfile.GFile(frozen_graph_filename, "rb") as f:
        graph_def = tf.GraphDef()
        graph_def.ParseFromString(f.read())
        return graph_def
tf.import_graph_def(load_graph("frozen_inference_graph.pb"))

сохраненная модель является модельюсгенерированный tf.saved_model.builder и должен быть импортирован в сеанс, этот файл содержит полный граф со всеми весами обучения (как и замороженный граф), но здесь можно обучиться, и этот не сериализован и нуждается вбыть загруженным этим фрагментом.[] Являются константами тегов, которые могут быть прочитаны сохраненный_модель_кли .Эта модель также часто используется для прогнозирования, как, например, google ml engine: файлы

with tf.Session() as sess:
    tf.saved_model.loader.load(sess, [], "foldername to saved_model.pb, only folder")

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

.pbtxt в основном такие же, как и в предыдущих обсуждавшихся моделях, но затем читаемые человеком, а не двоичные.Их также можно игнорировать.

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

Надеюсь, я помог, любые вопросы, задавайте!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...