if __name__ == '__main__': x, y = load_data() net = TaxiFareNetWork() print("初始化的参数 w 为:{}".format(net.w)) print("初始化的参数 b 为:{}".format(net.b)) loss = [] i = 1 while i <= 4000: i += 1 predict = net.forward(x) print("第{}次的 loss 是:{}".format(i, net.loss(x, y))) loss.append(net.loss(x, y)) net.backward(x, y, 0.0003) print("反向传播{}次后的参数 w 为:{}".format(i, net.w)) print("反向传播{}次后的参数 b 为:{}".format(i, net.b)) print("参数 w 为:{}".format(net.w)) print("参数 b 为:{}".format(net.b)) plt.plot(range(4000), loss) plt.axis('on') plt.xlim(-1, 5) # 先看看前五次的 loss 下降情况 plt.ylim(-1, 30000) plt.show()
初始化的参数 w 为:[0.36126102] 初始化的参数 b 为:[0.57100856] 第1次的 loss 是:27980.125927155328 w_grad:-13390.06942482138 b_grad:-2273.4623286746223 反向传播1次后的参数 w 为:[4.37828185] 反向传播1次后的参数 b 为:[1.25304726] 第2次的 loss 是:1504.3688073626174 w_grad:624.2819937729694 b_grad:-176.66294095394446 反向传播2次后的参数 w 为:[4.19099725] 反向传播2次后的参数 b 为:[1.30604614] 第3次的 loss 是:1432.896342611712
...
第4000次的 loss 是:3.4469435025813155e-23 反向传播4000次后的参数 w 为:[2.6] 反向传播4000次后的参数 b 为:[12.] 第4001次的 loss 是:3.3926864383811195e-23 反向传播4001次后的参数 w 为:[2.6] 反向传播4001次后的参数 b 为:[12.] 参数 w 为:[2.6] 参数 b 为:[12.]
if __name__ == '__main__': x, y = load_data() net = TaxiFareNetWork() print("初始化的参数 w 为:{}".format(net.w)) print("初始化的参数 b 为:{}".format(net.b)) i = 1 with LogWriter(logdir="./log/scalar_test/train") as writer: while i <= 4000: predict = net.forward(x) # print("第{}次的 loss 是:{}".format(i, net.loss(x, y))) # 使用scalar组件记录一个标量数据 writer.add_scalar(tag="loss", step=i, value=net.loss(x, y)) net.backward(x, y, 0.0003) # print("反向传播{}次后的参数 w 为:{}".format(i, net.w)) # print("反向传播{}次后的参数 b 为:{}".format(i, net.b)) writer.add_scalar(tag="w", step=i, value=net.w[0]) writer.add_scalar(tag="b", step=i, value=net.b[0]) i += 1 print("参数 w 为:{}".format(net.w)) print("参数 b 为:{}".format(net.b))