in code/train.py [0:0]
def test(model, test_loader, device):
model.eval()
losses = []
correct_predictions = 0
loss_fn = nn.CrossEntropyLoss().to(device)
tmp_eval_accuracy, eval_accuracy = 0, 0
with torch.no_grad():
for batch in test_loader:
b_input_ids = batch['input_ids'].to(device)
b_input_mask = batch['attention_mask'].to(device)
b_labels = batch['targets'].to(device)
outputs = model(b_input_ids,attention_mask=b_input_mask)
_, preds = torch.max(outputs, dim=1)
loss = loss_fn(outputs, b_labels)
correct_predictions += torch.sum(preds == b_labels)
losses.append(loss.item())
print('\nTest set: Validation loss: {:.4f}, Validation Accuracy: {:.0f}%\n'.format(
np.mean(losses),
100. * correct_predictions.double() / len(test_loader.dataset)))