import tensorflow as tf
#用于简化函数参数,直接通过命名空间+变量名获取已有变量
v2=tf.get_variable("v",[1]) #不报错,相当于variable_scope为“”
#v3=tf.get_variable("v",[1]) 报错已存在
#with tf.variable_scope(reuse=True):
# v4=tf.get_variable("v",[1])
print(v2)
v5=tf.get_variable("cur/v",[1],initializer=tf.truncated_normal_initializer()) #这种方式创建的变量等效于命名空间中创建,估计实质是在变量前加上了命名空间字符串
with tf.variable_scope("cur",reuse=True):
v6=tf.get_variable("v",[1],initializer=tf.truncated_normal_initializer()) #访问的方式是通过除去“命名空间/”后的变量名访问
print(v5==v6)
with tf.variable_scope("root"):
v=tf.get_variable("v",[1])
print(v)
with tf.variable_scope("root",reuse=True):
v1=tf.get_variable("v",[1])
print(v1)
print(v1==v)
variable_scope函数的功能可以简单理解:
1.如果reuse为false,在with作用域内get_variable函数创建的变量名称前面加命名空间的名称;
2.如果reuse为true,在with作用域里面get_variable函数获得已有变量。