GeoCalib / siclib /eval /inspect.py
veichta's picture
Upload folder using huggingface_hub
205a7af verified
import argparse
from collections import defaultdict
from pathlib import Path
from pprint import pprint
import matplotlib
import matplotlib.pyplot as plt
from siclib.eval import get_benchmark
from siclib.eval.eval_pipeline import load_eval
from siclib.settings import EVAL_PATH
from siclib.visualization.global_frame import GlobalFrame
from siclib.visualization.two_view_frame import TwoViewFrame
# flake8: noqa
# mypy: ignore-errors
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()