iis服务器助手广告广告
返回顶部
首页 > 资讯 > 后端开发 > Python >python的f.name_scope和tf.variable_scope函数有什么区别
  • 140
分享到

python的f.name_scope和tf.variable_scope函数有什么区别

2023-06-30 12:06:50 140人浏览 泡泡鱼

Python 官方文档:入门教程 => 点击学习

摘要

本篇内容主要讲解“python的f.name_scope和tf.variable_scope函数有什么区别”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Python的f.name_scope和t

本篇内容主要讲解“python的f.name_scope和tf.variable_scope函数有什么区别”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习Python的f.name_scope和tf.variable_scope函数有什么区别”吧!

两者区别

tf.name_scope()和tf.variable_scope()是两个作用域,一般与两个创建/调用变量的函数tf.variable() 和tf.get_variable()搭配使用。

为什么要使用两个不同的作用域方式呢?其主要原因与变量共享相关。

变量共享主要涉及两个函数:tf.Variable() 和tf.get_variable()

在tf.variable_scope的作用域下需要使用tf.get_variable()函数,这是因为tf.get_variable()拥有一个变量检查机制,会检测已经存在的变量是否设置为共享变量,当同名变量存在共享机制时,不会报错,如果并未设置为共享变量,则报错。

如果使用tf.Variable() 的话每次都会新建变量。但是很多时候我们希望重用一些变量,所以我们使用到了get_variable(),它会去搜索变量名,有就直接用,没有再新建。
在进行变量共享的时候需要使用到标志reuse,当reuse = True时是可以共享,False时不可以共享。

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,    use_resource=None,    constraint=None,    auxiliary_name_scope=True)

其中:

name_or_scope:范围的名称。

default_name:如果name_or_scope参数为None,则使用默认的名称,该名称将是唯一的;如果提供了name_or_scope,它将不会被使用,因此它不是必需的,并且可以是None。

values:传递给操作函数的Tensor参数列表。

initializer:此范围内变量的默认初始值设定项。

regularizer:此范围内变量的默认正规化器。

caching_device:此范围内变量的默认缓存设备。

partitioner:此范围内变量的默认分区程序。

custom_getter:此范围内的变量的默认自定义吸气。

reuse:可以是True、None或tf.AUTO_REUSE;如果是True,即可以开始共享变量,变量重构用;如果是tf.AUTO_REUSE,则我们创建变量(如果它们不存在),否则返回它们(用于在第一轮创建变量);如果是None,则我们继承父范围的重用标志。

dtype:在此范围中创建的变量类型。

测试代码

1、使用reuse=True共享变量

import Tensorflow as tf# 初始化第一个v1with tf.variable_scope("scope1"):    v1 = tf.get_variable("v1",[3,3],tf.float32,initializer=tf.constant_initializer(1))    print(v1.name)# 不同的作用域with tf.variable_scope("scope2"):    v1 = tf.get_variable("v1",[3,3],tf.float32,initializer=tf.constant_initializer(1))    print(v1.name)# 开始共享with tf.variable_scope("scope1",reuse = True):    v1_share = tf.get_variable("v1",[3,3],tf.float32,initializer=tf.constant_initializer(1))    print(v1_share.name)

运行结果为:

scope1/v1:0
scope2/v1:0
scope1/v1:0

如果在下部再加上

with tf.variable_scope("scope2"):    v1_share = tf.get_variable("v1",[3,3],tf.float32,initializer=tf.constant_initializer(1))    print(v1_share.name)

此时没有reuse,不能共享,程序报错。

2、使用AUTO_REUSE共享变量

import tensorflow as tf# 使用AUTO_REUSE可以直接创建# 如果reuse = True,初始化第一轮创建的时候会报错def demo():  with tf.variable_scope("demo", reuse=tf.AUTO_REUSE):    v = tf.get_variable("v", [1])  return vv1 = demo() v2 = demo()print(v1.name)

运行结果为:

demo/v:0
demo/v:0

到此,相信大家对“python的f.name_scope和tf.variable_scope函数有什么区别”有了更深的了解,不妨来实际操作一番吧!这里是编程网网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!

--结束END--

本文标题: python的f.name_scope和tf.variable_scope函数有什么区别

