pytorch.backward()
举例上手y=w*x,自动求导
import torch
from torch.autograd import Variable
x=Variable(torch.Tensor([2]))
y=Variable(torch.Tensor([10]))
w = Variable(torch.randn(1),requires_grad = True)
print(w)
loss=torch.nn.MSELoss()
optimizer=torch.optim.Adam([w],lr=0.05)
for i in range(1000):
optimizer.zero_grad()
y_=w*x
lo=y-y_
lo.backward()
optimizer.step()
if lo.item()<0.1:
print(lo)
print(w.grad.data)
print(w)
break
①首先定义输入x和标签y,以及随机初始的w。loss选l2,adam优化。
②计算初始化的y_与真实y的差值
③计算相应的损失
④backward自动求导,
⑤判断梯度的正负情况,反方向optimizer.step()按照lr自动更新w权重
⑥迭代N次,满足条件跳出。