当前位置: 首页 > news >正文

PyTorch Autograd内部实现

原文:

克補 爆炸篇 25s (youtube.com)

必应视频 (bing.com)icon-default.png?t=N7T8https://www.bing.com/videos/riverview/relatedvideo?&q=PyTorch+autograd&qpvt=PyTorch+autograd&mid=1B8AD76943EFADD541E01B8AD76943EFADD541E0&&FORM=VRDGAR

前面只要有一个node的requires_grad为True,则后面所有node都要为True:

forward阶段,ctx里存放其backward操作需要的值,也就是forward时的部分input或output值;

requires_grad为False的(Tensor b),不会计算其梯度;

requires_grad为True,且is_leaf为Tree的,会将梯度累积到其grad成员上;

优化:如果is_leaf=False,则说明不需要该Tensor的grad,所以,grad_fn直接将output梯度传递给下一个grad_fn了,绕开对该Tensor的grad的更新;(节省一步梯度加和操作的时间,也节省一个grad数据存储空间)

用_version号来防止backward时用到的activation在之前发生改动;如果_version号跟本次backward源头的_version号不同了,则报错;

我:Pipeline并行,如果直接做,就会有这种报错出现;

如果是Add操作这种,压根不需要某些activation的值,所以这种值发生改动,不影响backward传递参数,因此就不会报错

每个运算,是一个独立的operator,对应backward也是独立的:

Tensor.detach(),用在什么情况:想保留结果值,但又想把原始计算图垃圾回收释放掉;新Tensor和老Tensor共享数据内存(data),但不在hold指向计算图的reference了(grad_fn=None)

 

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • RICHTEK立锜科技 WIFI 7电源参考设计
  • OCC 创建点线面体
  • js 只读对象
  • CSRF+XSS组合攻击实战
  • MySQL1.试建产品库
  • 网友提问:display:flex和display:box有什么区别?
  • k8s核心操作_存储抽象_K8S中使用Secret功能来存储密码_使用免密拉取镜像_k8s核心实战总结---分布式云原生部署架构搭建033
  • Android 记录锁屏的上层相关源码以及debug WindowManager
  • 大数据环境下的房地产数据分析与预测研究的设计与实现
  • 5 webSocket
  • 1个Xpath定位可以在Web页面查找到多个元素Selenium
  • Nginx部署前端项目尝试 - windows版
  • git commit报错: pre-commit hook failed (add --no-verify to bypass)
  • ceph log内容解析
  • 针对【module_or_function】的单元测试,全面覆盖可能的【edge_cases】
  • “Material Design”设计规范在 ComponentOne For WinForm 的全新尝试!
  • android高仿小视频、应用锁、3种存储库、QQ小红点动画、仿支付宝图表等源码...
  • jQuery(一)
  • JS实现简单的MVC模式开发小游戏
  • NLPIR语义挖掘平台推动行业大数据应用服务
  • Node项目之评分系统(二)- 数据库设计
  • REST架构的思考
  • 从0到1:PostCSS 插件开发最佳实践
  • 对话:中国为什么有前途/ 写给中国的经济学
  • 解决iview多表头动态更改列元素发生的错误
  • 聚簇索引和非聚簇索引
  • 如何胜任知名企业的商业数据分析师?
  • 如何邀请好友注册您的网站(模拟百度网盘)
  • 使用Maven插件构建SpringBoot项目,生成Docker镜像push到DockerHub上
  • 适配iPhoneX、iPhoneXs、iPhoneXs Max、iPhoneXr 屏幕尺寸及安全区域
  • 学习Vue.js的五个小例子
  • 一道面试题引发的“血案”
  • 移动端 h5开发相关内容总结(三)
  • 运行时添加log4j2的appender
  • 阿里云IoT边缘计算助力企业零改造实现远程运维 ...
  • ​LeetCode解法汇总307. 区域和检索 - 数组可修改
  • ​插件化DPI在商用WIFI中的价值
  • # centos7下FFmpeg环境部署记录
  • #控制台大学课堂点名问题_课堂随机点名
  • #我与Java虚拟机的故事#连载15:完整阅读的第一本技术书籍
  • (12)目标检测_SSD基于pytorch搭建代码
  • (pojstep1.1.2)2654(直叙式模拟)
  • (第9篇)大数据的的超级应用——数据挖掘-推荐系统
  • (二)pulsar安装在独立的docker中,python测试
  • (十八)SpringBoot之发送QQ邮件
  • (十七)Flink 容错机制
  • (四)七种元启发算法(DBO、LO、SWO、COA、LSO、KOA、GRO)求解无人机路径规划MATLAB
  • (小白学Java)Java简介和基本配置
  • (转)Android学习系列(31)--App自动化之使用Ant编译项目多渠道打包
  • .Net Attribute详解(上)-Attribute本质以及一个简单示例
  • .NET Core 发展历程和版本迭代
  • .net core使用RPC方式进行高效的HTTP服务访问
  • .NET中的十进制浮点类型,徐汇区网站设计
  • [@Controller]4 详解@ModelAttribute
  • [000-01-011].第2节:持久层方案的对比