Ответ 1
-
файл.ckpt представляет собой выход старой версии
saver.save(sess)
, который является эквивалентом ваших.ckpt-data
(см. ниже) -
файл "контрольной точки" предназначен только для того, чтобы сообщить некоторые функции TF, которые являются последним файлом контрольной точки.
-
.ckpt-meta
содержит metagraph, т.е. структуру вашего вычислительного графа, без значений переменных (в основном, что вы можете видеть в тензограмме/графе). -
.ckpt-data
содержит значения для всех переменных без структуры. Чтобы восстановить модель на python, вы обычно используете файлы мета и данных (но вы также можете использовать файл.pb
):saver = tf.train.import_meta_graph(path_to_ckpt_meta) saver.restore(sess, path_to_ckpt_data)
-
Я точно не знаю о
.ckpt-index
, я предполагаю, что какой-то индекс необходим внутри, чтобы правильно отобразить два предыдущих файла. В любом случае, это не так уж и необходимо, вы можете восстановить модель только с помощью.ckpt-meta
и.ckpt-data
. -
файл
.pb
может сохранить весь ваш график (мета + данные). Для загрузки и использования (но не тренировки) графика в c++ вы обычно используете его, созданный с помощьюfreeze_graph
, который создает файл.pb
из мета и данных. Будьте осторожны (по крайней мере, в предыдущих версиях TF и для некоторых людей) функция py, предоставленнаяfreeze_graph
, не работала должным образом, поэтому вам придется использовать версию скрипта. Tensorflow также предоставляет методtf.train.Saver.to_proto()
, но я не знаю, что именно он делает.
Здесь много вопросов о том, как сохранить и восстановить график. См. Ответ здесь, например, но будьте осторожны, что два упомянутых учебника, хотя и очень полезны, далеки от совершенства, и многие люди все еще, похоже, пытаются импортировать модель в c++.
EDIT: похоже, вы также можете использовать.ckpt файлы в c++, поэтому, я думаю, вам больше не нужен файл.pb.