假设我们想要获取一个 tensorflow 变量的值,我们可以在 session 下运行它。
假设 a = tf.Variable(...)
然后可以使用sess.run(a)获取它的值
但是如果有两个同名但不同名称范围的变量,我该如何获取各个变量的值?
with tf.name_scope("x"):
a = tf.Variable(...)
with tf.name_scope("y"):
a = tf.Variable(...)
那么如何分别获取x下的a和y下的a的值呢? 如果我执行 sess.run(a),我将在 name_scope y(最近的一个)下获得值(value)
请您参考如下方法:
您可以检查变量的名称并通过范围/名称获取它们:
with tf.variable_scope("x"):
a = tf.get_variable('a', initializer=1)
with tf.variable_scope("y"):
a = tf.get_variable('a', initializer=2)
with tf.Session() as s:
s.run(tf.global_variables_initializer())
[print(var.op.name) for var in tf.global_variables()]
res = s.run(['x/a:0', 'y/a:0'])
print(res)
返回:
x/a
y/a
[1, 2]
