TensorFlow中变量管理reuse参数的使用

tensorflow入门:tf.name_scope,tf.variable_scope、变量共享 1. tf.name_scope('scope_name')或tf.name_scope(named_scope)主要与tf.Variable搭配使用;当传入字符串时,用以给变量名添加前缀,类似于目录,如case1所示;当传入已存在的name_scope对象时,则其范围内变量的前缀只与当前传入的对象有关,与更上层的name_scope无关,如case2所示。import tensorflow as... 阅读详情

TensorFlow用于变量管理的函数主要有两个: tf. get_variable()和tf.variable_scope(),
前者用于创建或获取变量的值,后者用于生成上下文管理器,创建命名空间,命名空间可以嵌套。

函数tf.get_variable()既可以创建变量,也可以获取变量。控制创建还是获取的开关来自函数tf.variable.scope()中的参数reuse为“True”还是"False",分两种情况进行说明:

1. 设置reuse=False时,函数get_variable()表示创建变量

如下面的例子:

with tf.variable_scope("foo",reuse=False):
    v=tf.get_variable("v",[1],initializer=tf.constant_initializer(1.0))

在tf.variable_scope()函数中,设置reuse=False时,在其命名空间"foo"中执行函数get_variable()时,表示创建变量"v",若在该命名空间中已经有了变量"v",则在创建时会报错,如下面的例子

import tensorflow as tf

with tf.variable_scope("foo"):
    v=tf.get_variable("v",[1],initializer=tf.constant_initializer(1.0))
    v1=tf.get_variable("v",[1])

---------------------------------------------------------------------------
ValueError                                Traceback (most recent call last)
<ipython-input-1-eaed46cad84f> in <module>()
      3 with tf.variable_scope("foo"):
      4     v=tf.get_variable("v",[1],initializer=tf.constant_initializer(1.0))
----> 5     v1=tf.get_variable("v",[1])
      6 
ValueError: Variable foo/v already exists, disallowed. 
Did you mean to set reuse=True or reuse=tf.AUTO_REUSE in VarScope? 
2. 设置reuse=True时,函数get_variable()表示获取变量

如下面的例子:

import tensorflow as tf

with tf.variable_scope("foo"):
    v=tf.get_variable("v",[1],initializer=tf.constant_initializer(1.0))
    
with tf.variable_scope("foo",reuse=True):
    v1=tf.get_variable("v",[1])

print(v1==v) 
结果为:
True

在tf.variable_scope()函数中,设置reuse=True时,在其命名空间"foo"中执行函数get_variable()时,表示获取变量"v"。若在该命名空间中还没有该变量,则在获取时会报错,如下面的例子

import tensorflow as tf 

with tf.variable_scope("foo",reuse=True):
    v1=tf.get_variable("v",[1])

---------------------------------------------------------------------------
ValueError                                Traceback (most recent call last)
<ipython-input-1-019a05c4b9a4> in <module>()
      2 
      3 with tf.variable_scope("foo",reuse=True):
----> 4     v1=tf.get_variable("v",[1])
      5 

ValueError: Variable foo/v does not exist, or was not created with tf.get_variable(). 
Did you mean to set reuse=tf.AUTO_REUSE in VarScope?

3. 结论

TensorFlow通过tf. get_variable()和tf.variable_scope()两个函数,可以创建多个并列的或嵌套的命名空间,用于存储神经网络中的各层的权重、偏置、学习率、滑动平均衰减率、正则化系数等参数值,神经网络不同层的参数可放置在不同的命名空间中。同时,变量重用检错和读取不存在变量检错两种机制保证了数据存放的安全性。

ADS1231驱动开发:24位高精度ADC嵌入式实现指南 24位Δ-Σ型ADC是高精度传感器信号采集的核心器件,其原理基于过采样与数字滤波实现远超奈奎斯特极限的分辨率。技术价值在于以低成本硬件达成微伏级信号分辨能力,显著提升称重、压力、力等桥式传感器系统的动态范围与温漂稳定性。典型应用场景涵盖电子秤、工业变送器及材料测试设备等对线性度、零点漂移和抗工频干扰(50/60Hz)有严苛要求的领域。本文围绕ADS1231这一面向惠斯通电桥优化的专用ADC,深入解析其串行同步时序驱动、PGA增益配置、参考电压匹配及FreeRTOS多任务安全集成等关键工程实践。 阅读详情

