【问题标题】:How do i get the VALUES of trainable variables from a restored graph & checkpoint in tensorflow我如何从张量流中恢复的图形和检查点中获取可训练变量的值
【发布时间】:2018-09-05 10:55:36
【问题描述】:

我想从经过训练的模型中获取变量的值。我有一个检查点文件,我可以恢复图形和检查点并对其进行推理。

但是,我发现在恢复检查点和图形后,很难弄清楚如何获得可训练的变量值(如权重和偏差值,而不是名称......我想要 VALUES)。我已经阅读了 Tensorflow 文档,并且有很多关于范围内的“with variable_scope”、“reuse = True”和“tf.get_variable("myvar") 的建议......等等,但是我收到错误说明变量已存在或尚未初始化。tf.graphkeys 仅返回名称...而不是值。

【问题讨论】:

  • 你能展示一下你用来加载图形和恢复检查点的方式吗?我特别感兴趣的是你有一个元图还是一个普通图。
  • 我使用导入元图,然后在加载图后立即恢复最新的检查点。

标签: tensorflow


【解决方案1】:

在加载元图时,TensorFlow 也会恢复集合。有几个与变量相关的集合,例如您可以通过这种方式获取所有可训练变量的集合:

# graph is a TensorFlow Graph
variables = graph.get_collection(tf.GraphKeys.TRAINABLE_VARIABLES)

您可以Session.run返回列表中的每个变量来获取其值。 下面的代码假定变量已经初始化(从检查点恢复):

# sess is a TensorFlow Session
values = [sess.run(v) for v in variables]

【讨论】:

  • 我是如此接近 - 但到目前为止:-)。这有效 - 谢谢!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-03-04
  • 1970-01-01
  • 2021-12-04
  • 2021-10-22
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多