def load_all_results(): """Read all result files and compute all metrics""" all_runs_by_dataset = {'batch': {}, 'non-batch': {}} all_runs_by_algorithm = {'batch': {}, 'non-batch': {}} cached_true_dist = [] old_sdn = None for properties, f in results.load_all_results(): sdn = get_run_desc(properties) if sdn != old_sdn: dataset = get_dataset(properties["dataset"]) cached_true_dist = list(dataset["distances"]) old_sdn = sdn algo = properties["algo"] ms = compute_all_metrics(cached_true_dist, f, properties, args.recompute) algo_ds = get_dataset_label(sdn) idx = "non-batch" if properties["batch_mode"]: idx = "batch" all_runs_by_algorithm[idx].setdefault(algo, {}).setdefault(algo_ds, []).append(ms) all_runs_by_dataset[idx].setdefault(sdn, {}).setdefault(algo, []).append(ms) return (all_runs_by_dataset, all_runs_by_algorithm)
def load_all_results(): """Read all result files and compute all metrics""" all_runs_by_dataset = {'batch': {}, 'non-batch': {}} all_runs_by_algorithm = {'batch': {}, 'non-batch': {}} cached_true_dist = [] old_sdn = None for mode in ["non-batch", "batch"]: for properties, f in results.load_all_results( batch_mode=(mode == "batch")): sdn = get_run_desc(properties) if sdn != old_sdn: dataset = get_dataset(properties["dataset"]) cached_true_dist = list(dataset["distances"]) old_sdn = sdn algo_ds = get_dataset_label(sdn) desc_suffix = ("-batch" if mode == "batch" else "") algo = properties["algo"] + desc_suffix sdn += desc_suffix ms = compute_all_metrics(cached_true_dist, f, properties, args.recompute) all_runs_by_algorithm[mode].setdefault(algo, {}).setdefault( algo_ds, []).append(ms) all_runs_by_dataset[mode].setdefault(sdn, {}).setdefault(algo, []).append(ms) return (all_runs_by_dataset, all_runs_by_algorithm)
def load_all_results(): """Read all result files and compute all metrics""" all_runs_by_dataset = {} all_runs_by_algorithm = {} cached_true_dist = [] old_sdn = None for f in results.load_all_results(): properties = dict(f.attrs) # TODO Fix this properly. Sometimes the hdf5 file returns bytes # This converts these bytes to strings before we work with them for k in properties.keys(): try: properties[k]= properties[k].decode() except: pass sdn = get_run_desc(properties) if sdn != old_sdn: dataset = get_dataset(properties["dataset"]) cached_true_dist = list(dataset["distances"]) old_sdn = sdn algo = properties["algo"] ms = compute_all_metrics(cached_true_dist, f, properties["algo"]) algo_ds = get_dataset_label(sdn) all_runs_by_algorithm.setdefault(algo, {}).setdefault(algo_ds, []).append(ms) all_runs_by_dataset.setdefault(sdn, {}).setdefault(algo, []).append(ms) return (all_runs_by_dataset, all_runs_by_algorithm)
def load_all_results(): """Read all result files and compute all metrics""" all_runs_by_dataset = {'batch': {}, 'non-batch': {}} all_runs_by_algorithm = {'batch': {}, 'non-batch': {}} cached_true_dist = [] old_sdn = None for properties, f in results.load_all_results(): sdn = get_run_desc(properties) if sdn != old_sdn: dataset = get_dataset(properties["dataset"]) cached_true_dist = list(dataset["distances"]) old_sdn = sdn algo = properties["algo"] ms = compute_all_metrics( cached_true_dist, f, properties, args.recompute) algo_ds = get_dataset_label(sdn) idx = "non-batch" if properties["batch_mode"]: idx = "batch" all_runs_by_algorithm[idx].setdefault( algo, {}).setdefault(algo_ds, []).append(ms) all_runs_by_dataset[idx].setdefault( sdn, {}).setdefault(algo, []).append(ms) return (all_runs_by_dataset, all_runs_by_algorithm)