Python全系列 教程
3567个小节阅读:5929.5k
目录
鸿蒙应用开发
C语言快速入门
JAVA全系列 教程
面向对象的程序设计语言
Python全系列 教程
Python3.x版本,未来主流的版本
人工智能 教程
顺势而为,AI创新未来
大厂算法 教程
算法,程序员自我提升必经之路
C++ 教程
一门通用计算机编程语言
微服务 教程
目前业界流行的框架组合
web前端全系列 教程
通向WEB技术世界的钥匙
大数据全系列 教程
站在云端操控万千数据
AIGC全能工具班
A A
White Night
计算输出值的过程称为“前向传播”
import torch
x = torch.ones(2)
# 在前向传播时就应该修改该属性值,目的是在反向传播时可以自动计算微分
x.requires_grad = True
# 可以查看此时x的grad、grad_fn属性,均没有值
z = 4 * x # 向量与实数相乘
y = z.norm() # 求z向量的长度
print(y)
反向传播(BP)是用来求解神经网络参数的重要方法
BP算法通过计算输出层结果与真实值之间的偏差(损失函数)来进行逐层调节参数
以线性模型为例:
调用输出节点的backward()方法PyTorch就会自动求出叶子节点的微分值
xxxxxxxxxx
y.backward() # 调用输出节点的backward()方法对整个图进行反向传播
print(x.grad) # 此时x向量的grad属性已更新为x向量的微分值
此时查看一下z与y的grad值,发现并没有改变,因为它们都不是叶子节点
1. 关于前向传播,下列说法正确的是:
A 前向传播是从输出节点开始的
B 为了计算自动微分,在前向传播时就应该修改grad_fn属性值
C 目的是计算叶子节点的值
D 前向传播从叶子节点开始追踪信息流
2. 关于反向传播,下列说法正确的是:
A 调用输出节点的backward()方法就会自动求出叶子节点的微分值
B 与前向传播没有任何关系
C 反向传播结束后中间节点的grad属性被更新了
D 以上说法均不正确
1=>D 2=>A