如何从恢复的图形中获得可训练变量的值?张量流中的检查点

时间:2018-03-27 06:43:24

标签: tensorflow

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

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

1 个答案:

答案 0 :(得分: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]