本文是通过学习 AI研习社 炼丹兄 所做笔记!!!

1. .backward()

目录

1.1 .grad

1.2 .is_leaf

1.3 .retain_grad()

1.4 .grad_fn

1.1 .grad

作用:查看叶子节点梯度值

例:,计算y关于w的梯度:

(上式计算中,)

  和  是叶子节点,是整个计算过程的根基

在反向传播结束之后,非叶子节点的梯度会被释放掉

Pytorch代码实现过程如下:

import torch
w = torch.tensor([1.],requires_grad = True)
x = torch.tensor([2.],requires_grad = True)a = w + x
b = w + 1
y = a * by.backward()
print(w.grad)

运行结果如下:

tensor([5.0])

1.2 .is_leaf

作用:查看是否为叶子节点

例:,计算y关于w的梯度:

(上式计算中,)

import torch
w = torch.tensor([1.],requires_grad = True)
x = torch.tensor([2.],requires_grad = True)a = w + x
b = w + 1
y = a * by.backward()
print(w.is_leaf,x.is_leaf,a.is_leaf,b.is_leaf,y.is_leaf)
print(w.grad,x.grad,a.grad,b.grad,y.grad) 

运行结果如下:

True True False False False
tensor([5.]) tensor([2.]) None None None

观察到只有  和  是叶子节点,然后反向传播计算完梯度后(.backward()之后),只有叶子节点的梯度保存下来了。

1.3 .retain_grad()

作用:通过.retain_grad()保留非任意节点的梯度值

例:,计算y关于w的梯度:

(上式计算中,)

import torch
w = torch.tensor([1.],requires_grad = True)
x = torch.tensor([2.],requires_grad = True)a = w + x
a.retain_grad()
b = w + 1
y = a * by.backward()
print(w.is_leaf,x.is_leaf,a.is_leaf,b.is_leaf,y.is_leaf)
print(w.grad,x.grad,a.grad,b.grad,y.grad)

运行结果如下:

True True False False False
tensor([5.]) tensor([2.]) tensor([2.]) None None

1.4 .grad_fn

作用:记录创建该张量时所用的函数,这个属性反向传播的时候会用到

例:,计算y关于w的梯度:

(上式计算中,)

 y.grad_fn = MulBackward0 表示y是通过乘法得到的。求导时用乘法的求导法则。

 a.grad_fn = AddBackward0 表示a是通过加法得到的。求导时用加法的求导法则。

        叶子节点的 .grad_f是None

import torchw = torch.tensor([1.],requires_grad = True)
x = torch.tensor([2.],requires_grad = True)a = w + x
a.retain_grad()
b = w + 1
y = a * by.backward()
print(y.grad_fn)
print(a.grad_fn)
print(w.grad_fn)

运行结果如下:

<MulBackward0 object at 0x000002107EE17610>
<AddBackward0 object at 0x000002107EE17610>
None

