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

自动求导实现

1.假设对函数y=2xTx关于列向量x求导

import torchx = torch.arange(4.0)
x

2.在计算y关于x的梯度之前,需要地方存储梯度

x.requires_grad_(True)
x.grad

3.计算y

y = 2 * torch.dot(x, x)
y

4.通过反向传播函数来自动计算y关于x每个分量的梯度

y.backward()
x.grad

x.grad == 4 * x

5.计算x的另一个函数

默认情况下,pytorch会积累梯度

x.grad.zero_()
y = x.sum()
y.backward()
x.grad

6.深度学习中,目的是计算批量中每个样本单独计算的偏导数之和

x.grad.zero_()
y = x * x
y.sum().backward()
x.grad

7.将某些计算移动到记录的计算图之外

x.grad.zero_()
y.sum().backward()
x.grad == 2 * x

8.即使构建函数的计算图需要通过Python控制流(条件、循环、任意函数调用),仍然可以技术得到变量梯度

def f(a):b = a * 2while b.norm() < 1000:b = b * 2if b.sum() > 0:c = belse:c = 100 * breturn ca = torch.randn(size=(),requires_grad=True)
d = f(a)
d.backward()a.grad == d / a


http://www.mrgr.cn/news/55238.html

相关文章:

  • Vue脚手架学习 vue脚手架配置代理、插槽、Vuex使用、路由、ElementUi插件库的使用
  • 解析带有MyBatis语法的SQL字符串,获取最终的可执行SQL
  • 如何将LiDAR坐标系下的3D点投影到相机2D图像上
  • SpringBoot篇(二、制作SpringBoot程序)
  • 【嵌入式设备】蓝牙鼠标遥控器
  • 碰到这个问题请更新或重新安装fastapi版本
  • C++ 新特性 | C++ 11 | tuple 模版
  • 跟风考的PMP帮我拿到了offer
  • Unity3D功耗和发热分析与优化详解
  • Android中使用bottomnavigation实现底部导航栏
  • CST软件如何验证“平面波+探针”的频域结果
  • 怎么用六西格玛增强解决问题的逻辑性?
  • ATTCK 框架讲解
  • 建议使用requestAnimationFrame替代定时器setInterval、setTimeout完成页面动画
  • SAP MDG —— MDG on S/4HANA 2023 FPS02 创新汇总 AI功能首次发布!
  • 七天入门LLM大模型 |提示词工程-Prompt Engineering
  • Django
  • sentinel原理源码分析系列(八)-熔断
  • JVS逻辑引擎,API接入数据加解密操作详解
  • Java EE规范
  • 供电电压和逻辑电压
  • Visual Studio快捷添加代码片段的方法
  • 时装购物|基于springBoot的时装购物系统设计与实现(附项目源码+论文+数据库)
  • 通过多方面去评估EDM电子邮件群发营销的效果
  • 基于Java+SpringBoot+Vue的师生健康信息管理系统
  • 浏览器播放rtsp视频流解决方案