def _load_state_vars(state, gtruth_df, median_win=None): pred_df = gtruth_df.copy() # Define dataloader many_hot_encoder = ManyHotEncoder.load_state_dict( state["many_hot_encoder"]) scaler = _load_scaler(state) crnn = _load_crnn(state) transforms_valid = get_transforms(cfg.max_frames, scaler=scaler, add_axis=0) strong_dataload = DataLoadDf(pred_df, many_hot_encoder.encode_strong_df, transforms_valid, return_indexes=True) strong_dataloader_ind = DataLoader(strong_dataload, batch_size=cfg.batch_size, drop_last=False) pooling_time_ratio = state["pooling_time_ratio"] many_hot_encoder = ManyHotEncoder.load_state_dict( state["many_hot_encoder"]) if median_win is None: median_win = state["median_window"] return { "model": crnn, "dataloader": strong_dataloader_ind, "pooling_time_ratio": pooling_time_ratio, "many_hot_encoder": many_hot_encoder, "median_window": median_win }
def _load_state_vars(state, gtruth_df, median_win=None): pred_df = gtruth_df.copy() # Define dataloader many_hot_encoder = ManyHotEncoder.load_state_dict(state["many_hot_encoder"]) scaler = _load_scaler(state) crnn = _load_crnn(state) # Note, need to unsqueeze axis 1 transforms_valid = get_transforms(cfg.max_frames, scaler=scaler, add_axis=1) # Note, no dataloader here strong_dataload = DataLoadDf(pred_df, many_hot_encoder.encode_strong_df, transforms_valid, return_indexes=True) pooling_time_ratio = state["pooling_time_ratio"] many_hot_encoder = ManyHotEncoder.load_state_dict(state["many_hot_encoder"]) if median_win is None: median_win = state["median_window"] return { "model": crnn, "dataload": strong_dataload, "pooling_time_ratio": pooling_time_ratio, "many_hot_encoder": many_hot_encoder, "median_window": median_win }
# ############## dataset = DESED(base_feature_dir=os.path.join(cfg.workspace, "dataset", "features"), compute_log=False) dfs = get_dfs(dataset, reduced_number_of_data) # 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,