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
Использовать только при сохранении веса модели (матрицы чисел)?