for epoch in range(0, EPOCHS): model.train() training_loss = 0 for batch in train_dataloader: batch_token_ids = batch[0].to(device) batch_attention_mask = batch[1].to(device) batch_labels = batch[2].to(device) model.zero_grad() loss, logits = model( batch_token_ids, token_type_ids = None, attention_mask=batch_attention_mask, labels=batch_labels, return_dict=False) training_loss += loss.item() loss.backward() torch.nn.utils.clip_grad_norm_(model.parameters(), 1.0) optimizer.step() scheduler.step() average_train_loss = training_loss / len(train_dataloader)