【发布时间】:2018-03-12 20:10:15
【问题描述】:
我有几个关于SavedModel API 的问题,我发现它的documentation 留下了很多无法解释的细节。
前三个问题是关于将什么传递给tf.saved_model.builder.SavedModelBuilder 的add_meta_graph_and_variables() 方法的参数,而第四个问题是关于为什么要使用SavedModel API 而不是tf.train.Saver。
signature_def_map参数的格式是什么?保存模型时一般需要设置这个参数吗?同样,
assets_collection参数的格式是什么?为什么要保存带有元图的标签列表,而不是只给它一个名称(即只附加一个唯一的标签)?为什么要向给定的元图添加多个标签?如果我尝试通过某个标签从
pb加载metagrpah,但pb中的多个metagrpah 与该标签匹配怎么办?文档认为建议使用
SavedModel将整个模型(而不是仅变量)保存在独立文件中。但tf.train.Saver除了将变量保存在.meta文件中之外,还会保存图形。那么使用SavedModel有什么好处呢?文档说
当您要保存和加载变量时,图表和图表的 元数据——基本上,当你想保存或恢复你的模型时——我们 推荐使用 SavedModel。 SavedModel 是一种语言中立的, 可恢复的密封序列化格式。 SavedModel 启用 用于生产、消费和转型的更高层次的系统和工具 TensorFlow 模型。
但是这个解释很抽象,并不能真正帮助我理解SavedModel 的优点是什么。使用SavedModel(而不是tf.train.Saver)会更好的具体例子是什么?
请注意,我的问题与this question 不重复。我不是在问如何保存模型,而是在问关于 SavedModel 属性的非常具体的问题,这只是 TensorFlow 提供的用于保存和加载模型的多种机制之一。链接问题中的答案均未涉及SavedModel API(这又与tf.train.Saver 不同)。
【问题讨论】:
-
@WendingPeng 这不是链接问题的副本,请参阅我在问题中添加的最后一段。请仔细阅读,不要轻易标记为重复。
-
如果您在使用 API 时遇到了问题,请将其包含在内。要求我们完整记录 API 可能对 SO 来说过于宽泛。
-
@E_net4 询问
signature_def_map参数的格式是一个非常具体的问题,我的其他三个问题也是如此。在我的问题中,您在哪里读到我要求任何人“完整记录”API? -
再次考虑缩小范围。你有 4 个枚举点,其中至少有一个问题。当然,我们将此解释为“请比 TensorFlow 开发人员更好地记录此 API”。另一方面,拥有minimal reproducible example 让这更容易回答。
-
@E_net4 即使是对这四点之一的回答也会有所帮助。前三个问题都涉及相同的方法(我编辑了我的原始问题以使其更清晰),所以我希望你同意它们在主题上属于一起。再次以第一个问题为例:我在问
signature_def_map参数的输入是什么样的,因为我不明白格式。这不是一个明确的问题吗?对于任何知道这个答案的人来说,一个简单的例子,“这就是这个参数的输入看起来像这样”将是一个简单的答案。
标签: python tensorflow