INNER CODE UNIT · Python
tgt
lucidrains/x-transformers · train_discover_reversal.py:123
tgt = src.flip(-1)
logits = model(src, tgt)
loss = torch.nn.functional.cross_entropy(logits.reshape(-1, num_tokens), tgt.reshape(-1))
loss.backward()
optimizer.step()
optimizer.zero_grad()
if (i + 1) % 1000 == 0:
accs = evaluate()
if sum(accs.values()) > best_acc:
best_acc = sum(accs.values())
best_state = {name: param.detach().clone() for name, param in model.named_parameters()}
print(f'step {i + 1}: loss {loss.item():.3f} | accuracy by length ' + ' '.join(f'len {l}: {a:.3f}' for l, a in accs.items()), flush = True)