Python全系列 教程
3567个小节阅读:5931.2k
目录
鸿蒙应用开发
C语言快速入门
JAVA全系列 教程
面向对象的程序设计语言
Python全系列 教程
Python3.x版本,未来主流的版本
人工智能 教程
顺势而为,AI创新未来
大厂算法 教程
算法,程序员自我提升必经之路
C++ 教程
一门通用计算机编程语言
微服务 教程
目前业界流行的框架组合
web前端全系列 教程
通向WEB技术世界的钥匙
大数据全系列 教程
站在云端操控万千数据
AIGC全能工具班
A A
White Night
Autograd中文叫作自动微分,是PyTorch进行神经网络优化的核心。自动微分,顾名
思义就是PyTorch自动为我们计算微分(更多情况计算的是导数)。
例如:有一个向量x=(1,1),将它作为输入,接着,将输入乘以4得到向量z=(4,4),最后求
出长度并输出一个标量y,值为5.6569。从数学角度推导y关于x向量的微分
根据这个关系不难分别计算y关于x1和x2的导数
如果一个输入需要经过比上面例子更多的计算步骤,那么靠人工去计算微分就变得力不
从心。幸运的是,PyTorch的Autograd技术可以帮助我们自动求出这些微分值。
复杂的计算可以被抽象成一张图(graph)。一张复杂的计算图可以分为叶子节点(输入
值和神经网络的参数)、中间节点、输出节点、信息流(运行过程)四个部分。
叶子结点、中间节点、输出节点都是Tensor
Tensor在自动微分方面有3个重要属性:requires_grad、grad、grad_fn
requires_grad属性设置为True时,表示该Tensor需要自动计算微分
grad属性用于存储Tensor的微分值
grad_fn属性用于存储Tensor的微分函数
注意:
- 当叶子节点的requires_grad为True时,信息流经过该节点时,所有中间节点的
requires_grad属性都会变成True
只要在输出节点调用反向传播函数backward( ),PyTorch就会自动求出叶子节点
的微分值并更新存储在叶子节点的grad属性中。需要注意的是,只有叶子节点的grad属性能被更新
1. 关于自动微分的用途,下列说法正确的是:
A 是PyTorch自动计算微分(更多情况计算的是导数)
B 是关于矩阵的一种运算
C 用来计算概率的方法
D 用来计算向量点乘的方法
2. 关于PyTorch计算自动微分,下列说法正确的是:
A 只有中间节点的grad属性能被更新
B grad属性用于存储Tensor的微分值
C grad_fn属性值是布尔类型的
D 以上说法均不正确
1=>A 2=>B