小白都懂的tf.Variable、tf.get_variable、tf.variable_scope

彻底弄懂tf.Variable、tf.get_variable、tf.variable_scope以及tf.name_scope异同 我之前有转载过一篇讲tf.variable_scope和tf.name_scope的文章,今天一看,觉得还是没介绍太清楚,没讲到点子上,毕竟英文什么的看起来还是挺麻烦的。故而,今天来细细梳理下tf.Variable、tf.get_variable、tf.variable_scope以及tf.name_scope四者之间的区别与联系。 阅读详情

tf.Variable与tf.get_variable
tensorflow通过变量名称来创建或者获取一个变量的机制,通过这个机制,在不同的函数中可以直接通过变量的名字来使用变量,而不需要将变量通过参数的形式到处传递。 TensorFlow中通过变量名获取变量的机制主要是通过tf.get_variable和tf.variable_scope实现的。
当然,变量也可以通过tf.Varivale来创建。当tf.get_variable用于变量创建时,和tf.Variable的功能基本等价。

#以下两个定义是等价的
v = tf.get_variable('v', shape=[1], initializer=tf.constant_initializer(1.0))
v = tf.Variable(tf.constant(1.0, shape=[1], name='v')

tf.get_varialbe和tf.Variable最大的区别在于:tf.Variable的变量名是一个可选项,通过name=’v’的形式给出。但是tf.get_variable必须指定变量名

tf.get_variable与tf.variable_scope

使用get_variable()函数来创建共享变量,如果它还不存在,或者如果已经存在,则复用它。 所需的行为(创建或复用)由当前variable_scope()的属性控制。复用大体意思就是 之前如果你创建的变量和后面重复了 那么你就得用前面的变量来实现权值共享

例如:
以下代码将创建一个名为relu/threshold的变量(作为标量,因为shape = (),并使用 0.0 作为初始值):

with tf.variable_scope("relu"):
    threshold = tf.get_variable("threshold", shape=(),
                                initializer=tf.constant_initializer(0.0))

注意,如果变量已经通过较早的get_variable()调用创建,则此代码将引发异常。 这种行为可以防止错误地复用变量。如果要复用变量,则需要通过将变量scope的复用属性设置为True来明确说明(在这种情况下,您不必指定形状或初始值):

with tf.variable_scope("relu", reuse=True):
    threshold = tf.get_variable("threshold")

该代码将获取现有的relu/threshold变量,如果不存在会引发异常(如果没有使用get_variable()创建)。 或者,您可以通过调用scope的reuse_variables()方法将复用属性设置为true:

with tf.variable_scope("relu") as scope:
    scope.reuse_variables()
    threshold = tf.get_variable("threshold")

注意:一旦重新使用设置为True,它将不能在块内设置为False。 而且,如果在其中定义其他变量作用域,它们将自动继承reuse = True。 最后,只有通过get_variable()创建的变量才可以这样复用.

tensorflow学习之路(2-2):tf.variable_scope(),tf.name_scope(),tf.get_variable()的认识(补充) tensorflow tf.get_variable() tf.variable_scope() tf.name_scope() 阅读详情

相关推荐

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...

yeqiustu的博客 7527

详解tf.variable_scope函数

在学习Tensorflow进阶实例这本书时候出现了tf.variable_scope,当时很蒙圈,现在就来总结一下: tf.variable_scope函数 variable_scope类 用于定义创建变量(层)的操作的上下文管理器。 此上下文管理器验证(可选)values是否来自同一图形,确保图形是默认的图形,并推送名称范围和变量范围。 如果name_or_scope不是None,则使用as i...

霜月红 2万+

Simulink小白必看:用Simscape轻松搭建二阶倒立摆模型(附完整参数配置)

本文为Simulink初学者提供了使用Simscape Multibody模块库,从零开始搭建二阶倒立摆非线性物理模型的完整实战教程。文章详细讲解了如何通过物理组件(如刚体、关节)直观建模,替代复杂的数学推导,并涵盖参数配置、仿真调试及模型线性化方法,帮助读者快速掌握这一高效的物理建模路径。

grpc6streamer的博客 1045

tf.variable_scope

TensorFlow中的变量一般就是模型的参数。当模型复杂的时候共享变量会无比复杂。官网给了一个case,当创建两层卷积的过滤器时,每输入一次图片就会创建一次过滤器对应的变量,但是我们希望所有图片都共享同一过滤器变量,一共有4个变量:conv1_weights,conv1_biases,conv2_weights, and conv2_biases。通常的做法是将这些变量设置为全局变量。但是存在的问题是打破封装性,这些变量必须文档化被其他代码文件引用,一旦代码变化,调用方也可能需要变化。还有一种保证封装性的

Fwuyi的博客 4551

Windows 10 下 DockerToolbox 安装全攻略:从下载到配置阿里云镜像加速

本文详细介绍了在Windows 10系统上安装和配置DockerToolbox的完整流程。从下载安装包、执行初步安装,到关键步骤——修改虚拟机存储路径以及配置阿里云镜像加速器,旨在帮助开发者,尤其是初次接触Docker的新手,快速搭建高效的本地容器开发环境,并解决国内镜像下载缓慢的痛点。

moon9的博客 476

学Simulink--基于电力电子变换器的建模与仿真实例:LLC谐振变换器在高频AC-DC转换中的建模

本文详细介绍了使用Simulink+Simscape Electrical对LLC谐振变换器进行建模与仿真的完整流程。LLC谐振变换器因其高效率、低噪声的特点,广泛应用于高频AC-DC转换场景。文章从背景原理出发,逐步讲解系统结构设计、建模步骤(包括AC源、整流器、LLC变换器、负载等模块搭建)、控制策略实现(固定频率/变频/PID控制)和仿真设置。通过分析仿真结果的关键指标,提出参数整定和算法优化建议。该建模方法为电力电子设计人员提供了实用的仿真工具,有助于优化LLC变换器性能,缩短开发周期。

xiaoheshang_123的博客 298

tf.Variable_scope() - tf.name_scope()

tf.Variable_scope() - tf.name_scope() tf.Variable_scope 可以让变量有相同的命名,包括 tf.get_variable 得到的变量,以及 tf.Variable 的变量。 tf.name_scope 可以让变量有相同的命名,只是限于 tf.Variable 的变量。命名空间里的变量全部是全局变量。 1. tf.Variable_scope 可以让变量有相同的命名,包括 tf.get_variable 得到的变量,以及 tf.Variable 的变量。 #

程永强 1343

MIKE水动力笔记2_水动力基础理论知识

本文所讲内容是水动力基础理论知识,所参考的主要书籍是《水动力学和水质》(第二版,季振刚著,海洋出版社)。

晏长街的博客 1万+

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

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

争渡的博客 1万+

组建高效AI开发团队:角色、技能与协作

在当今科技飞速发展的时代,人工智能(AI)已经成为各个领域的核心驱动力。组建高效的AI开发团队对于企业和科研机构来说至关重要,它能够推动创新、提高竞争力、实现业务目标。本文的目的在于为那些希望组建或优化AI开发团队的管理者、技术负责人以及相关从业者提供全面的指导。范围涵盖了团队角色的定义、所需技能的分析、团队协作的策略,以及实际项目中的应用和相关资源的推荐。本文将首先介绍AI开发团队的核心概念与联系,包括团队角色、技能和协作之间的关系。接着阐述核心算法原理和具体操作步骤,结合数学模型和公式进行详细讲解。

2502_91592937的博客 995

CKA-CN考试之路----2

部分知道就可以了,考试不用输入,后面不再复述.这里我们需要将两端内容凭借成1个yaml。执行题目中给的的命令进行测试。

Q先生 242

Tensorflow函数——tf.variable_scope()

tf.variable_scope(name_or_scope,default_name=None,values=None,initializer=None,regularizer=None,caching_device=None,partitioner=None,custom_getter=None,reuse=None,dtype=None)返回一个用于定义创建variable(层)的op的上下

eml_jw的博客 1万+

SQL基础:HQL之常用的行列转换应用总结

行列转换是数据开发者的基本技能,也是面试重点,在数据开发中处处可见,本文对常见的几种情况进行了总结,包括了多行转多列,多行转单列,多列转多行,单列转多行的几种情况,并给出了解决思路和方法,读者可根据本文给出的思路灵活应对业务中遇到的问题。

石榴姐yyds 1800

tensorflow变量作用域tf.variable_scope介绍

tensorflow变量作用域tf.variable scope介绍举例说明tf.get_variable()工作机制tf.variable_scope理解 举例说明 TensorFlow中的变量一般就是模型的参数。当模型复杂的时候共享变量会无比复杂。 官网给了一个case,当创建两层卷积的过滤器时,每输入一次图片就会创建一次过滤器对应的变量,但是我们希望所有图片都共享同一过滤器变量,一共有4个变...

帅帅Go 1万+

SMMU软件指南SMMU编程之流表(Stream Table)

SMMU使用一组内存中的数据结构来定位翻译数据,详见“转换过程概述”(Translation process overview)。SMMU_(*_)STRTAB_BASE 存储初始结构(流表,Stream Table)的基地址。流表项(Stream Table Entry, STE)包含二级(Stage 2)转换表的基址指针,同时也定位一级(Stage 1)配置结构,这些配置结构包含转换表的基址指针。 传入事务的 StreamID,由 SEC_SID 进行限定,决定了用于查找的流表,并定位相应的STE。

AI-安全-功耗 1189

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

tf.get_variable()和tf.get_variable_scope()非常详细解释!!!!

  当编写程序较长时,文件中定义的函数的输入参数可能会很多,例如神经网络的参数: def inference(input_tensor, avg_class, weights1, biases1, weights2, biases2):   当神经网络的结构更加复杂、参数更多时,就需要一个更好的方式来传递和管理神经网络中的参数。 TensorFlow就提供了通过变量名来创建或获取变量的机制,可以使用tf.get_variable和tf.variable_scope函数来实现。   TensorFlow中

wangxuecheng666的博客 3625

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

Tensorflow中tf.get_variable和tf.variable_scope的使用

在tensorflow中提供了tf.get_variable函数来创建或者获取变量。 当tf.get_variable用于创建变量时,则与tf.Variable的功能基本相同。#定义的基本等价 v = tf.get_variable("v",shape=[1],initializer.constant_initializer(1.0)) v = tf.Variable(tf.constant(1

昆仑-郑教主的专栏 2万+

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版

Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。

tf.get_variable_scope() 常用用法

我们知道tensorflow一旦构建了图,就不能在训练的时候改变了。而且输入一旦加入到图中,那么数据就会在一系列的参数流动,并且这一系列参数只能作用于从这个输入接口送进来的数据。如果此时我们又得到了一组数据,或者是一条队列,我们想让这条队列的数据走过和上一条输入队列一样的路线,换言之我们想实现这样的操作: input_1 = tf.placeholder(...) out_1 = model(...

我的博客有点东西 9013

tf.variable_scope 参数

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

HYXING520的博客 2万+

tf.name_scope用法

tf.name_scope:用于定义Python op的上下文管理器。 tf.name_scope( name ) 此上下文管理器将推送名称范围,这将使在其中添加的所有操作的名称带有前缀。 例如,定义一个新的Python opmy_op: def my_op(a, b, c, name=None): with tf.name_scope("MyOp") as scope: a = tf.convert_to_tensor(a, name="a") b = tf.co.

qq_36201400的博客 7786

深入理解tf.Variable、tf.get_variable、tf.variable_scope与tf.name_scope

很多博客都有讲tf.Variable、tf.get_variable、tf.variable_scope与tf.name_scope的使用,但是它们要么不全,要么很片面。本博客打算从全面与详细两个方面进行深入探讨它们的用法。 首先纠正一点,很多博客说tf.variable_scope是变量作用域,其实要这么说也无妨,但是实际上它并不那么严格,因为,这里的作用域只是用于命名与搜索,并不具有局部有...

edward_zcl的博客 1330

tf.variable_scope和tf.name_scope的用法

tf.variable_scope可以让变量有相同的命名,包括tf.get_variable得到的变量,还有tf.Variable的变量 tf.name_scope可以让变量有相同的命名,只是限于tf.Variable的变量 例如: import tensorflow as tf; import numpy as np; import matplotlib.pyplot as plt

UESTC_C2_403的博客 5万+

tensorflow 变量及命名空间 tf.Variable() vs tf.get_variable() & tf.name_scope() vs tf.variable_scope()

tf.Variable() vs tf.get_variable() tf.name_scope() vs tf.variable_scope() 1. 基础功能 1.1 tf.Variable() 是一个类,tensorflow.python.ops.variables.Variable,其构造函数原型为 def __init__( self, initial_value: Any = None, trainable: bool = True, collections:

撒旦先生的博客 2667

tf.Variable、tf.get_variable、tf.variable_scope以及tf.name_scope关系

1. tf.Variable与tf.get_variable tensorflow提供了通过变量名称来创建或者获取一个变量的机制。通过这个机制,在不同的函数中可以直接通过变量的名字来使用变量,而不需要将变量通过参数的形式到处传递。 TensorFlow中通过变量名获取变量的机制主要是通过tf.get_variable和tf.variable_scope实现的。 当然,变量也可以通过tf.Va...

ACL_lihan的博客 872

TensorFlow笔记:tf.get_variable,tf.Variable(),tf.variable_scope,tf.name_scope

tf.get_variable,tf.Variable() tf.get_variable(“vname”)在创建变量时,如果这个变量vname已经存在,直接使用这个变量,如果不存在,则重新创建; tf.Variable()在创建变量时,一律创建新的变量,如果这个变量已存在,则后缀会增加0、1、2等数字编号予以区别。 import tensorflow as tf with tf.name_sc...

qq_38410428的博客 500
上一篇: 神经网络实现mnist_详细注释版(附数据集下载地址)
下一篇: JavaScript call() apply() bind() 三种方法绑定this
CoderLife_
博客等级 码龄8年 22粉丝 11原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值