MLP基础解释:
torch实现梯度的计算。
代码实现链式法则计算。
MLP计算过程推导
梯度计算
核心API使用实例:
手动求导
自动求导:
Softmax求导例子:
求导的链式法则
乘积原则:
链式法则:
代码:
import torch
# import torch.autograd
x =torch.tensor(1.)
w1 = torch.tensor(2.,requires_grad=True)
b1 = torch.tensor(1.)
w2 = torch.tensor(2.,requires_grad=True)
b2 = torch.tensor(1.)
y1 = x*w1+b1
y2 = y1*w2+b2
dy2_dy1 = torch.autograd.grad(y2,[y1],retain_graph=True)[0]
dy1_dw1 = torch.autograd.grad(y1,[w1],retain_graph=True)[0]
dy2_dw1 = torch.autograd.grad(y2,[w1],retain_graph=True)[0]
print(dy2_dy1)
print(dy1_dw1)
print(dy2_dw1)
MLP反向传播过程图解
公式推导: