Tensorflow变量作用域tf.variable_scope()

本文详细介绍了TensorFlow中变量作用域tf.variable_scope的使用,包括如何通过tf.get_variable和tf.Variable创建变量,以及变量作用域的共享机制。通过示例展示了如何在不同作用域下复用和不复用变量,强调了reuse参数的重要性。同时,对比了tf.name_scope对变量和操作的影响,指出其只对tf.Variable()操作有效。

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

开始之前先了解一下Tensorflow的变量,有两种方式创建变量
1)tf.get_variable(name, shape, initializer): 获取已有变量,如果不存在,就创建一个
name: 变量的名字
shape: 变量的形状/维度
initializer: 变量的初始化方式,初始化方式有以下几种

  • tf.constant_initializer:常量初始化函数 tf.random_normal_initializer:正态分布
  • tf.truncated_normal_initializer:截取的正态分布
  • tf.random_uniform_initializer:均匀分布 tf.zeros_initializer:全部是0
  • tf.ones_initializer:全是1
  • tf.uniform_unit_scaling_initializer:满足均匀分布,但不影响输出数量级的随机值

该函数的使用:正常来讲,不同的变量不能有相同的名字,所以为了实现变量共享,tensorflow使用tf.get_variable联合tf.variable_scope以及reuse共同实现。

2)tf.Variable(initializer,name)
initializer: 初始化值
name:可自定义的变量名称
生成一个初始值为initial-value的变量。必须指定初始化值

tf.variable_scope的使用
with tf.variable_scope(“one”):
v1 = tf.get_variable(“v”, [1])
with tf.variable_scope(“one”, reuse = True):
v2 = tf.get_variable(“v”, [1])
assert v1 == v2 #如果没有reuse= true会报错

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值