TensorFlow共享变量

TensorFlow共享变量

TensorFlow提供了几个类和操作,您可以使用它们根据特定条件创建变量:

  1. tf.get_variable(name, shape=None, dtype=tf.float32, initializer=None, trainable=True, collections=None)
    获取具有这些参数的现有变量或创建一个新变量。获取具有这些参数的现有变量或创建一个新变量。
    一个例子:
with tf.variable_scope("foo"):
   v = get_variable("v", [1])  # v.name == "foo/v:0"
   w = get_variable("w", [1])  # w.name == "foo/w:0"
with tf.variable_scope("foo", reuse=True)
   v1 = get_variable("v")  # The same as v above.
  1. tf.get_variable_scope()
    返回当前变量范围。
  2. tf.variable_scope(name_or_scope, reuse=None, initializer=None)
    变量范围允许创建新变量并共享已创建的变量。
    创建新变量:
with tf.variable_scope("foo"):
   with tf.variable_scope("bar"):
       v = tf.get_variable("v", [1])
       assert v.name == "foo/bar/v:0"

共享变量的基本示例:

with tf.variable_scope("foo"):
   v = tf.get_variable("v", [1])
with tf.variable_scope("foo", reuse=True): #reuse=Ture才能共享
   v1 = tf.get_variable("v", [1])
assert v1 == v

通过捕获范围和设置重用来共享变量:

with tf.variable_scope("foo") as scope:
    v = get_variable("v", [1])
    scope.reuse_variables()
    v1 = tf.get_variable("v", [1])
assert v1 == v

为了防止意外共享变量,我们在非重用范围内获取现有变量时引发异常:

with tf.variable_scope("foo") as scope:
    v = get_variable("v", [1])
    v1 = tf.get_variable("v", [1])
    #  Raises ValueError("... v already exists ...").

类似地,我们在尝试获取在重用模式下不存在的变量时引发异常:

with tf.variable_scope("foo", reuse=True):
    v = get_variable("v", [1])
    #  Raises ValueError("... v does not exists ...").
  1. tf.constant_initializer(value=0.0)
    返回使用单个值生成Tensors的初始值设定项。
  2. tf.random_normal_initializer(mean=0.0, stddev=1.0, seed=None)]
    返回生成具有正态分布的张量的初始值设定项。
  3. tf.truncated_normal_initializer(mean=0.0, stddev=1.0, seed=None)
    返回生成截断的正态分布的初始值设定项。这些值类似于来自random_normal_initializer()的值,除了丢弃并重新绘制超过平均值两个标准偏差的值。
  4. tf.random_uniform_initializer(minval=0.0, maxval=1.0, seed=None)
    返回生成具有均匀分布的张量的初始值设定项。
  5. tf.uniform_unit_scaling_initializer(factor=1.0, seed=None)
    返回生成张量而不缩放方差的初始值设定项。
  6. tf.zeros_initializer(shape, dtype=tf.float32)
    返回初始值为0设定项。

更详细请看原文链接: [http://www.tensorfly.cn/tfdoc/api_docs/python/state_ops.html#random_uniform_initializer]

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
【优质项目推荐】 1、项目代码均经过严格本地测试,运行OK,确保功能稳定后才上传平台。可放心下载并立即投入使用,若遇到任何使用问题,随时欢迎私信反馈与沟通,博主会第一时间回复。 2、项目适用于计算机相关专业(如计科、信息安全、数据科学、人工智能、通信、物联网、自动化、电子信息等)的在校学生、专业教师,或企业员工,小白入门等都适用。 3、该项目不仅具有很高的学习借鉴价值,对于初学者来说,也是入门进阶的绝佳选择;当然也可以直接用于 毕设、课设、期末大作业或项目初期立项演示等。 3、开放创新:如果您有一定基础,且热爱探索钻研,可以在此代码基础上二次开发,进行修改、扩展,创造出属于自己的独特应用。 欢迎下载使用优质资源!欢迎借鉴使用,并欢迎学习交流,共同探索编程的无穷魅力! 基于业务逻辑生成特征变量python实现源码+数据集+超详细注释.zip基于业务逻辑生成特征变量python实现源码+数据集+超详细注释.zip基于业务逻辑生成特征变量python实现源码+数据集+超详细注释.zip基于业务逻辑生成特征变量python实现源码+数据集+超详细注释.zip基于业务逻辑生成特征变量python实现源码+数据集+超详细注释.zip基于业务逻辑生成特征变量python实现源码+数据集+超详细注释.zip基于业务逻辑生成特征变量python实现源码+数据集+超详细注释.zip 基于业务逻辑生成特征变量python实现源码+数据集+超详细注释.zip 基于业务逻辑生成特征变量python实现源码+数据集+超详细注释.zip

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值