# 假设我们有3个累积量,比如损失、准确率和梯度。
accumulator = Accumulator(3)
# 在每个训练步骤中,我们可以调用 add 方法
for epoch in range(epochs):
for X, y in data_loader:
loss = model(X, y) # 假设这是计算损失的函数
accuracy = compute_accuracy(model, X, y)
# 将损失、准确率和梯度累加
accumulator.add(loss.item(), accuracy, model.parameters())
# 在每个epoch结束时,获取平均值
avg_loss, avg_accuracy, avg_gradient = accumulator.avg()
print(f"Epoch {epoch}: loss = {avg_loss}, accuracy = {avg_accuracy}")