tf.variable_scope主要作用为 生成一个上下文管理器,并指明需求的变量在这个上下文管理器中,就可以直接通过tf.get_variable获取已经生成的变量。
#通过tf.variable_scope函数控制tf.get_variable函数来获取以及创建过的变量 with tf.variable_scope("zyy"):#zyy的命名空间 v=tf.get_variable("v",[1],initializer=tf.constant_initializer(1.0)) #在zyy的命名空间内创建名字为v的变量
在上下文管理器中已经生成一个v的变量,若想通过tf.get_variable函数获取其变量,则可以通过reuse参数的设定为True来获取(可以将reuse按照字面意思理解,重用)
with tf.variable_scope("zyy"): v=tf.get_variable("v",[1]) #通过tf.get_variable函数创建v的变量,则会失败,由于在zyy空间中已经生成了一个v的变量
并且tf.variable_scope只能获取已经创建过的变量。
with tf.variable_scope("zyy",reuse=True): v1=tf.get_variable("v",[1]) print v==v1 #输出为True
如果tf.variable_scope函数使用参数reuse=None或者reuse=False创建上下文管理器,则tf.get_variable函数可以创建新的变量。但不可以创建已经存在的变量即为同名的变量。