tf.name_scope('scope1' ) 可以产生新的变量,这个块里定义的变量假若和以前的变量同名的话,在这之后的范围内,均是该变量有效。
import tensorflow as tf
def nameScopeTest() :
v1 =tf.Variable( 1 , name = 'v1' )
v2 =tf.Variable( 20 , name = 'v2' )
with tf.name_scope('block1') :
v1 = tf.Variable( 100 , name = 'v1' )
v2 =tf.Variable( 2000 , name = 'v2' )
with tf.name_scope('block2') :
v1 = tf.Variable( 1000 , name = 'v1' )
v2 =tf.Variable( 20000 , name = 'v2' )
v3 = tf.add( v1 , v2 )
with tf.Session() as sess :
sess.run( tf.global_variables_initializer() )
print( sess.run(v3) )
for var in tf.global_variables() :
print( var.name )
nameScopeTest()
'''
21000
v1:0
v2:0
block1/v1:0
block1/v2:0
block2/v1:0
block2/v2:0
'''