TensorFlow用户更喜欢SavedModel而不是Checkpoint或GraphDef吗?

2024-05-06 12:57:53 发布

您现在位置:Python中文网/ 问答频道 /正文

SavedModel Docs

SavedModel, the universal serialization format for TensorFlow models.

以及

SavedModel wraps a TensorFlow Saver. The Saver is primarily used to generate the variable checkpoints.

根据我的理解,SavedModel是必须的,如果有人想使用TensorFlow服务。但是,在没有{^ }的情况下,可以将TysFooFrm模型部署到服务服务器:冻结图并将其导出为^ {CD3}},并将加载图插入到会话中,使用C++中的^ {CD4}}和^ {A2}或^ {A3}中的GO。

SavedModel的目的是什么?用户应该更喜欢SavedModel而不是Checkpoint或GraphDef来聚合更多与模型相关的数据吗?


Tags: the模型formatdocsforismodelstensorflow
1条回答
网友
1楼 · 发布于 2024-05-06 12:57:53

检查点包含TensorFlow模型中(某些)变量的值。它是由一个^{}创建的,这个Variable被指定保存,或者默认保存所有(非本地)变量。

要使用检查点,需要有一个兼容的TensorFlowGraph,其Variable与检查点中的Variable具有相同的名称。(如果没有兼容的Graph,仍然可以使用contrib中的^{}实用程序将存储在检查点中的值加载到选定的Variable中。)

^{}更全面:它包含一组Graphs(^{}s,实际上,保存集合等),以及一个检查点,该检查点应该与这些Graphs和运行模型所需的任何资产文件(例如词汇表文件)兼容。对于它包含的每个MetaGraph,它还存储一组签名。签名定义(命名)输入和输出张量。

这意味着,只要给定一个SavedModel,就可以编写解释或执行内部图形的工具(例如tensorflow/serving,或者不久将出现在tools/中的新的saved_model命令行实用程序)。你只需要提供数据。

如果有疑问,我总是会在写一个SavedModel的时候出错,而不仅仅是一个检查点。这不仅允许您使用tensorflow/serving(以及其他数量会增加的整洁实用程序),还确保您拥有运行模型所需的所有信息。没有什么比你不能再使用的检查点更让人沮丧的了,因为你修改了你的模型,现在它与检查点文件不兼容,你只想通过它运行一些预测进行比较。

相关问题 更多 >