tensorflow如何使在高级api中创建的变量名称唯一?
例如:
tf.reset_default_graph()
v1=tf.layers.dense(tf.constant([[1.],[2.]]),1)
v2=tf.layers.dense(tf.constant([[1.],[2.]]),1)
[n for n in tf.trainable_variables()]
output:
[<tf.Variable 'dense/kernel:0' shape=(1, 1) dtype=float32_ref>,
<tf.Variable 'dense/bias:0' shape=(1,) dtype=float32_ref>,
<tf.Variable 'dense_1/kernel:0' shape=(1, 1) dtype=float32_ref>,
<tf.Variable 'dense_1/bias:0' shape=(1,) dtype=float32_ref>]
Tensorflow正在为变量作用域名称添加_1,以使变量名称唯一。我如何在
中达到相同的效果tf.reset_default_graph()
def add_var():
with tf.variable_scope('var1',reuse=None) as v1:
return tf.get_variable(name='w1',shape=())
tf.reset_default_graph()
add_var()
add_var()
我得到ValueError: Variable var1/w1 already exists, disallowed
。我知道我可以通过将重用标志设置为w1
来重用True
,但是我希望能够重用这个子图,其中tensorflow加_1来使变量命名唯一并创建新变量(如果已经存在具有相同名称的变量