import torch
x_data=[1.0,2.0,3.0]
y_data=[2.0,4.0,6.0]
w=torch.Tensor([1.0])
w.requires_grad=True#该tensor需要计算梯度
def forward(x):
return x*w
def loss(x,y):
y_pred=forward(x)
return (y_pred-y)**2
print("predict(before traning)",4,forward(4).item())
for epoch in range(100):
for x,y in zip(x_data,y_data):
l=loss(x,y)#forward
l.backward()#反向计算权重的导数
print('\tgrad:',x,y,w.grad.item())
w.data=w.data-0.01*w.grad.data#权重更新
w.grad.data.zero_()#权重中关于权重的梯度全部清零
print("progress:",epoch,l.item())
print("predict(after training)",4,forward(4).item())
过程中出现UserWarning: mkl-service package failed to import报错 安装mkl_service后解决。