def download_and_eval_all()

in scripts/eval_all.py [0:0]


def download_and_eval_all(num_threads):
    data = []
    downloaded = download_all()
    for params, net_path in downloaded:
        epoch = params.pop("epoch")
        metrics = run_eval(
            net_path, num_threads=num_threads, num_repeats=NUM_REPEATS, **params
        )
        data.append(
            dict(
                eval_type="full",
                exploitability=float(metrics["full_tree"]),
                epoch=epoch,
                **params,
            )
        )
        data.append(
            dict(
                eval_type="rebel",
                exploitability=float(metrics[f"repeated toleaf {NUM_REPEATS}"]),
                epoch=epoch,
                **params,
            )
        )
    if pd is not None:
        df = pd.DataFrame(data)
        print("Average exploitability over 3 epochs")
        print(
            df.pivot_table(
                "exploitability", ["eval_type", "solver"], ["num_dice", "num_faces"]
            )
        )
    else:
        for row in data:
            print(row)