检查以下代码:
码
with tf.variable_scope('test'): # <1>
v1 = tf.placeholder(tf.float32, shape=(10,10), name='v1') # <2>
with tf.variable_scope('test'): # <3>
v2 = tf.placeholder(tf.float32, shape=(5, 5), name='v2')
print(v1)
print(v2)
在代码&lt; 3&gt;中,我想将一个名为v2的新占位符添加到变量范围&#39; test&#39;它存在一个名为v1的占位符。但是,打印结果显示如下
Tensor("test/v1:0", shape=(10, 10), dtype=float32)
Tensor("test_1/v2:0", shape=(5, 5), dtype=float32)
我不知道为什么TF会修改变量范围名称&#39; test&#39;进入&#39; test_1&#39;?是BUG吗?
修改
我发现不仅placeholer将被修改其变量范围名称,而且还将修改tensorflow中的所有ops,例如add和matmul。但是按tf.get_variable()
添加变量是正常的。