如何在张量流中重用具有每次创建的不同变量的子图创建?

时间:2019-04-09 20:53:55

标签: tensorflow

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来使变量命名唯一并创建新变量(如果已经存在具有相同名称的变量

0 个答案:

没有答案