【笔记】Pytorch-backward()相关推荐

  1. PyTorch 学习笔记(六):PyTorch hook 和关于 PyTorch backward 过程的理解 call

    您的位置 首页 PyTorch 学习笔记系列 PyTorch 学习笔记(六):PyTorch hook 和关于 PyTorch backward 过程的理解 发布: 2017年8月4日 7,195阅读 ...

  2. 笔记 | PyTorch安装及入门教程

    点击上方"小白学视觉",选择加"星标"或"置顶" 重磅干货,第一时间送达 本文内容概述如何安装PyTorch以及PyTorch的一些简单操作 ...

  3. [笔记]Pytorch框架下的入门应用:resnet34实现分类

    导师的课题需要用到图片分类:入门萌新啥也不会,只需要实现这个功能,给出初步效果,不需要花太多时间了解内部逻辑.经过一周的摸索,建好环境.pytorch,终于找到整套的代码和数据集,实现了一个小小的分类 ...

  4. 深度学习笔记--pytorch从梯度下降到反向传播BP到线性回归实现,以及API调用和手写数据集的实现

    梯度下降和反向传播 目标 知道什么是梯度下降 知道什么是反向传播 1. 梯度是什么? 梯度:是一个向量,导数+变化最快的方向(学习的前进方向) 回顾机器学习 收集数据 x x x ,构建机器学习模型 ...

  5. PyTorch 笔记Ⅱ——PyTorch 自动求导机制

    文章目录 Autograd: 自动求导机制 张量(Tensor) 梯度 使用PyTorch计算梯度数值 Autograd 简单的自动求导 复杂的自动求导 Autograd 过程解析 扩展Autogra ...

  6. NLP学习笔记-Pytorch框架(补充)

    PDF Pytorch初步应用 使用Pytorch构建一个神经网络 学习目标 掌握用Pytorch构建神经网络的基本流程. 掌握用Pytorch构建神经网络的实现过程. 关于torch.nn: 使用P ...

  7. PyTorch backward原理

    1,先看运行效果 第一部分 x = torch.tensor([2., 1.], requires_grad=True).view(1,2)print(x) y = torch.tensor([[1. ...

  8. pytorch backward使用解析

    目录 前言 backward函数官方文档 backward理解 Jacobian矩阵 vector-Jacobian product的计算 vector-Jacobian product的例子理解 输 ...

  9. pytorch笔记 pytorch模型中的parameter与buffer

    1 模型的两种参数 在 Pytorch 中一种模型保存和加载的方式如下:(具体见pytorch模型的保存与加载_刘文巾的博客-CSDN博客) #save torch.save(net.state_di ...

  10. [轻笔记]Pytorch语义分割输出转换为图像显示

    基于Pytorch的语义分割网络采用F.cross_entropy(y^,y\hat{\mathbf{y}}, \mathbf{y}y^​,y)对数据集进行训练. 数据对(x,y)(\mathbf{x ...

最新文章

  1. 第二十天:规划风险应对
  2. 仿赶集网二手物品页面左侧导航
  3. matlab安装教程补充
  4. 确定NTFS权限应用的位置
  5. 4.类型设计规范《.NET设计规范》
  6. 两个pv挂一个vg_两个pv挂一个vg_VG解散LOL分部,LPL官网提前改名,下赛季被“RA”收购...
  7. 【机器学习】集成学习(Ensemble Learning)介绍
  8. CSS实现兼容性的渐变背景(gradient)效果(转)
  9. 12_通过上下文操作私有目录模式说明
  10. linux系统下制作启动u盘,在Linux系统下如何制作创建win10启动盘U盘启动?
  11. 电阻电感电容基本单位、读数、封装类型、种类
  12. 计算机网络实验双绞线制作,实验一 双绞线制作实验报告
  13. [ERROR NumCPU]: the number of available CPUs 1 is less than the required 2
  14. 【软件相关】EverythingSumatraPDF的一个小bug
  15. NOIP 2017 游记
  16. 绘图基础--画弧,扇形,弓形
  17. VO,DTO,DO,PO区别
  18. win10 实时保护对KEIL5 编译速度慢的响应
  19. 决策树(Decision Tree)理解及参数介绍
  20. 孙振耀退休感言(一)

热门文章

  1. 霍夫曼树及霍夫曼编码的C语言实现,霍夫曼树及霍夫曼编码的C语言实现
  2. Xcode链接手机时 has conflicting provisioning settings.
  3. 值域线段树 bzoj 4627
  4. 利用PHOTOSHOP实现电影级视频实时滤镜渲染效果
  5. 2022年全球及中国ACA跟踪和报告行业头部企业市场占有率及排名调研报告
  6. css深入剖析transform的translate和perspective
  7. 全球新闻数据可视化(2)--php连接数据库与数据可视化
  8. 第05期:Prometheus 数据查询(一)
  9. 计算机显示器配置,你们知道电脑的配置怎么查看吗,查看电脑显示器配置方法...
  10. Python入门一头雾水