实例代码
我们先来看一个简单的代码: 1
2
3
4
5
6import torch
x = torch.tensor([1.0, 2.0], requires_grad=True)
y = x**2
loss = y.mean()
loss.backward()
正向传播
- x = [1.0, 2.0]
- y = [1.0, 4.0]
- loss = (1.0 + 4.0) /2
反向传播
均值函数对于每一个元素的梯度为\(\frac{1}{n}\),其中n为元素个数。
- \(\partial loss / \partial y_i=1/n\),其中n=2
- \(\partial y_i / \partial x_i= 2*x_i\)
- 根据链式法则:\(\frac{\partial loss}{\partial x_i} = \frac{1}{2}*2*x_i=x_i\)