| 61 | return total_loss, log_outputs |
| 62 | |
| 63 | def validation_step(self, sample, batch_idx): |
| 64 | outputs = {} |
| 65 | outputs['losses'] = {} |
| 66 | outputs['losses'], model_out = self.run_model(self.model, sample, return_output=True, infer=False) |
| 67 | outputs['total_loss'] = sum(outputs['losses'].values()) |
| 68 | outputs['nsamples'] = sample['nsamples'] |
| 69 | outputs = utils.tensors_to_scalars(outputs) |
| 70 | if batch_idx < hparams['num_valid_plots']: |
| 71 | _, model_out = self.run_model(self.model, sample, return_output=True, infer=True) |
| 72 | self.plot_mel(batch_idx, sample['mels'], model_out['mel_out']) |
| 73 | return outputs |
| 74 | |
| 75 | def build_scheduler(self, optimizer): |
| 76 | return torch.optim.lr_scheduler.StepLR(optimizer, hparams['decay_steps'], gamma=0.5) |