gpt4 book ai didi

python - TensorFlow 从文件中保存/加载图形

转载 作者:IT老高 更新时间:2023-10-28 21:10:41 25 4
gpt4 key购买 nike

根据我目前收集到的信息,有几种不同的方法可以将 TensorFlow 图转储到文件中,然后将其加载到另一个程序中,但我无法找到关于它们如何工作的清晰示例/信息.我已经知道的是:

  1. 使用 tf.train.Saver() 将模型的变量保存到检查点文件 (.ckpt) 中并稍后恢复它们 (source)
  2. 将模型保存到 .pb 文件中,然后使用 tf.train.write_graph()tf.import_graph_def() ( source )
  3. 从 .pb 文件加载模型,重新训练,然后使用 Bazel (source) 将其转储到新的 .pb 文件中
  4. 卡住图表以将图表和权重一起保存 (source)
  5. 使用 as_graph_def() 保存模型,对于权重/变量,将它们映射为常量 (source)

但是,关于这些不同的方法,我无法解决几个问题:

  1. 关于检查点文件,它们是否只保存模型的训练权重?是否可以将检查点文件加载到新程序中并用于运行模型,或者它们是否只是作为在特定时间/阶段保存模型中权重的一种方式?
  2. 关于tf.train.write_graph(),权重/变量是否也保存了?
  3. 关于 Bazel,是否只能从 .pb 文件中保存/加载以进行再培训?是否有一个简单的 Bazel 命令可以将图形转储到 .pb 中?
  4. 关于卡住,是否可以使用 tf.import_graph_def() 加载卡住的图形?
  5. 用于 TensorFlow 的 Android 演示从 .pb 文件加载到 Google 的 Inception 模型中。如果我想替换我自己的 .pb 文件,我该怎么做呢?我需要更改任何 native 代码/方法吗?
  6. 总的来说,所有这些方法之间究竟有什么区别?或者更广泛地说,as_graph_def()/.ckpt/.pb 之间有什么区别?

简而言之,我正在寻找一种将图形(如各种操作等)及其权重/变量保存到文件中的方法,然后可用于加载图形和权重进入另一个程序,以供使用(不一定要继续/再培训)。

关于这个主题的文档不是很简单,所以任何答案/信息将不胜感激。

最佳答案

有很多方法可以解决在 TensorFlow 中保存模型的问题,这可能会让人有点困惑。依次回答每个子问题:

  1. 检查点文件(例如通过在 saver.save() 对象上调用 tf.train.Saver 生成)仅包含权重以及在同一程序中定义的任何其他变量。要在另一个程序中使用它们,您必须重新创建相关的图结构(例如,通过运行代码重新构建它,或调用 tf.import_graph_def()),这会告诉 TensorFlow 如何处理这些权重。请注意,调用 saver.save() 也会生成一个包含 MetaGraphDef 的文件。 ,其中包含一个图表以及如何将检查点的权重与该图表相关联的详细信息。见 the tutorial了解更多详情。

  2. tf.train.write_graph()只写图结构;不是重量。

  3. Bazel 与读取或写入 TensorFlow 图无关。 (也许我误解了你的问题:请随时在评论中澄清。)

  4. 可以使用 tf.import_graph_def() 加载卡住图。 .在这种情况下,权重(通常)嵌入图表中,因此您无需加载单独的检查点。

  5. 主要的变化是更新输入模型的张量的名称,以及从模型中获取的张量的名称。在 TensorFlow Android 演示中,这将对应于传递给 TensorFlowClassifier.initializeTensorFlow()inputNameoutputName 字符串。 .

  6. GraphDef 是程序结构,通常不会在训练过程中改变。检查点是训练过程状态的快照,通常在训练过程的每一步都会发生变化。因此,TensorFlow 对这些类型的数据使用不同的存储格式,而底层 API 提供了不同的方式来保存和加载它们。更高级别的库,例如 MetaGraphDef图书馆,Keras , 和 skflow以这些机制为基础,提供更方便的方式来保存和恢复整个模型。

关于python - TensorFlow 从文件中保存/加载图形,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38947658/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com