Pytorch 叶子节点和非叶子节点的理解

1.为什么要区分叶子节点和非叶子节点?

为了节省内存。在pytorch的计算图里只有两种元素:数据(tensor)和 运算(operation)。其中数据可分为:叶子节点(leaf node)和非叶子节点;叶子节点是用户创建的节点,不依赖其它节点;它们表现出来的区别在于反向传播结束之后,非叶子节点的梯度会被释放掉,只保留叶子节点的梯度,这样就节省了内存。

PS:注意这里的描述“非叶子节点的梯度会被释放掉”。这其实暗含了非叶子节点必须是要参与梯度计算的,也就是requires_grad=True,同时也意味着requires_grad=False的节点一定是叶子节点,因为这样的tensor压根不参与求导,也没梯度,自然不需要“释放掉梯度”。这就成为了判别叶子节点和非叶子节点的第一个标准,见下。

2.如何区分叶子节点和非叶子节点?

判断一个节点是否是叶子节点,只需满足以下条件之一:

A.所有requires_grad为False的张量(Tensor) 都为叶子节点( leaf Tensor)

B.requires_grad为True的张量(Tensor),如果他们是由用户创建的,则它们是叶张量(leaf Tensor)。这意味着它们不是运算的结果,因此grad_fn为None。

>>> a = torch.rand(10, requires_grad=True)
>>> a.is_leaf
True
#a was created by user
>>> b = torch.rand(10, requires_grad=False)
>>> b.is_leaf
True
>>> c = torch.rand(10, requires_grad=True) + 2
>>> c.is_leaf
False
# c was created by the addition operation

PS:神经网络层中的权值w的tensor均为叶子节点

 

参考:http://t.csdnimg.cn/xbCXP 

http://t.csdnimg.cn/NdJ7P 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/19611.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

vue 笔记03

目录 01 vue 对象本身的属性和方法 02 computed计算属性的使用 03 filter过滤器的使用 04 使用key属性管理重复元素(虚拟dom原理) 05 MVC 和 MVVM 06 双向数据绑定原理 01 vue 对象本身的属性和方法 vue构造函数传入的是options对象 可以通过vue对象的$option获取 vm.$op…

【稳定检索/投稿优惠】2024年语言、文化与艺术发展国际会议(LCAD 2024)

2024 International Conference on Language, Culture, and Art Development 2024年语言、文化与艺术发展国际会议 【会议信息】 会议简称:LCAD 2024大会时间:2024-08-10截稿时间:2024-07-27(以官网为准)大会地点:中国…

Rainbond 携手 TOPIAM 打造企业级云原生身份管控新体验

TOPIAM 企业数字身份管控平台, 是一个开源的IDaas/IAM平台、用于管理账号、权限、身份认证、应用访问,帮助整合部署在本地或云端的内部办公系统、业务系统及三方 SaaS 系统的所有身份,实现一个账号打通所有应用的服务。 传统企业 IT 采用烟囱…

纯C++做多项式拟合

一、多项式拟合用途 当前有一组对应的x、y数据,希望通过这些数据点做出近似的多项式曲线:YnX^2mXc 其中多项式最高次数可调,返回各个参数及曲线的拟合度R^2 二、函数实现 参数中的order为设置的多项式最高次次数,coefficients为…

源码编译安装LNMP

1、LNMP 包含:linux、Nginx、Mysql、php LNMP的工作原理 由客户端发送页面请求给Nginx,Nginx会根据location匹配用户访问请求的URL路径判断是静态还是动态,静态的一般是以 .html .htm .css .shtml结尾,动态的一般是以 .php .jsp…

17.js字符串

字符串创建 1.字面量创建 var 字符串名字符串 2.内部构造函数创建 var 字符串名new String(字符串) length属性 只能读取不能设置 var strabcdfegfglconsole.log(str.length) //10str.length5 console.log(str) //不能写 abcdfegfgl index属性 只能读不能设置 var strab…

水位监测站的工作原理

TH-SW2在雨季,河道和湖泊的水文信息监测对于防洪减灾、水资源管理和环境保护等方面具有至关重要的意义。水文监测站作为实现这一目标的基础设施,发挥着关键作用。水文监测站是观测及搜集河流、湖泊、水库等水体的水文、气象资料的基层水文机构。在雨季&a…

C++基础项目 通讯录管理系统

