Когда следует использовать расширения файлов .ckpt против .hdf5 и .pb при сохранении модели Tensorflow? - PullRequest
2 голосов
/ 24 января 2020

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# et c . TensorFlow APIs.

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

hdf5

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

1 Ответ

0 голосов
/ 13 апреля 2020

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

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

.pb (Protobuffer)
Это формат файла TensorFlow , который сохраняет все о Модель , включая пользовательские объекты , это рекомендуемый формат файла для обеспечения максимальной переносимости при использовании и экспорте на различные платформы (ie. Tensorflow Lite , Tensorflow Serving, et c.).

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

Вы можете прочитать об этом подробнее в этой ссылке .

...