tensorflow提供了通过变量名称来创建或者获取一个变量的机制。通过这个机制,在不同的函数中可以直接通过变量的名字来使用变量,而不需要将变量通过参数的形式到处传递。
这种机制即通过tf.variable_scope 及 tf.get_variable实现。
import tensorflow as tf
with tf.variable_scope("my_scope_name", reuse=None):
v = tf.get_variable("varibale_name", shape, initializer)
在此上下文管理器中定义的变量,其属性name:
v.name == "my_scope_name/varibale_name"
(1)reuse参数默认为None,此时get_variable()会创建一个新变量;
(2)reuse参数设置为True时,get_variable()会获取一个已经定义的变量。获取方式即:设置get_variable的第一个参数为目标变量的name属性,同时也要注意获取时,get_variable所在的my_scope_name。
举例说明:
例(1)
with tf.variable_scope("layer1"):
w1 = tf.get_variable("weigth1", [</