具有不同特征的不同文件格式,都由tensorflow
用于保存模型(.h5
特别是keras
).
.h5是一种存储结构化数据(在这种情况下是神经网络)的方法,目前已由Google概述.
简单的class
包含两个字段,您可以使用多种受支持的语言(例如C++
,Go
)之一将其加载,解析,修改并以二进制格式发送给其他人.
- 解析力极小且有效(与说出
.xml
相比),因此通常用于网络上的数据传输 - 当您要将模型投入生产时(例如推论),由 Tensorflow的服务使用通过网络)
- 不可知的语言-二进制格式可以由多种语言(Java,Python,Objective-C和C ++等)读取
- 从
tf2.0
开始建议使用,您可以参阅官方序列化指南 - 保存各种元数据(使用
keras
模型的情况下,优化程序,损失等)
SavedModel
在概念上比单个文件更难掌握- 创建
weights
所在的文件夹
keras
最初用于保存模型(keras
现在正式是tensorflow
的一部分)
与.pb
相比,它不那么通用,更面向数据",编程更少.
- 用于保存巨型数据(因此某些神经网络很适合)
- 常用文件保存格式
- 所有内容都保存在一个文件中(权重,损失,与
keras
一起使用的优化程序等)
- 不能与
Tensorflow Serving
一起使用,但是您可以通过keras.experimental.export_saved_model(model, 'path_to_saved_model')
- 轻松将其转换为
.pb
如果不需要生产模型(或者距离合理很远),请使用较简单的模型(.h5
).如果要进行生产,或者只想在所有tensorflow
提供的工具中采用单一格式进行标准化,则使用.pb