【Torch笔记】autograd自动求导系统

Pytorch 提供的自动求导系统 autograd,我们不需要手动地去计算梯度,只需要搭建好前向传播的计算图,然后使用 autograd 计算梯度即可。

torch.autograd.backward() 可自动求取梯度:

  • tensors:用于求导的张量,如 loss
  • retain_graph:保存计算图
  • create_graph:创建导数计算图,用于高阶求导
  • grad_tensors:多梯度权重
w = torch.tensor([1.], requires_grad=True)
x = torch.tensor([2.], requires_grad=True)a = torch.add(w, x)
b = torch.add(w, 1)
y = torch.mul(a, b)y.backward()        ## 实际调用的就是 torch.autograd.backward()
print(w.grad)## tensor([5.])

torch.autograd.grad() 可用于求取梯度:

  • outputs:用于求导的张量,如 loss
  • inputs:需要梯度的张量
  • create_graph:创建导数计算图,用于高阶求导
  • retain_graph:保存计算图
  • grad_outputs:多梯度权重
import torch
# flag = True
flag = True
if flag:x = torch.tensor([3.], requires_grad=True)y = torch.pow(x, 2)     # y = x**2grad_1 = torch.autograd.grad(y, x, create_graph=True)   # grad_1 = dy/dx = 2x = 2 * 3 = 6print(grad_1)grad_2 = torch.autograd.grad(grad_1[0], x)              # grad_2 = d(dy/dx)/dx = d(2x)/dx = 2print(grad_2)

autograd 小贴士:

  • 梯度不会自动清零,所以通常需要手动清零 w.grad.zero_()
  • 依赖于叶子结点的节点,requires_grad 默认为 True
  • 叶子结点不可执行 in-place

【Torch笔记】autograd自动求导系统相关推荐

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

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

  2. Pytorch Autograd (自动求导机制)

    Introduce Pytorch Autograd库 (自动求导机制) 是训练神经网络时,反向误差传播(BP)算法的核心. 本文通过logistic回归模型来介绍Pytorch的自动求导机制.首先, ...

  3. [PyTorch] autograd 自动求导

    文章目录 1. autograd 注意事项 backward() 梯度累加 2. 标量求导 3. 张量求导 例1 例2 1. autograd 注意事项 backward() backwad() 函数 ...

  4. autograd库测试笔记-(一个基于Numpy的自动求导库)

    导入 autograd 库,同时导入这个库里的numpy(应该是作者自己把numpy放入了这个库的命名空间里面)以及逐项求导elementwise_grad. from autograd import ...

  5. PyTorch基础(二)-----自动求导Autograd

    一.前言 上一篇文章中提到PyTorch提供了两个重要的高级功能,分别是: 具有强大的GPU加速的张量计算(如NumPy) 包含自动求导系统的的深度神经网络 第一个特性我们会在之后的学习中用到,这里暂 ...

  6. autograd-自动求导系统

    torch.autograd 权值的更新需要求解梯度,pytorch提供了自动求导系统,我们只需要搭建前向传播计算图,由autograd的方法就可以得到所有张量的梯度. 其中最常用的方法是backwa ...

  7. Pytorch学习(一)—— 自动求导机制

    现在对 CNN 有了一定的了解,同时在 GitHub 上找了几个 examples 来学习,对网络的搭建有了笼统地认识,但是发现有好多基础 pytorch 的知识需要补习,所以慢慢从官网 API 进行 ...

  8. Pytorch教程入门系列4----Autograd自动求导机制

    系列文章目录 文章目录 系列文章目录 前言 一.Autograd是什么? 二.Autograd的使用方法 1.在tensor中指定 2.重要属性 三.Autograd的进阶知识 1.动态计算图 2.梯 ...

  9. Autograd:自动求导

    2019年年初,ApacheCN组织志愿者翻译了PyTorch1.0版本中文文档(github地址),同时也获得了PyTorch官方授权,我相信已经有许多人在中文文档官网上看到了.不过目前校对还缺人手 ...

最新文章

  1. CentOS7——vi编辑保存
  2. oracle TNS: 协议适配器错误 解决办法
  3. 股市孙子兵法(收藏)
  4. MySQL主从虚IP_Mysql主从同步时Slave_IO_Running:Connecting ; Slave_SQL_Running:Yes的情况故障排除...
  5. 直博和读完硕士再读博,在能力上的差距有多大?
  6. [翻译] ZCSHoldProgress
  7. python库skimage 将针对灰度图像的滤波器用于RGB图像
  8. [20180124]测试SQLNET.EXPIRE_TIME参数3
  9. oracle函数 NLS_INITCAP(x[,y])
  10. 9 Nextflow configuration
  11. Android看韩漫软件,爱看韩漫免费版
  12. SD卡和TF卡的区别/差异
  13. win10系统进不了服务器失败,快速解决Win10安装失败重启进不了系统的方法
  14. ffmpeg把yuv数据转换成jpeg图片
  15. java list筛选数据_java 根据条件在List中筛选出符合条件的对象
  16. 利用Fiddler实现在pc微信端测试
  17. Strut2 界面标签和其他标签
  18. 战地1 - 概念艺术
  19. Hbuilder X 语法助手无法访问问题
  20. python rewind_C语言rewind和fseek函数的用法详解(随机读写文件)

热门文章

  1. CRM与销售能力自动化SFA的关系
  2. 跑跑卡丁车点爆竹的超级技巧--想要棉花糖的来
  3. 全方位解析Java学习路线图,从入坑到年薪百万
  4. 小米note3android版本彩蛋,小米MIX2发布会日期确定,小米Note3包装盒曝光,小米Note3或成为彩蛋?...
  5. 长虹android电视安装apk,长虹电视怎么安装第三方软件,附上详细图文步骤说明...
  6. python批量爬取图片_【原创开源】快手爬虫,根据id批量爬取用户的所有图集和视频...
  7. 获12w+星标的神仙文档再度上榜,简直是一套活生生自学Java的福星
  8. ISP自学1:传感器的动态范围 VS 成像系统的动态范围
  9. Vue Prop使用
  10. sublime text3083 破解 插件汉化