from __future__ import annotations import argparse import json from pathlib import Path import numpy as np import pandas as pd from affinity.metrics import regression_metrics def evaluate(artifact_directory: str) -> dict[str, float]: artifact = Path(artifact_directory) predictions = pd.read_csv(artifact / "test_predictions.csv") metrics = regression_metrics( predictions["label"].to_numpy(), predictions["prediction"].to_numpy(), ) print(json.dumps(metrics, indent=2)) return metrics def main() -> None: parser = argparse.ArgumentParser(description="Report held-out test metrics") parser.add_argument("--artifacts", default="/content/artifacts/affinity") args = parser.parse_args() evaluate(args.artifacts) if __name__ == "__main__": main()