我想从训练有素的模型中获取变量的值。我有一个检查点文件,我可以恢复图形和检查点,并对它们进行推理就好了。
然而,我发现在恢复检查点和图表后,弄清楚如何获得可训练的变量值(如重量和偏差值,而不是名称......我想要VALUES)是非常困难的。我已经阅读了Tensorflow文档,并且在范围内有很多关于“with variable_scope”,“reuse = True”和“tf.get_variable(”myvar“)的建议等等,但我得到错误说明变量已存在或尚未初始化.tf.graphkeys只返回名称...而不是值。
答案 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]