相关推荐

STM32使用内部RC振荡器作为系统时钟开发项目--内晶振启动模板工程

STM32使用内部RC振荡器时,OSC32_IN,OSC32_OUT接法: 1)对于100脚或144脚的产品,OSC_IN应接地,OSC_OUT应悬空。 2)对于少于100脚的产品,有2种接法:    2.1)OSC_IN和OSC_OUT分别通过10K电阻接地。此方法可提高EMC性能。    2.2)分别重映射OSC_IN和OSC_OUT至PD0和PD1,再配置PD0和PD1为推挽输出

overflyme的博客 1万+

TensorFlow的reuse参数、一次性对variable_scope进行reuse的两种简便方法

tensorflow中通过共享 变量作用域(variable_scope)来实现共享变量 ,节约变量存储空间 。 TensorFlow用于变量管理的函数主要有两个: tf. get_variable() 用于创建或获取变量的值 tf.variable_scope() 用于生成上下文管理器,创建命名空间,命名空间可以嵌套。 函数**tf.get_variable()**既可以创建变量,也可以获取...

冷月无声的博客 7161

高通9008模式隐藏技巧:不拆机用ADB命令+Diag协议进入EDL

本文深入解析高通EDL模式(紧急下载模式)的技术原理与实战应用,详细介绍了通过ADB命令和Diag协议无需拆机进入EDL的方法。涵盖硬件/软件触发方案、跨平台工具配置、Firehose协议解析及设备救砖流程,为开发者提供从基础到进阶的完整指南。

weixin_29191761的博客 1120

tensorflow变量共享——VariableScope的reuse模式、tf.get_variable()、tf.Variable() 探索

Reusing模式会被子vs继承 tf.get_variable_scope().reuse_variables() print('"'+tf.get_variable_scope().name+'"', tf.get_variable_scope().reuse) with tf.variable_scope('ss'): # ss是默认vs的子vs,故虽然没有使用reuse=True,wit...

pyxiea 7036

基因家族快速鉴定指南:Windows平台下的HMMER实战解析

本文详细解析了在Windows平台下使用HMMER工具进行基因家族快速鉴定的完整实战流程。通过手把手指导,从软件获取、数据准备到模型构建与序列搜索,帮助生物信息学新手无需Linux环境,即可高效完成bZIP转录因子等家族的鉴定工作,大幅降低分析门槛。

weixin_29255731的博客 453

【现代电路理论】【2】考尔法设计无源单口网络

夏 弥:其实你在冰面上看到鱼浮上来 明年冬天如果你还在那里,那鱼还是会上来换气 那时候你就可以带一把冰镐 把冰面砸开把鱼捞上来熬汤

痛苦的时候装出幸福相,这不是那么难做到的事 2883

Tesnsorflow命名空间与变量管理参数reuse

一.TensorFlow中变量管理reuse参数的使用 1.TensorFlow用于变量管理的函数主要有两个: (1)tf.get_variable:用于创建或获取变量的值 (2)tf.variable_scope():用于生成上下文管理器,创建命名空间,命名空间可以嵌套 2.函数tf.get_variable()既可以创建变量也可以获取变量。控制创建还是获取的开关来自函数...

weixin_30897233的博客 291

基于TMS320F28034的SCI技术简介

