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

Switch to side-by-side view

--- a
+++ b/src/ensemble.py
@@ -0,0 +1,49 @@
+import os
+import pandas as pd
+import numpy as np
+from dataset import LABEL_COLS
+
+
+if __name__ == '__main__':
+    target_cols = LABEL_COLS
+    test_csv = "./csv/patient2_kfold/test.csv"
+    pred_paths = [
+        '/logs/prediction/densenet169-mw-512-resume-0/test_0_ckp_tta.npy',
+        '/logs/prediction/densenet169-mw-512-resume-1/test_1_ckp_tta.npy',
+        '/logs/prediction/densenet169-mw-512-resume-2/test_2_ckp_tta.npy',
+        "/logs/prediction/densenet169-mw-512-resume-3/test_3_ckp_tta.npy",
+        "/logs/prediction/densenet169-mw-512-resume-4/test_4_ckp_tta.npy"
+        # '/logs/predictions/se_resnext50_32x4d-mw-512-recheck-0/test_0.npy',
+    ]
+
+    test_preds = 0
+    for pred in pred_paths:
+        test_preds += np.load(pred)
+
+    test_preds = test_preds / len(pred_paths)
+
+    test_df = pd.read_csv(test_csv)
+    test_df["sop_instance_uid"] = "ID_" + test_df["sop_instance_uid"]
+    test_ids = test_df['sop_instance_uid'].values
+
+    ids = []
+    labels = []
+    for i, id in enumerate(test_ids):
+        pred = test_preds[i]
+        for j, target in enumerate(target_cols):
+            id_target = id + "_" + target
+            ids.append(id_target)
+            labels.append(pred[j])
+        # if not with_any:
+        #     id_target = id + "_" + "any"
+        #     ids.append(id_target)
+        #     labels.append(pred.max())
+
+    submission_df = pd.DataFrame({
+        'ID': ids,
+        'Label': labels
+    })
+
+    os.makedirs(f"/logs/prediction/ensemble/", exist_ok=True)
+
+    submission_df.to_csv(f"/logs/prediction/ensemble/densenet169-mww-512-5folds_tta.csv", index=False)