Tensorflow变量作用域解析

tensorflow默认的集合(collection)中

tf.GraphKeys.VARIABLES                   管理所有变量
tf.GraphKeys.TRAINABLE_VARIABLES         管理可学习(训练)的变量
tf.get_variable()和tf.Variable()默认trainable=True ,创建的变量都会加入到以上两个集合中

            trainable=False时,创建的变量不会加入到tf.GraphKeys.TRAINABLE_VARIABLES 集合中

tf.trainable_variables函数

tf.trainable_variables(scope=None)

 

功能:返回使用 trainable=True 创建的所有变量.

传递 trainable=True 时,Variable() 构造函数会自动将新变量添加到图形集合 GraphKeys.TRAINABLE_VARIABLES 中.这个便利函数返回该集合的内容.

函数参数:

  • scope:(可选)一个字符串.如果提供,对结果列表进行过滤,以便只包含 name 属性与使用 re.match 匹配 scope 的项.如果提供了作用域,则不会返回没有 name 属性的项目.这种 re.match 选择意味着 scope 没有特殊的令牌通过前缀进行过滤.

函数返回值:

tf.trainable_variables函数返回 Variable 对象的列表.

tf.global_variables()与tf.all_variables()等价

tf.global_variables(scope=None)

功能:返回所有变量. 

案例——作用域


import tensorflow as tf
tf.constant(1,dtype=tf.float32,shape=[3,3,3,3],name='d')
with tf.variable_scope('name_1'):
    tf.get_variable('a',shape=[3,3,3,3],dtype=tf.float32,initializer=tf.truncated_normal_initializer(stddev=0.01),trainable=True)
    tf.get_variable('b',shape=[3,3,3,3],dtype=tf.float32,initializer=tf.truncated_normal_initializer(stddev=0.01),trainable=False)
    tf.get_variable('c',shape=[3,3,3,3],dtype=tf.float32,initializer=tf.truncated_normal_initializer(stddev=0.01))

tf.Variable(initial_value=tf.truncated_normal(shape=[3,3,3,3],stddev=0.01))

#获取可训练变量
variable=tf.trainable_variables()
#获取变量空间'name_1'中的变量
variable_global=tf.global_variables(scope='name_1')
#获取所有变量
variable_all=tf.all_variables()
print(variable)
print(len(variable))
print(variable_global)
print(variable_all)

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值