From 2d05480174c736399c212b3d60b8774fbbf2b6c2 Mon Sep 17 00:00:00 2001 From: Suraj Patil Date: Fri, 15 May 2020 00:09:44 +0530 Subject: [PATCH] Fix trainer evaluation (#4363) * fix loss calculation in evaluation * fix evaluation on TPU when prediction_loss_only is True --- src/transformers/trainer.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/transformers/trainer.py b/src/transformers/trainer.py index a3b630011d..251f0dd4bc 100644 --- a/src/transformers/trainer.py +++ b/src/transformers/trainer.py @@ -679,7 +679,7 @@ class Trainer: model.eval() for inputs in tqdm(dataloader, desc=description): - has_labels = any(inputs.get(k) is not None for k in ["labels", "masked_lm_labels"]) + has_labels = any(inputs.get(k) is not None for k in ["labels", "lm_labels", "masked_lm_labels"]) for k, v in inputs.items(): inputs[k] = v.to(self.args.device) @@ -703,7 +703,7 @@ class Trainer: else: label_ids = np.append(label_ids, inputs["labels"].detach().cpu().numpy(), axis=0) - if is_tpu_available(): + if is_tpu_available() and preds is not None and label_ids is not None: # tpu-comment: Get all predictions and labels from all worker shards of eval dataset preds = xm.mesh_reduce("eval_preds", preds, np.concatenate) label_ids = xm.mesh_reduce("eval_out_label_ids", label_ids, np.concatenate)