Когда использовать расширения файлов .ckpt, .hdf5 и .pb при сохранении модели Tensorflow?

Tensorflow объясняет, что модели можно сохранять в трех форматах файлов: .ckpt или .hdf5 или .pb. Там много документации, поэтому было бы неплохо получить более простое сравнение того, когда использовать какой формат файла.

Вот мое текущее понимание:

ckpt

Из https://www.tensorflow.org/guide/checkpoint:

Контрольные точки фиксируют точное значение всех параметров (объектов tf.Variable), используемых моделью. Контрольные точки не содержат никакого описания вычислений, определенных моделью, и поэтому обычно полезны только тогда, когда доступен исходный код, который будет использовать сохраненные значения параметров.

Итак, похоже, что вам следует использовать cpkt для контрольных точек во время обучения, когда вы знаете, что ваш исходный код будет таким же. Почему его рекомендуется использовать вместо .pb и .hdf5? Это экономит место? Включает ли он данные, которых нет в других форматах файлов?

pb

Также из https://www.tensorflow.org/guide/checkpoint:

С другой стороны, формат SavedModel включает сериализованное описание вычислений, определенных моделью, в дополнение к значениям параметров (контрольная точка). Модели в этом формате не зависят от исходного кода, создавшего модель. Таким образом, они подходят для развертывания с помощью TensorFlow Serving, TensorFlow Lite, TensorFlow.js или программ на других языках программирования (C, C ++, Java, Go, Rust, C # и т. Д. API TensorFlow).

Формат SavedModel - .pb плюс некоторые метаданные. Значит, вы должны сохранять в .pb при развертывании модели?

hdf5

Использовать только при сохранении веса модели (матрицы чисел)?


person skeller88    schedule 23.01.2020    source источник


Ответы (1)


Кажется, вы уже знаете некоторые различия, но просто чтобы добавить.

.ckpt
Это в основном используется для возобновления обучения, а также для того, чтобы пользователи могли настраивать точки сохранения и загрузить в (т. е. наивысшую точность, новейшую обученную модель и т. д.).
А также для создания разных моделей из разных контрольных точек обучения.
Это только сохраняет веса переменных или графика, поэтому, как вы указали, вам необходимо иметь Используется полная архитектура и функции.

.pb (протобуфер)
Это формат файла TensorFlow, который сохраняет все о модели, включая < strong> custom objects, это рекомендуемый формат файла для обеспечения максимальной переносимости при использовании и экспорте на различные платформы (например, Tensorflow Lite, Tensorflow Serving и т. д.).

.h5 (HD5F)
Это предлагаемый формат сохранения собственных файлов Keras, который также сохраняет все о модели но при использовании в TensorFlow 2.1.0 (импорт tensorflow.keras) он не сохраняет настраиваемые объекты автоматически и потребует дополнительных действий будет выполнено.

Вы можете узнать больше об этом по этой ссылке.

person TF_Support    schedule 13.04.2020
comment
Я заметил, что использование формата .h5 приводит к меньшему размеру контрольной точки по сравнению с .ckpt. - person grwlf; 20.04.2020
comment
Привет, @grwlf, когда вы сохраняете в .h5, это действительно зависит от того, что вы сохраняете, но это в основном используется для сохранения всей модели, поскольку HD5F - это сжатый файл. Но при использовании Tensorflow вам могут потребоваться дополнительные шаги для использования данных, поскольку типы файлов .ckpt и .pb полностью поддерживаются Tensorflow. - person TF_Support; 21.04.2020