def _load_scaler(state): scaler_state = state["scaler"] type_sc = scaler_state["type"] if type_sc == "ScalerPerAudio": scaler = ScalerPerAudio(*scaler_state["args"]) elif type_sc == "Scaler": scaler = Scaler() else: raise NotImplementedError("Not the right type of Scaler has been saved in state") scaler.load_state_dict(state["scaler"]["state_dict"]) return scaler
# Meta path for psds durations_synth = get_durations_df(cfg.synthetic) many_hot_encoder = ManyHotEncoder(cfg.classes, n_frames=cfg.max_frames // pooling_time_ratio) encod_func = many_hot_encoder.encode_strong_df # Normalisation per audio or on the full dataset if cfg.scaler_type == "dataset": transforms = get_transforms(cfg.max_frames, add_axis=add_axis_conv) weak_data = DataLoadDf(dfs["weak"], encod_func, transforms) unlabel_data = DataLoadDf(dfs["unlabel"], encod_func, transforms) train_synth_data = DataLoadDf(dfs["train_synthetic"], encod_func, transforms) scaler_args = [] scaler = Scaler() # # Only on real data since that's our final goal and test data are real scaler.calculate_scaler( ConcatDataset([weak_data, unlabel_data, train_synth_data])) logger.debug(f"scaler mean: {scaler.mean_}") else: scaler_args = ["global", "min-max"] scaler = ScalerPerAudio(*scaler_args) transforms = get_transforms(cfg.max_frames, scaler, add_axis_conv, noise_dict_params={ "mean": 0., "snr": cfg.noise_snr })