tensorflow 的.pb格式和keras的**.h5**格式存储模型的主要区别是什么?有没有理由选择其中一种?
shyt4zoc1#
具有不同特性的不同文件格式,均由tensorflow用于保存模型(.h5具体由keras使用)。
tensorflow
.h5
keras
.pb
这是一种存储一些结构化数据的方式(在这种情况下是一个神经网络),项目是open source,目前由谷歌概述。
person { name: "John Doe" email: "jdoe@example.com" }
简单的class包含两个字段,您可以加载它在多种支持的语言之一(例如C++,Go),解析,修改和发送给其他人在二进制格式。
class
C++
Go
.xml
tf2.0
缺点
SavedModel
weights
您可以阅读有关here的信息
最初由keras用来保存模型(keras现在正式成为tensorflow的一部分)。它不那么通用,更“面向数据”,比.pb少编程。
Tensorflow Serving
keras.experimental.export_saved_model(model, 'path_to_saved_model')
如果你不需要生产化你的模型(或者它离你很远),使用简单的一个(.h5)。如果你打算生产或者只是想在tensorflow提供的所有工具上标准化一种格式,使用.pb。
efzxgjgh2#
.pb文件格式用于在Google的TensorFlow框架中存储模型。它是一种二进制文件格式,包含模型的权重沿着有关模型结构和操作的信息。.pb格式旨在快速高效,非常适合在速度和性能非常重要的生产环境中使用。另一方面,.h5文件格式用于在Keras框架中存储模型。它是一种分层文件格式,允许以一种有组织且易于理解的方式存储模型。.h5格式通常用于开发和实验,因为它允许轻松地保存和加载模型,并提供了一种方便的方式来存储关于模型的附加元数据。总的来说,.pb和.h5文件格式之间的主要区别在于它们所关联的框架。.pb格式用于TensorFlow,而.h5格式用于Keras。两种格式都有各自的优势和局限性,最佳选择取决于您的应用程序的特定需求。
2条答案
按热度按时间shyt4zoc1#
具有不同特性的不同文件格式,均由
tensorflow
用于保存模型(.h5
具体由keras
使用)。.pb
-协议缓冲区这是一种存储一些结构化数据的方式(在这种情况下是一个神经网络),项目是open source,目前由谷歌概述。
示例
简单的
class
包含两个字段,您可以加载它在多种支持的语言之一(例如C++
,Go
),解析,修改和发送给其他人在二进制格式。优势
.xml
相比),因此经常用于网络上的数据传输tf2.0
起使用,您可以看到official serializing guidekeras
的模型,优化器,损失等)缺点
SavedModel
在概念上比单个文件更难理解weights
所在的文件夹来源
您可以阅读有关here的信息
.h5
-HDF 5二进制数据格式#最初由
keras
用来保存模型(keras
现在正式成为tensorflow
的一部分)。它不那么通用,更“面向数据”,比.pb
少编程。优势
keras
配合使用的优化器等)缺点
Tensorflow Serving
一起使用,但您可以通过keras.experimental.export_saved_model(model, 'path_to_saved_model')
将其转换为.pb
总而言之
如果你不需要生产化你的模型(或者它离你很远),使用简单的一个(
.h5
)。如果你打算生产或者只是想在tensorflow
提供的所有工具上标准化一种格式,使用.pb
。efzxgjgh2#
.pb文件格式用于在Google的TensorFlow框架中存储模型。它是一种二进制文件格式,包含模型的权重沿着有关模型结构和操作的信息。.pb格式旨在快速高效,非常适合在速度和性能非常重要的生产环境中使用。
另一方面,.h5文件格式用于在Keras框架中存储模型。它是一种分层文件格式,允许以一种有组织且易于理解的方式存储模型。.h5格式通常用于开发和实验,因为它允许轻松地保存和加载模型,并提供了一种方便的方式来存储关于模型的附加元数据。
总的来说,.pb和.h5文件格式之间的主要区别在于它们所关联的框架。.pb格式用于TensorFlow,而.h5格式用于Keras。两种格式都有各自的优势和局限性,最佳选择取决于您的应用程序的特定需求。