From 46b97049dc88f9bbca6fd63f1001c63e3127aa4b Mon Sep 17 00:00:00 2001 From: James Betker Date: Fri, 11 Feb 2022 10:59:32 -0700 Subject: [PATCH] Fix eval --- codes/sweep.py | 2 +- codes/trainer/eval/audio_diffusion_fid.py | 7 +++++-- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/codes/sweep.py b/codes/sweep.py index b4654b60..9de2b126 100644 --- a/codes/sweep.py +++ b/codes/sweep.py @@ -32,7 +32,7 @@ if __name__ == '__main__': 'less_resblocks': {'networks': {'generator': {'kwargs': {'num_res_blocks': [1, 1, 1, 1, 1, 1, 1]}}}}, 'wider': {'networks': {'generator': {'kwargs': {'channel_mult': [1,2,4,6,8,8,8]}}}}, 'inject_every_layer': {'networks': {'generator': {'kwargs': {'token_conditioning_resolutions': [1,2,4,8,16,32,64]}}}}, - 'deep_conditioning': {'networks': {'generator': {'kwargs': {'cond_transformer_depth': 12}}}}, + 'cosine_diffusion': {'steps': {'generator': {'injectors': {'diffusion': {'beta_schedule': {'schedule_name': 'cosine'}}}}}}, } opt = option.parse(base_opt, is_train=True) all_opts = [] diff --git a/codes/trainer/eval/audio_diffusion_fid.py b/codes/trainer/eval/audio_diffusion_fid.py index c38d6c7a..b6fd39a9 100644 --- a/codes/trainer/eval/audio_diffusion_fid.py +++ b/codes/trainer/eval/audio_diffusion_fid.py @@ -17,7 +17,7 @@ from data.audio.unsupervised_audio_dataset import load_audio from scripts.audio.gen.speech_synthesis_utils import load_discrete_vocoder_diffuser -class StyleTransferEvaluator(evaluator.Evaluator): +class AudioDiffusionFid(evaluator.Evaluator): """ Evaluator produces generate from a diffusion model, then uses a pretrained wav2vec model to compute a frechet distance between real and fake samples. @@ -31,7 +31,10 @@ class StyleTransferEvaluator(evaluator.Evaluator): else: self.skip = 1 diffusion_steps = opt_get(opt_eval, ['diffusion_steps'], 50) - diffusion_schedule = opt_get(opt_eval, ['diffusion_schedule'], 'cosine') + diffusion_schedule = opt_get(env['opt'], ['steps', 'generator', 'injectors', 'diffusion', 'beta_schedule', 'schedule_name'], None) + if diffusion_schedule is None: + print("Unable to infer diffusion schedule from master options. Getting it from eval (or guessing).") + diffusion_schedule = opt_get(opt_eval, ['diffusion_schedule'], 'cosine') self.diffuser = load_discrete_vocoder_diffuser(desired_diffusion_steps=diffusion_steps, schedule=diffusion_schedule) self.dev = self.env['device']