张量流中的变量命名

时间:2018-02-10 17:36:32

标签: tensorflow

我是tensorflow的新手。也许这是一个愚蠢的问题。

我设置a = tf.Variable([1,2], name = 'a')为例。它使a.name成为a:0

我再次设置相同的内容a = tf.Variable([1,2], name = 'a')。然后,它会a.namea_1:0,后缀为_1

这是我的问题。当我多次设置相同的tf.Variable时,有没有办法保持同名(例如' a:0')?

例如,

a = tf.Variable([1,2], name='a')

... some process to kill the variable a

a = tf.Variable([1,2], name='a')

a.name

然后我得到a:0

谢谢你。

1 个答案:

答案 0 :(得分:1)

我担心这是不可能的,因为每个变量必须在tensorflow中具有唯一的名称。但是,您可以在不同的范围内使用相同的名称。

with tf.variable_scope("scope1"):
    a = tf.Variable([1,2], name='a')
# some code
with tf.variable_scope("scope2"):
    a = tf.Variable([1,2], name='a')

现在,如果你实际上两次使用相同的变量,你可以明确告诉tensorflow重用它。

scope = tf.get_variable_scope()
a = tf.get_variable('a', [1,2])
# some code
scope.reuse_variables() # set reuse to True
b = tf.get_variable('a', [1,2])
assert(a == b) # True