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服务。但是,在没有{^
SavedModel的目的是什么?用户应该更喜欢SavedModel而不是Checkpoint或GraphDef来聚合更多与模型相关的数据吗?
检查点包含TensorFlow模型中(某些)变量的值。它是由一个^{} 创建的,这个
Variable
被指定保存,或者默认保存所有(非本地)变量。要使用检查点,需要有一个兼容的TensorFlow} 实用程序将存储在检查点中的值加载到选定的
Graph
,其Variable
与检查点中的Variable
具有相同的名称。(如果没有兼容的Graph
,仍然可以使用contrib中的^{Variable
中。)^{} 更全面:它包含一组} s,实际上,保存集合等),以及一个检查点,该检查点应该与这些
Graph
s(^{Graph
s和运行模型所需的任何资产文件(例如词汇表文件)兼容。对于它包含的每个MetaGraph
,它还存储一组签名。签名定义(命名)输入和输出张量。这意味着,只要给定一个SavedModel,就可以编写解释或执行内部图形的工具(例如
tensorflow/serving
,或者不久将出现在tools/
中的新的saved_model
命令行实用程序)。你只需要提供数据。如果有疑问,我总是会在写一个
SavedModel
的时候出错,而不仅仅是一个检查点。这不仅允许您使用tensorflow/serving(以及其他数量会增加的整洁实用程序),还确保您拥有运行模型所需的所有信息。没有什么比你不能再使用的检查点更让人沮丧的了,因为你修改了你的模型,现在它与检查点文件不兼容,你只想通过它运行一些预测进行比较。相关问题 更多 >
编程相关推荐