‘a = Variable(torch.rand(1),requires_grad = True)
b = Variable(torch.rand(1),requires_grad = True)
print("initial paraments",[a,b])
learning_rate = 0.0001
for i in range(10000):
predictions = a.expand_as(x) * x + b.expand_as(x)
loss = torch.mean((predictions-y)**2)
print("loss",loss)
loss.backward()
a.data.add_(-learning_rate * a.grad.data)
b.data.add_(-learning_rate * b.grad.data)
a.grad.data.zero_()
b.grad.data.zero_()’