28034的SCI没有接入DMA总线,不过它的收发都有4级的FIFO,在一定程度上也能够缓解cpu的压力。 本文的设计思想如下: 接收:通过中断的方式,4级FIFO满后在中断里将RXDATA出栈。不过就存在这种情况,发送端发出的数据未必能填满4级FIFO,然而此时配置的是4级FIFO触发中断,所以这种情况下中断无法及时地触发。怎么办? 本文的做法是在主程序下循环读取FIFO。这样就可以确保在数据高速传输时,通过中断和主程序及时和有效地接收到总线的数据。(不过当总线波特率较低时可能中断是几...

weixin_48388779的博客 1406

Tensorflow:variable变量和变量空间

name_scope: 为了更好地管理变量的命名空间而提出的。比如在 tensorboard 中,因为引入了 name_scope, 我们的 Graph 看起来才井然有序。 variable_scope: 大部分情况下,跟 tf.get_variable() 配合使用,实现变量共享的功能。with tf.variable_scope('scopename', reu...

皮皮blog 5112

一生一芯——用RTL实现最简单的处理器NPC(南大数逻计组RV32ICPU) 代码及思考参考

本文介绍自己前期用Verilog编写的基于RV32I指令集的CPU,个人认为是最简单最易懂的版本(即没做什么优化,即代码很水,没有考虑一些奇怪的情况,只适用简单指令序列,即题目所示最简单的处理器),适合新手练手Verilog以及了解简单CPU的运行过程。本文基于一生一芯,利用Verilator进行仿真,并用gtkwave查看波形,不了解verilator和gtkwave的可以看前几篇文章。

long0_o的博客 3307

【VeriStand】从零构建HIL测试平台:核心概念、硬件选型与实战配置指南

本文详细介绍了如何从零构建HIL测试平台,涵盖核心概念、硬件选型与实战配置指南。重点解析了VeriStand生态系统的优势,包括开箱即用特性、与LabVIEW的黄金搭档配合及Python支持。通过实战案例和硬件选型建议,帮助工程师高效搭建可靠的HIL测试平台,提升测试效率与安全性。

weixin_29250573的博客 329

Tensorflow学习(8)-通过MNIST数字识别问题学习(2)-变量管理

在Tensorflow学习(7)-通过MNIST数字识别问题学习(1)中,将计算神经网络前向传播结果的过程抽象成了一个函数。 即 def inference(input_tensor, avg_class, weights1, biases1, weights2, biases2): 在定义中可看到,这个函数的参数包括了神经网络中的所有参数。然而,当网络结构更复杂、参数更多时。就需要一个...

dreamer777777的博客 351

把 Client 当成 ABAP 系统的多租户底座:从 sy-mandt 到 CDS_CLIENT 的隔离机制与工程实践

本文深入解析SAP ABAP系统中Client概念的本质与应用。Client不仅是数据表的MANDT字段,更是会话级别的隔离边界,贯穿用户登录、授权和数据访问控制全过程。文章从ABAP SQL的隐式Client处理机制出发,详细介绍了USING CLIENT、USING ALL CLIENTS等安全跨客户端访问方式,并对比了传统CLIENT SPECIFIED的风险。同时阐述了ABAP CDS中@ClientHandling注解的类型与算法选择,包括#AUTOMATED自动拼接和#SESSION_VARIA

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 182

【Tensorflow】变量管理:tf.get_variable与tf.variable_scope

内容整理自:Tensorflow_实战Google深度学习框架(第二版) 通过tf.variable_scope生成一个上下文管理器。 with tf.variable_scope("wy"): w = tf.get_variable("v",[1],initializer =tf.constant_initializer(1.0)) #以上wy空间中已有w变量,以下代码再定义w变量会出...

1003 264

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

tf.variable_scope 参数

最近在看TensorFlow的变量管理,发现很多代码中tf.variable_scope()参数的数量及意义还不太清楚,特此记录: def __init__(self, name_or_scope, default_name=None, values=None, initi...

kyle1314608的博客 310

lwip-2.0.3

lwip是瑞典计算机科学院(SICS)的Adam Dunkels 开发的一个小型开源的TCP/IP协议栈。实现的重点是在保持TCP协议主要功能的基础上减少对RAM 的占用。

TensorFlow的变量管理:变量作用域机制

在深度学习中,你可能需要用到大量的变量集,而且这些变量集可能在多处都要用到。例如,训练模型时,训练参数如权重(weights)、偏置(biases)等已经定下来,要拿到验证集去验证,我们自然希望这些参数是同一组。以往写简单的程序,可能使用全局限量就可以了,但在深度学习中,这显然是不行的,一方面不便管理,另外这样一来代码的封装性受到极大影响。因此,TensorFlow提供了一种变量管理方法...

diandihun9139的博客 217

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

Tensorflow详解(四)——变量空间

管理变量的变量空间 方法一:tf.variable_scope() reuse=False——get_variable()函数将创建新的变量,此时的name属性不可以与已经存在的变量相同 =True——get_variable()函数直接获取name属性相同的已经存在的变量 无论get_var...

清风拂面 976

tensorflow代码梳理3——变量管理(重要!)

#变量管理 import tensorflow as tf #定义一个变量,此时为张量 v=tf.get_variable('v',shape=[1],initializer=tf.constant_initializer(1.0)) print(v) #该v为在默认空间创建的变量 &lt;tf.Variable 'v:0' shape=(1,) dtype=float32_ref&gt; ...

Nemo的博客 417

TensorFlow - 管理变量的变量空间

一get_variable() 函数 get_variable() 函数用于创建或获取变量。 在实现创建变量的功能时,其使用方法和 Variable () 函数基本相同。 import tensorflow as tf # 通过一个常量来初始化一个变量 # a = tf.Variable(tf.constant(1.0,shape=[1],name='a...

森宝的博客 428

Tensorflow中的变量管理

TensorFlow中通过变量名称获取变量的机制主要是通过tf.get_variable和tf.variable_scope函数来实现 tf.Variable函数是用来创建一个变量的,而tf.get_variable函数可以创建或者获取变量。当tf.get_variable函数用于创建变量时,他和tf.Variable的功能是等价的。 #下面两个定义是等价的 v = tf.get_variable("v", shape=[1], initializer=tf.constant_initializer(

砍柴人的博客 235

tf.get_variable_scope().reuse_variables()

tf.get_variable_scope().reuse_variables()

qq_3475669699 352

30天从入门到精通TensorFlow1.x 第三天,tf.variable_scope()共享或重用变量

假设现在有一个函数f(x)需要多次调用,其中包含一个变量v。我们希望在第一次调用时定义变量v,在后续调用时共享这个变量v。为了避免重复定义变量,我们可以使用来控制变量是否可重用在比如结合可以看到:当我们开起了reuse=True功能:说明开启了重复使用变量的功能。注意:这里说的是变量当我们定义一个新的变量时候,如果,在同一个下已经有了同名的变量,就会抛出ValueError异常。(这里肯定有人说 可以使用函数啊,这个等会说)。但是在某种情况下需要共享变量,也就是多个操作共用一个变量。这是就可以设置为。

争渡的博客 1万+

tensorflow学习(5):变量管理

我们在写神经网络的时候,往往需要传递很多参数。而且当网络结构更复杂,参数更多的时候,在一个函数中写若干要传递的参数往往不现实,如 def inference(w1,w2,w3,w4,w5.....) 因此,我们需要有一个更好的方式来传递和管理神经网络中的参数。tensorflow提供了通过变量名称来创建或获取一个变量的机制。通过这个机制,在不同的函数中可以直接通过变量的名字来使用变量,而不需要将...

shanlepu6038的博客 818

with tf.variable_scope():或with tf.name_scope():

keyword:with 用于上下文管理, 共享变量控制参数reuse取true,则作用域内可重用,否则不可重用,智能一点的话取tf.AUTO_REUSE:如果创建过就返回,没有创建过就创建一个新的变量返回 至于tf.name_scope和tf.variable_scope详情见下面URL: https://www.imooc.com/article/22966 https://www.cnblo...

weixin_45295666的博客 2909
上一篇: TenorFlow 在创建占位符时用到None
下一篇: Ubuntu16.04下Remarkable的安装
博士熊 - 北邮
博客等级 码龄18年 381粉丝 122原创
评论 8
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

博士熊 - 北邮

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值