total_epoch = 5000 for i inrange(total_epoch): y_predict = linear_net(x_data) loss = mse_loss(y_predict, y_data) loss.backward() sgd_optimizer.step() sgd_optimizer.clear_grad() if i % 1000 == 0: print("epoch {} loss {}".format(i, loss.numpy())) print("finished training, loss {}".format(loss.numpy()))
print("w after optimize: {}".format(w_after_opt)) print("b after optimize: {}".format(b_after_opt))
1 2 3 4 5 6 7 8 9 10
w before optimize: -0.7358073592185974 b before optimize: 0.0 epoch 0 loss [1306.1525] epoch 1000 loss [7.9669347] epoch 2000 loss [1.7813568] epoch 3000 loss [0.398295] epoch 4000 loss [0.08905686] finished training, loss [0.01994304] w after optimize: 2.0179829597473145 b after optimize: 9.770061492919922
w before optimize: 1.22589910030365 b before optimize: 0.0 epoch 0 loss [285.37732] epoch 1000 loss [8.218707] epoch 2000 loss [1.837638] epoch 3000 loss [0.41088742] epoch 4000 loss [0.09187372] epoch 5000 loss [0.02054264] epoch 6000 loss [0.0045935] epoch 7000 loss [0.00102726] epoch 8000 loss [0.00022973] epoch 9000 loss [5.1476392e-05] finished training, loss [1.1549835e-05] w after optimize: 2.0004327297210693 b after optimize: 9.994466781616211