def METHOD_NAME(self):
    for i, item in enumerate(self.valid_generate_loader):
        if i >= self.config.generate_num:
            break
        print(
            '\n| Generating: {}/{}'.format(i + 1, self.config.generate_num))
        mel = item['feats']
        wav = item['wave']
        wav = wav.squeeze(0)
        origin_save_path = self.valid_samples_dir / '{}_steps_{}_target.wav'.format(
            self.iteration, i)
        sf.write(origin_save_path, wav.numpy(), samplerate=self.config.fs)
        if self.config.inference.gen_batched:
            batch_str = 'gen_batched_target{}_overlap{}'.format(
                self.config.inference.target, self.config.inference.overlap)
        else:
            batch_str = 'gen_not_batched'
        gen_save_path = str(self.valid_samples_dir /
                            '{}_steps_{}_{}.wav'.format(self.iteration, i,
                                                        batch_str))
        # (1, T, C_aux) -> (T, C_aux)
        mel = mel.squeeze(0)
        gen_sample = self.model.generate(
            mel, self.config.inference.gen_batched,
            self.config.inference.target, self.config.inference.overlap,
            self.config.mu_law)
        sf.write(
            gen_save_path, gen_sample.numpy(), samplerate=self.config.fs)