tensorflow变量作用域(variable scope)

本文介绍了在TensorFlow中如何使用variable scope实现变量共享,通过举例说明了tf.variable_scope()和tf.get_variable()的工作机制,解释了如何在不同层之间重用变量,并详细阐述了variable scope的理解,包括其初始化器、算子影响和名称作用域的关联。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

举例说明

当我们创建两层卷积的过滤器时,每输入一次图片都要创建一次过滤器变量()但我们更希望所有图片都共享同一过滤器变量。通常的做法是:1.创建这些变量的全局变量,但是这样会打破封装性。2.将模型封装成类。
tensorflow提供了variable scope这种方式来共享变量,其主要涉及到两个函数

tf.get_variable(<name>, <shape>, <initializer>)   //创建或返回给定名称的变量
tf.variable_scope(<scope_name>)      //管理传给get_variable()的变量名称的作用域

例如下边的语句创建了一个的变量

wgight = tf.get_variable('weight',kernel_shape,
        initializer=tf.random_normal_initializer())

但是我们需要两个卷积层,这时可以通过tf.variable_scope()指定作用域进行区分

with tf.variable_scope('conv1')
...
with tf.variable_scope('conv2')

最后在image_filters这个作用域重复使用第一张图片输入时创建的变量,调用函数reuse_variables(),代码如下:

with tf.variable_scope("image_filters") as scope:
    ...
    scope.reuse_variables()
</
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值