| 96 | return outputs |
| 97 | |
| 98 | def _validation_end(self, outputs): |
| 99 | all_losses_meter = { |
| 100 | 'total_loss': utils.AvgrageMeter(), |
| 101 | } |
| 102 | for output in outputs: |
| 103 | n = output['nsamples'] |
| 104 | for k, v in output['losses'].items(): |
| 105 | if k not in all_losses_meter: |
| 106 | all_losses_meter[k] = utils.AvgrageMeter() |
| 107 | all_losses_meter[k].update(v, n) |
| 108 | all_losses_meter['total_loss'].update(output['total_loss'], n) |
| 109 | return {k: round(v.avg, 4) for k, v in all_losses_meter.items()} |
| 110 | |
| 111 | def run_model(self, model, sample, return_output=False): |
| 112 | txt_tokens = sample['txt_tokens'] # [B, T_t] |