xref: /aosp_15_r20/external/pytorch/benchmarks/dynamo/check_csv.py (revision da0073e96a02ea20f0ac840b70461e3646d07c45)
1*da0073e9SAndroid Build Coastguard Workerimport argparse
2*da0073e9SAndroid Build Coastguard Workerimport sys
3*da0073e9SAndroid Build Coastguard Workerimport textwrap
4*da0073e9SAndroid Build Coastguard Worker
5*da0073e9SAndroid Build Coastguard Workerimport pandas as pd
6*da0073e9SAndroid Build Coastguard Worker
7*da0073e9SAndroid Build Coastguard Worker
8*da0073e9SAndroid Build Coastguard Workerdef check_csv(filename):
9*da0073e9SAndroid Build Coastguard Worker    """
10*da0073e9SAndroid Build Coastguard Worker    Basic accuracy checking.
11*da0073e9SAndroid Build Coastguard Worker    """
12*da0073e9SAndroid Build Coastguard Worker
13*da0073e9SAndroid Build Coastguard Worker    df = pd.read_csv(filename)
14*da0073e9SAndroid Build Coastguard Worker
15*da0073e9SAndroid Build Coastguard Worker    failed = []
16*da0073e9SAndroid Build Coastguard Worker    for _, row in df.iterrows():
17*da0073e9SAndroid Build Coastguard Worker        model_name = row["name"]
18*da0073e9SAndroid Build Coastguard Worker        status = row["accuracy"]
19*da0073e9SAndroid Build Coastguard Worker        if "pass" not in status:
20*da0073e9SAndroid Build Coastguard Worker            failed.append(model_name)
21*da0073e9SAndroid Build Coastguard Worker
22*da0073e9SAndroid Build Coastguard Worker        print(f"{model_name:34} {status}")
23*da0073e9SAndroid Build Coastguard Worker
24*da0073e9SAndroid Build Coastguard Worker    if failed:
25*da0073e9SAndroid Build Coastguard Worker        print(
26*da0073e9SAndroid Build Coastguard Worker            textwrap.dedent(
27*da0073e9SAndroid Build Coastguard Worker                f"""
28*da0073e9SAndroid Build Coastguard Worker                Error {len(failed)} models failed
29*da0073e9SAndroid Build Coastguard Worker                    {' '.join(failed)}
30*da0073e9SAndroid Build Coastguard Worker                """
31*da0073e9SAndroid Build Coastguard Worker            )
32*da0073e9SAndroid Build Coastguard Worker        )
33*da0073e9SAndroid Build Coastguard Worker        sys.exit(1)
34*da0073e9SAndroid Build Coastguard Worker
35*da0073e9SAndroid Build Coastguard Worker
36*da0073e9SAndroid Build Coastguard Workerif __name__ == "__main__":
37*da0073e9SAndroid Build Coastguard Worker    parser = argparse.ArgumentParser()
38*da0073e9SAndroid Build Coastguard Worker    parser.add_argument("--file", "-f", type=str, help="csv file name")
39*da0073e9SAndroid Build Coastguard Worker    args = parser.parse_args()
40*da0073e9SAndroid Build Coastguard Worker    check_csv(args.file)
41