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
'''
本文通过实例演示了TensorFlow中name_scope如何创建变量作用域,避免变量名冲突,并展示了不同块内同名变量的生命周期与可见性。在block1和block2中分别定义了同名变量v1和v2,其作用范围仅限于各自的作用域内。

被折叠的 条评论
为什么被折叠?



