Pytorch基础入门4
目录
- 4.3:求最小值
4.3:求最小值
下面讲一个小案例:使用自动微分机制配套使用SGD随机梯度下降来求函数最小值。
import torch x = torch.tensor(0.0,requires_grad=True)
a = torch.tensor(1.0)
b = torch.tensor(-2.0)
c= torch.tensor(1.0)optimizer = torch.optim.SGD(params=[x],lr=0.01)
print(optimizer)def f(x):result = a*torch.pow(x,2) +b*x +c return(result)for i in range(500):optimizer.zero_grad()y=f(x)y.backward()optimizer.step()
print("y=", y.data, ";", "x=", x.data)
结果如下:
SGD (
Parameter Group 0dampening: 0differentiable: Falseforeach: Nonefused: Nonelr: 0.01maximize: Falsemomentum: 0nesterov: Falseweight_decay: 0
)
y= tensor(0.) ; x= tensor(1.0000)