num_epochs =3for epoch inrange(num_epochs):for X, y in data_iter:
l = loss(net(X), y)
trainer.zero_grad()#先把梯度清零
l.backward()
trainer.step()
l = loss(net(features), labels)print(f'epoch {epoch +1}, loss {l:f}')
epoch 1, loss 0.000191
epoch 2, loss 0.000106
epoch 3, loss 0.000106
比较生成数据集的真实参数和通过有限数据训练获得的模型参数
w = net[0].weight.data
print('w的估计误差:', true_w - w.reshape(true_w.shape))
b = net[0].bias.data
print('b的估计误差:', true_b - b)