本文链接: https://www.lsjlt.com/news/328613.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • python的f.name_scope和tf.variable_scope函数有什么区别
    本篇内容主要讲解“python的f.name_scope和tf.variable_scope函数有什么区别”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“python的f.name_scope和t...
    99+
    2023-06-30
  • python神经网络tf.name_scope和tf.variable_scope函数区别
    目录学习前言两者区别tf.variable_scope函数测试代码1、使用reuse=True共享变量2、使用AUTO_REUSE共享变量学习前言 最近在学目标检测…&...
    99+
    2024-04-02
  • python函数和类有什么区别
    python中函数与类的区别有以下几点规则不同类是一种引用数据类型,类似于byte、short、int(char)、long、float、double等基本数据类型;而函数必须声明后才可以被调用,调用格式为:函数名(实参)调用时函数名后的小...
    99+
    2024-04-02
  • python中apply函数和apply_async函数有什么区别
    这篇文章主要介绍“python中apply函数和apply_async函数有什么区别”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“python中apply函数和apply_async函数有什么区别”...
    99+
    2023-07-02
  • lenb函数和len函数有什么区别
    lenb函数和len函数的区别:1、功能不同;2、返回结果不同;3、对双字节字符的处理不同;4、应用场景不同。详细介绍:1、功能不同,LEN函数是返回文本字符串中的字符个数,LENB函数是返回文本中所包含的字符数,与双字节字符集一起使用;2...
    99+
    2023-12-15
    lenb函数 len函数
  • 函数log.Print和函数log.Println有什么区别吗?
    ...
    99+
    2024-04-02
  • Python中的闭包和匿名函数有什么区别
    闭包和匿名函数都是函数的概念,但是它们有一些区别: 闭包是指在一个函数内部定义另一个函数,并且内部函数可以访问外部函数的变量。闭...
    99+
    2024-03-12
    Python
  • Java数组和JavaScript函数有什么区别?
    Java数组和JavaScript函数是两种不同的编程概念,它们之间存在着很大的区别。在本文中,我们将探讨Java数组和JavaScript函数的区别,并演示一些代码示例。 Java数组是一种存储固定数量元素的数据结构。数组可以包含不同类型...
    99+
    2023-10-25
    数组 javascript 函数
  • python中format函数与round函数有什么区别
    本文小编为大家详细介绍“python中format函数与round函数有什么区别”,内容详细,步骤清晰,细节处理妥当,希望这篇“python中format函数与round函数有什么区别”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一...
    99+
    2023-06-26
  • PHP函数和方法有什么区别
    今天小编给大家分享一下PHP函数和方法有什么区别的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。PHP函数是一段可重复使用的代...
    99+
    2023-07-05
  • MySQL LENGTH() 和 CHAR_LENGTH() 函数有什么区别?
    这两个函数都是字符串函数,并返回字符串中存在的字符数。但它们的不同之处在于 CHAR_LENGTH() 函数以“字符”为单位测量字符串长度,而 LENGTH() 函数以“字节”为单位测量字符串长度。换句话说,我们可以说 CHAR_LENGT...
    99+
    2023-10-22
  • MySQL INSTR() 和 FIND_IN_SET() 函数有什么区别?
    众所周知,这两个函数都用于根据它们提供的参数搜索字符串,但它们之间存在一些显着差异,如下所示FIND_IN_SET()函数使用的字符串列表本身就是一个包含以逗号分隔的子字符串的字符串。而 INSTR() 函数包含一个字符串,它将从中查找子字...
    99+
    2023-10-22
  • MySQL INSTR() 和 FIND_IN_SET() 函数有什么区别
    MySQL INSTR() 函数用于在字符串中查找子字符串,并返回子字符串在原字符串中的位置。它的语法如下:INSTR(str, s...
    99+
    2023-10-20
    MySQL
  • c++内联函数和宏函数有什么区别
    C++内联函数和宏函数都可以在编译时进行函数体的替换,但是它们有以下几点区别:1. 编译时间点:宏函数在预处理阶段被展开,而内联函数...
    99+
    2023-10-19
    c++
  • c++中fabs函数和abs函数有什么区别
    fabs函数用于计算浮点数的绝对值,而abs函数用于计算整数的绝对值。fabs函数返回的结果是一个浮点数,而abs函数返回的结果是一...
    99+
    2024-03-05
    c++
  • PHP 函数和 NumPy/Numpy 有什么区别?
    PHP 和 NumPy/Numpy 都是编程语言中的两个重要的工具,它们都有着各自的优点和特点,用途也不尽相同。在本文中,我们将会深入探讨一下 PHP 函数和 NumPy/Numpy 之间的区别。 一、PHP 函数的概念 PHP 函数是一...
    99+
    2023-09-17
    函数 numpy numy
  • python高阶函数和C语言函数指针有什么区别
    本篇内容主要讲解“python高阶函数和C语言函数指针有什么区别”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“python高阶函数和C语言函数指针有什么区别”吧!python高阶函数:将函数作为...
    99+
    2023-06-04
  • python内置函数和内置方法有什么区别
    python中内置函数与内置方法的区别有以下几种作用域不同内置函数的作用域:从函数调用开始至函数执行完成,返回给调用者后,在执行过程中开辟的空间会自动释放,也就是说函数执行完成后,函数体内部通过赋值等方式修改变量的值不会保留,会随着返回给调...
    99+
    2024-04-02
  • python中map和filter函数的区别是什么
    python中map和filter函数的区别是什么?针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。python的五大特点是什么python的五大特点:1.简单易学,开发程序时...
    99+
    2023-06-14
  • PHP中的isset()和!empty()函数有什么区别
    这篇文章主要介绍了PHP中的isset()和!empty()函数有什么区别,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。1.isset()isset ( ...
    99+
    2023-06-14
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作