import argparse from collections import defaultdict from pathlib import Path from pprint import pprint import matplotlib import matplotlib.pyplot as plt from ..settings import EVAL_PATH from ..visualization.global_frame import GlobalFrame from ..visualization.two_view_frame import TwoViewFrame from . import get_benchmark from .eval_pipeline import load_eval if __name__ == "__main__": parser = argparse.ArgumentParser() parser.add_argument("benchmark", type=str) parser.add_argument("--x", type=str, default=None) parser.add_argument("--y", type=str, default=None) parser.add_argument("--backend", type=str, default=None) parser.add_argument( "--default_plot", type=str, default=TwoViewFrame.default_conf["default"] ) parser.add_argument("dotlist", nargs="*") args = parser.parse_intermixed_args() output_dir = Path(EVAL_PATH, args.benchmark) results = {} summaries = defaultdict(dict) predictions = {} if args.backend: matplotlib.use(args.backend) bm = get_benchmark(args.benchmark) loader = bm.get_dataloader() for name in args.dotlist: experiment_dir = output_dir / name pred_file = experiment_dir / "predictions.h5" s, results[name] = load_eval(experiment_dir) predictions[name] = pred_file for k, v in s.items(): summaries[k][name] = v pprint(summaries) plt.close("all") frame = GlobalFrame( {"child": {"default": args.default_plot}, **vars(args)}, results, loader, predictions, child_frame=TwoViewFrame, ) frame.draw() plt.show()