PyTorch自动求导:让AI学会"自我反省"的魔法
大家好!这节课我们要拆解PyTorch最强大的"自省"功能——自动求导系统。这就像给AI装了个"后悔药生成器",让它能自己找出错误并改正。我会用做菜翻车的例子带大家理解整个过程!
1. 自动计算梯度:AI的"味觉反馈系统"
想象你在学做菜(训练模型):
- 每次做完(前向传播)都要尝一口(计算损失)
- 发现太咸了 → 知道盐放多了(梯度)
- 发现太甜了 → 知道糖放多了(另一个梯度)
PyTorch的requires_grad=True
就是开启"味觉记录仪":
import torch
# 准备"调料"(参数)
salt = torch.tensor(2.0, requires_grad=True) # 盐量
sugar = torch.tensor(3.0, requires_grad=True) # 糖量
def cook_dish(salt, sugar):
return salt**2 + sugar**3 # 假设这是"难吃程度"
# 第一次做菜
taste = cook_dish(salt, sugar)
print(f"初始难吃程度: {
taste.item():.2f}") # 输出: 2² + 3³ = 31
2. 反向传播:AI的"厨艺反思时间"
调用.backward()
就像请美食家点评:
- 他会告诉你盐糖各贡献了多少"难吃值"
# 开始反思!
taste.backward()
# 查看"反思笔记"(梯度)
print