预备知识02-自动微分

线性代数、微积分

这两个不作介绍,可以点击下方链接阅读原文

2.3. 线性代数 — 动手学深度学习 2.0.0 documentation (d2l.ai)

2.4. 微积分 — 动手学深度学习 2.0.0 documentation (d2l.ai)

梯度

  • 在微积分中,对多元函数的参数求偏导,把求导后的结果(各个参数的偏导数)以向量的形式表达出来就是梯度。
  • 梯度的意义:从几何的角度,梯度就是在这一点函数增加最快的方向,反之梯度的相反方向就是函数减小最快的方向。

自动微分

求导是几乎所有深度学习优化算法的关键步骤。虽然求导的计算很简单,只需要一些基本的微积分。 但对于复杂的模型,手工进行更新是一件很痛苦的事情(而且经常容易出错)。

什么是自动微分

自动微分是计算一个函数在指定值上的导数

深度学习框架通过自动计算导数,即自动微分(automatic differentiation)来加快求导。

如何实现自动微分

1.会有一个计算图

2.两种模式

​ 正向积累

​ 反向积累

框架都使用的反向积累

对标量求梯度

import torch

x = torch.arange(4.0)
// 设置需要计算梯度
x.requires_grad_(True)  # 等价于x=torch.arange(4.0,requires_grad=True)
// 查看x的梯度值
x.grad  # 默认值是None

y = 2 * torch.dot(x, x)
 // 反向传播计算梯度
y.backward()
// 打印梯度
x.grad

// 反向传播计算梯度
y.backward()
// 打印梯度
x.grad






  • 7
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值