Различные форматы файлов с разными характеристиками, оба используются tensorflow
для сохранения моделей (.h5
в частности keras
).
.pb
- protobuf
Это способ хранения некоторых структурированных данных (в данном случае нейронной сети), проект с открытым исходным кодом и в настоящее время просматривается Google.
Пример
person {
name: "John Doe"
email: "jdoe@example.com"
}
Простой class
, содержащий два поля, вы можете загрузить его на одном из нескольких поддерживаемых языков (например, C++
, Go
), проанализировать, изменить и отправить кому-то другому в двоичном формате.
Преимущества
- очень маленький и эффективный для анализа (по сравнению, скажем,
.xml
), поэтому часто используется для передачи данных через Интернет - используется Tensorflow's Serving , когда вы хотите запустить свою модель в производство (например, вывод через Интернет)
- агностика языка c - двоичный формат может быть прочитан на нескольких языках (Java, Python, Objective- C и C ++ среди других)
- рекомендуется использовать с
tf2.0
, вы можете увидеть официальное руководство по сериализации - сохраняет различные метаданные (оптимизаторы, потери и т. Д. c. При использовании модели
keras
)
Недостатки
SavedModel
концептуально сложнее asp чем один файл - создает папку, где
weights
- это
Кислый ces
Вы можете прочитать об этом формате здесь
.h5
- Формат двоичных данных HDF5
Первоначально использовался keras
для сохранения моделей ( keras
теперь официально является частью tensorflow
). Это менее общий и более «ориентированный на данные», менее программный c, чем .pb
.
Преимущества
- Используется для сохранения гигантских данных (поэтому некоторые нейронные сети подходят well)
- Общий формат сохранения файла
- Все сохраняется в одном файле (веса, потери, оптимизаторы, используемые с
keras
et c.)
Недостатки
- Нельзя использовать с
Tensorflow Serving
, но вы можете просто преобразовать его в .pb
с помощью keras.experimental.export_saved_model(model, 'path_to_saved_model')
Всего
Используйте более простой (.h5
), если вам не нужно производить вашу модель (или это достаточно далеко). Используйте .pb
, если вы собираетесь в производство или просто хотите стандартизировать единый формат для всех tensorflow
предоставленных инструментов.