Diff of /src/ensemble.py [000000] .. [95f789]

Switch to unified view

a b/src/ensemble.py
1
import os
2
import pandas as pd
3
import numpy as np
4
from dataset import LABEL_COLS
5
6
7
if __name__ == '__main__':
8
    target_cols = LABEL_COLS
9
    test_csv = "./csv/patient2_kfold/test.csv"
10
    pred_paths = [
11
        '/logs/prediction/densenet169-mw-512-resume-0/test_0_ckp_tta.npy',
12
        '/logs/prediction/densenet169-mw-512-resume-1/test_1_ckp_tta.npy',
13
        '/logs/prediction/densenet169-mw-512-resume-2/test_2_ckp_tta.npy',
14
        "/logs/prediction/densenet169-mw-512-resume-3/test_3_ckp_tta.npy",
15
        "/logs/prediction/densenet169-mw-512-resume-4/test_4_ckp_tta.npy"
16
        # '/logs/predictions/se_resnext50_32x4d-mw-512-recheck-0/test_0.npy',
17
    ]
18
19
    test_preds = 0
20
    for pred in pred_paths:
21
        test_preds += np.load(pred)
22
23
    test_preds = test_preds / len(pred_paths)
24
25
    test_df = pd.read_csv(test_csv)
26
    test_df["sop_instance_uid"] = "ID_" + test_df["sop_instance_uid"]
27
    test_ids = test_df['sop_instance_uid'].values
28
29
    ids = []
30
    labels = []
31
    for i, id in enumerate(test_ids):
32
        pred = test_preds[i]
33
        for j, target in enumerate(target_cols):
34
            id_target = id + "_" + target
35
            ids.append(id_target)
36
            labels.append(pred[j])
37
        # if not with_any:
38
        #     id_target = id + "_" + "any"
39
        #     ids.append(id_target)
40
        #     labels.append(pred.max())
41
42
    submission_df = pd.DataFrame({
43
        'ID': ids,
44
        'Label': labels
45
    })
46
47
    os.makedirs(f"/logs/prediction/ensemble/", exist_ok=True)
48
49
    submission_df.to_csv(f"/logs/prediction/ensemble/densenet169-mww-512-5folds_tta.csv", index=False)