def validate()

in src/bert_train.py [0:0]


    def validate(self, loss_function, model_network, val_iter):
        # switch model to evaluation mode
        model_network.eval()

        # total loss
        val_loss = 0

        actuals = torch.tensor([], dtype=torch.long).to(device=self._default_device)
        predicted = torch.tensor([], dtype=torch.long).to(device=self._default_device)

        with torch.no_grad():
            for idx, val in enumerate(val_iter):
                val_batch_idx = val[0].to(device=self._default_device)
                val_y = val[1].to(device=self._default_device)

                pred_batch_y = model_network(val_batch_idx)[0]

                # compute loss
                val_loss += loss_function(pred_batch_y, val_y).item()

                actuals = torch.cat([actuals, val_y])
                pred_flat = torch.max(pred_batch_y, dim=1)[1].view(-1)
                predicted = torch.cat([predicted, pred_flat])

        # Average loss
        val_loss = val_loss / len(actuals)
        return actuals.cpu().tolist(), predicted.cpu().tolist(), val_loss