Я пытаюсь обучить модель pytorch следующим образом:
start = time.time()
for epoch in range(100):
t_loss = 0
for i in range(100):
optimizer.zero_grad
scores = my_model(sent_dict_list[i])
scores = scores.permute(0, 2, 1)
loss = loss_function(scores, torch.tensor(targ_list[i]).cuda())
t_loss += loss.item()
loss.backward()
optimizer.step()
print("t_loss = ", t_loss)
Я обнаружил, что когда я вызываю "optimizer.zero_grad", моя потеря уменьшается в конце каждой эпохи, тогда как когда я вызываю "optimizer.zero_grad ()" с круглыми скобками, он остается почти таким же. Я не знаю, какое это имеет значение, и надеялся, что кто-нибудь сможет мне это объяснить.