目录
百战程序员,全站22050+开发课程+文档 ,学习精选优质好课快人一步!观看视频 快捷键ALT+N

Python全系列 教程

3567个小节阅读:5931.2k

收藏
全部开发者教程

鸿蒙应用开发

C语言快速入门

JAVA全系列 教程

面向对象的程序设计语言

Python全系列 教程

Python3.x版本,未来主流的版本

人工智能 教程

顺势而为,AI创新未来

大厂算法 教程

算法,程序员自我提升必经之路

C++ 教程

一门通用计算机编程语言

微服务 教程

目前业界流行的框架组合

web前端全系列 教程

通向WEB技术世界的钥匙

大数据全系列 教程

站在云端操控万千数据

AIGC全能工具班

A

A A

White Night

阅读(733)
赞(0)

PyTorch自动微分

image-20220612102420617

自动微分(Autograd)是什么

Autograd中文叫作自动微分,是PyTorch进行神经网络优化的核心。自动微分,顾名

思义就是PyTorch自动为我们计算微分(更多情况计算的是导数)。

例如:有一个向量x=(1,1),将它作为输入,接着,将输入乘以4得到向量z=(4,4),最后求

出长度并输出一个标量y,值为5.6569。从数学角度推导y关于x向量的微分

y=z12+z22=(4x1)2+(4x2)2=4x12+x22

根据这个关系不难分别计算y关于x1和x2的导数

yx1=(4x12+x22)x12.8284

如果一个输入需要经过比上面例子更多的计算步骤,那么靠人工去计算微分就变得力不

从心。幸运的是,PyTorch的Autograd技术可以帮助我们自动求出这些微分值。

PyTorch自动微分

复杂的计算可以被抽象成一张图(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

 

北京市昌平区回龙观镇南店村综合商业楼2楼226室

©2014-2023 百战卓越(北京)科技有限公司 All Rights Reserved.

京ICP备14032124号-2