尝试找实习面试,结果发现自己的学习还有很多不足,没有了解c11/14很多新特性的使用以及学习,因此打算重新过一遍基础.通讯录管理系统是c的基础入门,主要运用了结构体,数组,函数以及指针等东西.下面详细的说明整个设计工程. 需求分析 * 联系人上限为1000人,联系人信息…

harbor -- docker私有仓库安装配置

1 安装docker-compose $ curl -L "https://get.daocloud.io/docker/compose/releases/download/v1.25.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose $ chmod x /usr/local/bin/docker-compose 2 安装配置harbor $ wget https://g…

代码随想录算法训练营第36天 | 738.单调递增的数字

代码随想录算法训练营第36天 | 738.单调递增的数字 自己看到题目的第一想法看完代码随想录之后的想法自己实现过程中遇到哪些困难 ) 链接: 738.单调递增的数字 自己看到题目的第一想法 738.单调递增的数字:先判断本身是否单调递增,如果是就直接返回该…

Android NDK系列(五)内存监控

在日常的开发中,内存泄漏是一种比较比较棘手的问题,这是由于其具有隐蔽性,即使发生了泄漏,很难检测到并且不好定位到哪里导致的泄漏。如果程序在运行的过程中不断出现内存泄漏,那么越来越多的内存得不到释放&#xff0…

centos时间不对

检查当前时区是否正确 timedatectl status如果时区不正确,使用以下命令设置正确的时区(将Asia/Shanghai替换为您所在的时区): timedatectl set-timezone Asia/Shanghai如果时区正确但时间不准确,使用以下命令同步网络…

Java基础语法——字符串(String/StringBuilder/Stringjoiner)

String Java的String类是不可变的,意味着一旦创建,其值就不能被改变。String类提供了丰富的API来操作字符串。 以下是一些常用的方法: 构造方法: 有以下几种常见的: public class stringlearn {public static void…

AI 赋能前端 -- 文本内容概要生成

幸福不在于你获得了什么,而在于你比他人多获得了什么 是比较出来的 大家好,我是柒八九。一个专注于前端开发技术/Rust及AI应用知识分享的Coder 此篇文章所涉及到的技术有 OpenAILangChainRust/WebAssemblyWeb Workerreact+ts+vite配置环境变量(env)因为,行文字数所限,有些概…

渗透课程第二阶段--Part1--信息收集

目录 一. 为什么要做信息收集? 渗透测试的流程 信息收集包括的内容 学习框架: 二. 分类 1. 域名相关信息 域名(Domain Name)是什么 域名的分类 域名联系人信息 子域名信息 域名DNS信息 2. IP相关信息 ping/nslookup …

香橙派OrangePi AIpro上手笔记——之USB摄像头目标检测方案测试(一)

整期笔记索引 香橙派OrangePi AIpro上手笔记——之USB摄像头目标检测方案测试(一) 香橙派OrangePi AIpro上手笔记——之USB摄像头目标检测方案测试(二) 香橙派OrangePi AIpro上手笔记——之USB摄像头目标检测方案测试&#xff0…

使用element的提示框并修改css

使用el-tooltip来做提示框&#xff1a; <el-tooltip popper-class"popper" content"敬请期待" placement"right"><div><i class"iconfont icon-lianjie-01"></i><span>输入链接</span></div&…

和鲸“101数智领航计划”——在武大解码 GeoAI,地理空间智能(GeoAI)学术研讨会及编程工作坊圆满落幕

AI 正革新地理空间数据分析的范式&#xff0c;既为科学研究及行业落地应用带来了机遇&#xff0c;同样也带来了挑战。 5 月 25 日&#xff0c;和鲸科技联合武汉大学遥感信息工程学院、中国地质大学&#xff08;武汉&#xff09;地理与信息工程学院&#xff0c;于武汉大学成功举…

element.addEventListener() 方法 详细解析与代码示例

element.addEventListener() 方法用于向指定的元素添加事件监听器。 语法: element.addEventListener(event, function, useCapture);参数说明: event&#xff1a;表示要监听的事件类型&#xff0c;比如 "click"、"mouseover"、"keydown" 等等…

使用mongorestore时no reachable servers错误的解决

使用mongorestore命令恢复导出的.bson文件至mongodb时&#xff0c;比如 mongorestore -d mydb -c mycollection mycollection.bson可能会遇到遇到类似下面的错误 Failed: error connecting to db server: no reachable servers而此时mongosh&#xff0c;或者mongo命令本身是可…