在下面的代码中,在每次l.backward()前都要trainer.zero_grad(),否则梯度会累加。
num_epochs 3
for epoch in range(num_epochs):for X, y in data_iter:l loss(net(X), y)trainer.zero_grad()l.backward()trainer.step()l loss(net(features), labe…
class Accumulator: #save"""在n个变量上累加。"""def __init__(self, n):self.data [0.0] * ndef add(self, *args):self.data [a float(b) for a, b in zip(self.data, args)]def reset(self):self.data [0.0] * len(self.data)def __get…