diff --git a/ablations/10_plateau_breakthrough/workspace/convnext_research_20261010/32X32_temporal_cnv1_k3_seed3407/progress.json b/ablations/10_plateau_breakthrough/workspace/convnext_research_20261010/32X32_temporal_cnv1_k3_seed3407/progress.json new file mode 100644 index 0000000000000000000000000000000000000000..4a52350be8c0f691f90f3a384019512f4f7640ff --- /dev/null +++ b/ablations/10_plateau_breakthrough/workspace/convnext_research_20261010/32X32_temporal_cnv1_k3_seed3407/progress.json @@ -0,0 +1,8 @@ +{ + "epoch": 100, + "loss": 0.5530857153629002, + "val_miou": 0.3381479975662558, + "best_val_miou": 0.34346012177732077, + "seconds": 5.427879343740642, + "peak_allocated_gb": 1.029179392 +} \ No newline at end of file diff --git a/ablations/10_plateau_breakthrough/workspace/convnext_research_20261010/32X32_temporal_cnv1_k3_seed3407/selection.json b/ablations/10_plateau_breakthrough/workspace/convnext_research_20261010/32X32_temporal_cnv1_k3_seed3407/selection.json new file mode 100644 index 0000000000000000000000000000000000000000..81e17ec4f5eb94097678f866a54d6f26503640eb --- /dev/null +++ b/ablations/10_plateau_breakthrough/workspace/convnext_research_20261010/32X32_temporal_cnv1_k3_seed3407/selection.json @@ -0,0 +1,4260 @@ +{ + "kind": "temporal_cnv1_k3", + "seed": 3407, + "checkpoint_epoch": 63, + "standalone": { + "miou": 0.34346012177732077, + "oa": 0.673718147834749, + "macro_f1": 0.44136850495727636, + "kappa": 0.6378031880460475, + "per_class_iou": [ + 0.7457516694717411, + 0.6644708752668497, + 0.6450739061303811, + 0.0344748333716387, + 0.7722526106414719, + 0.0068634179821551134, + 0.4754888829359764, + 0.7023994667851589, + 0.2976242530243405, + 0.005257623554153523, + 0.6383144318434512, + 0.04287589324777599, + 0.0, + 0.2883046237533998, + 0.3703118831425187, + 0.3601833660772757, + 0.00878972278566599, + 0.12384473197781885 + ], + "confusion_matrix": [ + [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + [ + 0, + 13736, + 141, + 345, + 10, + 8, + 65, + 61, + 618, + 17, + 22, + 474, + 1, + 3, + 934, + 11, + 296, + 30, + 8, + 0 + ], + [ + 0, + 117, + 10894, + 556, + 349, + 3, + 13, + 1, + 1, + 16, + 144, + 245, + 2, + 0, + 41, + 53, + 25, + 16, + 1, + 0 + ], + [ + 0, + 203, + 901, + 10954, + 176, + 1, + 0, + 249, + 16, + 26, + 9, + 16, + 4, + 16, + 204, + 194, + 43, + 1, + 855, + 0 + ], + [ + 0, + 55, + 1364, + 74, + 150, + 18, + 4, + 0, + 0, + 46, + 195, + 0, + 24, + 18, + 38, + 38, + 0, + 19, + 4, + 0 + ], + [ + 0, + 100, + 3, + 43, + 24, + 4659, + 0, + 0, + 0, + 840, + 26, + 0, + 0, + 0, + 22, + 29, + 0, + 43, + 0, + 0 + ], + [ + 0, + 39, + 188, + 137, + 806, + 0, + 20, + 230, + 161, + 0, + 245, + 369, + 0, + 0, + 117, + 30, + 51, + 13, + 2, + 0 + ], + [ + 0, + 14, + 0, + 45, + 89, + 0, + 0, + 3550, + 116, + 418, + 0, + 57, + 643, + 0, + 31, + 0, + 393, + 0, + 23, + 0 + ], + [ + 0, + 22, + 2, + 0, + 0, + 0, + 0, + 8, + 6323, + 0, + 0, + 54, + 0, + 0, + 26, + 0, + 21, + 0, + 142, + 0 + ], + [ + 0, + 0, + 8, + 66, + 28, + 10, + 0, + 8, + 0, + 2042, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 4, + 0, + 0 + ], + [ + 0, + 94, + 781, + 39, + 71, + 0, + 15, + 0, + 0, + 0, + 10, + 0, + 0, + 0, + 26, + 142, + 23, + 1, + 0, + 0 + ], + [ + 0, + 206, + 271, + 0, + 0, + 0, + 376, + 23, + 26, + 0, + 0, + 5741, + 0, + 0, + 44, + 0, + 47, + 0, + 8, + 0 + ], + [ + 0, + 58, + 22, + 412, + 212, + 195, + 14, + 982, + 298, + 2829, + 42, + 429, + 294, + 2, + 33, + 102, + 15, + 55, + 52, + 0 + ], + [ + 0, + 3, + 21, + 122, + 34, + 0, + 0, + 242, + 24, + 110, + 6, + 25, + 133, + 0, + 48, + 14, + 6, + 0, + 8, + 0 + ], + [ + 0, + 489, + 19, + 28, + 0, + 0, + 19, + 100, + 488, + 27, + 0, + 305, + 4, + 0, + 1590, + 0, + 432, + 0, + 3, + 0 + ], + [ + 0, + 41, + 13, + 656, + 4, + 6, + 0, + 0, + 0, + 51, + 0, + 0, + 0, + 0, + 136, + 938, + 0, + 1, + 63, + 0 + ], + [ + 0, + 54, + 0, + 25, + 0, + 0, + 0, + 67, + 552, + 2, + 0, + 188, + 0, + 0, + 280, + 0, + 1650, + 1, + 10, + 0 + ], + [ + 0, + 76, + 177, + 244, + 499, + 0, + 0, + 0, + 0, + 275, + 11, + 0, + 0, + 0, + 0, + 0, + 0, + 13, + 0, + 0 + ], + [ + 0, + 68, + 7, + 321, + 2, + 3, + 0, + 116, + 104, + 38, + 0, + 90, + 0, + 0, + 31, + 11, + 400, + 0, + 335, + 0 + ], + [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ] + ] + }, + "chosen": { + "mode": "add", + "alpha": 0.0, + "metrics": { + "miou": 0.5256398451814701, + "oa": 0.7954606313128608, + "macro_f1": 0.6400266863319044, + "kappa": 0.7725060156424988, + "per_class_iou": [ + 0.7863696632193052, + 0.7940560621411685, + 0.8422681105804802, + 0.5216035634743875, + 0.8953563366655918, + 0.5666403785488959, + 0.6681021224238696, + 0.6854425749817118, + 0.3865969759193579, + 0.15913978494623657, + 0.8521227955584585, + 0.16817463736895016, + 0.15324165029469547, + 0.3526720731960907, + 0.8232323232323232, + 0.5073836723321259, + 0.010297482837528604, + 0.2888170055452865 + ], + "confusion_matrix": [ + [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + [ + 0, + 14827, + 104, + 46, + 8, + 16, + 20, + 1, + 480, + 0, + 3, + 211, + 80, + 3, + 659, + 16, + 296, + 4, + 6, + 0 + ], + [ + 0, + 160, + 11756, + 93, + 27, + 17, + 59, + 3, + 0, + 18, + 25, + 184, + 13, + 1, + 99, + 0, + 10, + 4, + 8, + 0 + ], + [ + 0, + 165, + 132, + 12522, + 19, + 10, + 2, + 144, + 0, + 31, + 1, + 0, + 2, + 6, + 113, + 137, + 34, + 11, + 539, + 0 + ], + [ + 0, + 23, + 477, + 28, + 1171, + 50, + 1, + 0, + 0, + 0, + 130, + 0, + 18, + 10, + 0, + 2, + 6, + 128, + 3, + 0 + ], + [ + 0, + 83, + 1, + 23, + 0, + 5553, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 19, + 8, + 1, + 101, + 0, + 0 + ], + [ + 0, + 96, + 76, + 5, + 7, + 0, + 1437, + 49, + 253, + 0, + 0, + 217, + 0, + 0, + 77, + 0, + 5, + 186, + 0, + 0 + ], + [ + 0, + 7, + 0, + 14, + 0, + 0, + 10, + 4344, + 415, + 65, + 0, + 10, + 472, + 0, + 33, + 1, + 4, + 0, + 4, + 0 + ], + [ + 0, + 29, + 0, + 0, + 0, + 0, + 0, + 0, + 6559, + 0, + 0, + 9, + 0, + 0, + 0, + 0, + 1, + 0, + 0, + 0 + ], + [ + 0, + 6, + 20, + 6, + 0, + 1, + 0, + 26, + 0, + 2071, + 0, + 0, + 16, + 14, + 5, + 1, + 0, + 0, + 0, + 0 + ], + [ + 0, + 34, + 886, + 0, + 14, + 0, + 2, + 0, + 0, + 5, + 222, + 0, + 0, + 0, + 5, + 0, + 30, + 4, + 0, + 0 + ], + [ + 0, + 17, + 0, + 0, + 91, + 0, + 14, + 5, + 10, + 0, + 0, + 6523, + 0, + 0, + 13, + 0, + 63, + 0, + 6, + 0 + ], + [ + 0, + 107, + 18, + 205, + 0, + 3, + 10, + 473, + 524, + 2954, + 6, + 129, + 1171, + 188, + 120, + 47, + 11, + 8, + 72, + 0 + ], + [ + 0, + 1, + 44, + 53, + 0, + 0, + 0, + 189, + 8, + 36, + 1, + 71, + 216, + 156, + 12, + 2, + 7, + 0, + 0, + 0 + ], + [ + 0, + 1027, + 18, + 38, + 0, + 0, + 10, + 43, + 402, + 0, + 0, + 58, + 0, + 0, + 1696, + 0, + 205, + 7, + 0, + 0 + ], + [ + 0, + 28, + 6, + 32, + 4, + 6, + 0, + 0, + 0, + 40, + 0, + 0, + 0, + 0, + 0, + 1793, + 0, + 0, + 0, + 0 + ], + [ + 0, + 51, + 0, + 8, + 0, + 0, + 0, + 19, + 875, + 0, + 0, + 14, + 0, + 0, + 41, + 0, + 1821, + 0, + 0, + 0 + ], + [ + 0, + 230, + 546, + 75, + 28, + 310, + 0, + 0, + 0, + 42, + 27, + 0, + 0, + 0, + 0, + 4, + 15, + 18, + 0, + 0 + ], + [ + 0, + 11, + 0, + 373, + 0, + 0, + 0, + 171, + 4, + 0, + 0, + 10, + 100, + 0, + 109, + 51, + 72, + 0, + 625, + 0 + ], + [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ] + ] + } + }, + "records": [ + { + "mode": "add", + "alpha": 0.0, + "metrics": { + "miou": 0.5256398451814701, + "oa": 0.7954606313128608, + "macro_f1": 0.6400266863319044, + "kappa": 0.7725060156424988, + "per_class_iou": [ + 0.7863696632193052, + 0.7940560621411685, + 0.8422681105804802, + 0.5216035634743875, + 0.8953563366655918, + 0.5666403785488959, + 0.6681021224238696, + 0.6854425749817118, + 0.3865969759193579, + 0.15913978494623657, + 0.8521227955584585, + 0.16817463736895016, + 0.15324165029469547, + 0.3526720731960907, + 0.8232323232323232, + 0.5073836723321259, + 0.010297482837528604, + 0.2888170055452865 + ], + "confusion_matrix": [ + [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + [ + 0, + 14827, + 104, + 46, + 8, + 16, + 20, + 1, + 480, + 0, + 3, + 211, + 80, + 3, + 659, + 16, + 296, + 4, + 6, + 0 + ], + [ + 0, + 160, + 11756, + 93, + 27, + 17, + 59, + 3, + 0, + 18, + 25, + 184, + 13, + 1, + 99, + 0, + 10, + 4, + 8, + 0 + ], + [ + 0, + 165, + 132, + 12522, + 19, + 10, + 2, + 144, + 0, + 31, + 1, + 0, + 2, + 6, + 113, + 137, + 34, + 11, + 539, + 0 + ], + [ + 0, + 23, + 477, + 28, + 1171, + 50, + 1, + 0, + 0, + 0, + 130, + 0, + 18, + 10, + 0, + 2, + 6, + 128, + 3, + 0 + ], + [ + 0, + 83, + 1, + 23, + 0, + 5553, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 19, + 8, + 1, + 101, + 0, + 0 + ], + [ + 0, + 96, + 76, + 5, + 7, + 0, + 1437, + 49, + 253, + 0, + 0, + 217, + 0, + 0, + 77, + 0, + 5, + 186, + 0, + 0 + ], + [ + 0, + 7, + 0, + 14, + 0, + 0, + 10, + 4344, + 415, + 65, + 0, + 10, + 472, + 0, + 33, + 1, + 4, + 0, + 4, + 0 + ], + [ + 0, + 29, + 0, + 0, + 0, + 0, + 0, + 0, + 6559, + 0, + 0, + 9, + 0, + 0, + 0, + 0, + 1, + 0, + 0, + 0 + ], + [ + 0, + 6, + 20, + 6, + 0, + 1, + 0, + 26, + 0, + 2071, + 0, + 0, + 16, + 14, + 5, + 1, + 0, + 0, + 0, + 0 + ], + [ + 0, + 34, + 886, + 0, + 14, + 0, + 2, + 0, + 0, + 5, + 222, + 0, + 0, + 0, + 5, + 0, + 30, + 4, + 0, + 0 + ], + [ + 0, + 17, + 0, + 0, + 91, + 0, + 14, + 5, + 10, + 0, + 0, + 6523, + 0, + 0, + 13, + 0, + 63, + 0, + 6, + 0 + ], + [ + 0, + 107, + 18, + 205, + 0, + 3, + 10, + 473, + 524, + 2954, + 6, + 129, + 1171, + 188, + 120, + 47, + 11, + 8, + 72, + 0 + ], + [ + 0, + 1, + 44, + 53, + 0, + 0, + 0, + 189, + 8, + 36, + 1, + 71, + 216, + 156, + 12, + 2, + 7, + 0, + 0, + 0 + ], + [ + 0, + 1027, + 18, + 38, + 0, + 0, + 10, + 43, + 402, + 0, + 0, + 58, + 0, + 0, + 1696, + 0, + 205, + 7, + 0, + 0 + ], + [ + 0, + 28, + 6, + 32, + 4, + 6, + 0, + 0, + 0, + 40, + 0, + 0, + 0, + 0, + 0, + 1793, + 0, + 0, + 0, + 0 + ], + [ + 0, + 51, + 0, + 8, + 0, + 0, + 0, + 19, + 875, + 0, + 0, + 14, + 0, + 0, + 41, + 0, + 1821, + 0, + 0, + 0 + ], + [ + 0, + 230, + 546, + 75, + 28, + 310, + 0, + 0, + 0, + 42, + 27, + 0, + 0, + 0, + 0, + 4, + 15, + 18, + 0, + 0 + ], + [ + 0, + 11, + 0, + 373, + 0, + 0, + 0, + 171, + 4, + 0, + 0, + 10, + 100, + 0, + 109, + 51, + 72, + 0, + 625, + 0 + ], + [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ] + ] + } + }, + { + "mode": "add", + "alpha": 0.1, + "metrics": { + "miou": 0.5182074685098821, + "oa": 0.7914546759353477, + "macro_f1": 0.632549565193289, + "kappa": 0.7680034125166677, + "per_class_iou": [ + 0.786032926181625, + 0.7895796965220895, + 0.8354134685977441, + 0.5091395452518948, + 0.8949152542372881, + 0.5427215189873418, + 0.653892395551548, + 0.6903157894736842, + 0.3792411528639183, + 0.15345080763582966, + 0.8436935775083828, + 0.13629862700228834, + 0.15212981744421908, + 0.35157718821809064, + 0.8060992262175695, + 0.5087330191294704, + 0.006436512580456407, + 0.2880639097744361 + ], + "confusion_matrix": [ + [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + [ + 0, + 14801, + 105, + 47, + 4, + 15, + 27, + 0, + 493, + 0, + 3, + 211, + 77, + 3, + 671, + 14, + 300, + 4, + 5, + 0 + ], + [ + 0, + 163, + 11760, + 104, + 30, + 17, + 56, + 2, + 0, + 16, + 14, + 187, + 13, + 1, + 93, + 0, + 11, + 3, + 7, + 0 + ], + [ + 0, + 161, + 132, + 12517, + 12, + 10, + 2, + 163, + 0, + 33, + 1, + 0, + 0, + 4, + 129, + 145, + 25, + 9, + 525, + 0 + ], + [ + 0, + 33, + 550, + 34, + 1142, + 49, + 0, + 0, + 0, + 0, + 112, + 0, + 16, + 6, + 0, + 2, + 6, + 96, + 1, + 0 + ], + [ + 0, + 90, + 1, + 26, + 0, + 5544, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 19, + 8, + 0, + 101, + 0, + 0 + ], + [ + 0, + 87, + 75, + 5, + 9, + 0, + 1372, + 81, + 248, + 0, + 0, + 257, + 0, + 0, + 82, + 0, + 6, + 186, + 0, + 0 + ], + [ + 0, + 10, + 0, + 15, + 0, + 0, + 6, + 4351, + 380, + 55, + 0, + 16, + 525, + 0, + 15, + 1, + 4, + 0, + 1, + 0 + ], + [ + 0, + 27, + 0, + 0, + 0, + 0, + 0, + 0, + 6558, + 0, + 0, + 11, + 0, + 0, + 0, + 0, + 2, + 0, + 0, + 0 + ], + [ + 0, + 5, + 20, + 15, + 0, + 1, + 0, + 21, + 0, + 2079, + 0, + 0, + 13, + 8, + 4, + 0, + 0, + 0, + 0, + 0 + ], + [ + 0, + 38, + 896, + 0, + 16, + 0, + 2, + 0, + 0, + 4, + 209, + 0, + 0, + 0, + 5, + 0, + 28, + 4, + 0, + 0 + ], + [ + 0, + 13, + 0, + 0, + 82, + 0, + 12, + 5, + 10, + 0, + 0, + 6542, + 0, + 0, + 12, + 0, + 61, + 0, + 5, + 0 + ], + [ + 0, + 109, + 16, + 228, + 0, + 1, + 6, + 568, + 496, + 3090, + 6, + 161, + 953, + 168, + 97, + 72, + 9, + 8, + 58, + 0 + ], + [ + 0, + 1, + 46, + 61, + 0, + 0, + 0, + 206, + 10, + 33, + 1, + 64, + 205, + 150, + 10, + 2, + 7, + 0, + 0, + 0 + ], + [ + 0, + 1019, + 17, + 38, + 0, + 0, + 9, + 39, + 404, + 0, + 0, + 68, + 0, + 0, + 1683, + 0, + 224, + 3, + 0, + 0 + ], + [ + 0, + 29, + 6, + 53, + 4, + 6, + 0, + 0, + 0, + 40, + 0, + 0, + 0, + 0, + 0, + 1771, + 0, + 0, + 0, + 0 + ], + [ + 0, + 49, + 0, + 10, + 0, + 0, + 0, + 20, + 855, + 0, + 0, + 20, + 0, + 0, + 40, + 0, + 1835, + 0, + 0, + 0 + ], + [ + 0, + 201, + 553, + 101, + 39, + 307, + 0, + 0, + 0, + 45, + 23, + 0, + 0, + 0, + 0, + 2, + 13, + 11, + 0, + 0 + ], + [ + 0, + 15, + 0, + 378, + 0, + 0, + 0, + 170, + 6, + 0, + 0, + 17, + 97, + 0, + 106, + 42, + 82, + 0, + 613, + 0 + ], + [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ] + ] + } + }, + { + "mode": "add", + "alpha": 0.25, + "metrics": { + "miou": 0.49403197271012833, + "oa": 0.7806043208620301, + "macro_f1": 0.6084927904416739, + "kappa": 0.7557879449863211, + "per_class_iou": [ + 0.7819953151618398, + 0.776977466464019, + 0.8147954856807359, + 0.38564058469475493, + 0.8984425697598962, + 0.5065920894926089, + 0.631281679942071, + 0.6953754773016546, + 0.37524734664508, + 0.11634756995581738, + 0.8252170630426576, + 0.1014575593026579, + 0.13626373626373625, + 0.33685300207039337, + 0.741834451901566, + 0.4936708860759494, + 0.0036496350364963502, + 0.27093358999037537 + ], + "confusion_matrix": [ + [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + [ + 0, + 14689, + 108, + 56, + 1, + 12, + 31, + 0, + 534, + 0, + 0, + 228, + 68, + 2, + 722, + 14, + 312, + 0, + 3, + 0 + ], + [ + 0, + 148, + 11758, + 135, + 45, + 16, + 40, + 1, + 0, + 15, + 8, + 192, + 10, + 1, + 85, + 0, + 18, + 1, + 4, + 0 + ], + [ + 0, + 149, + 130, + 12490, + 9, + 9, + 2, + 181, + 0, + 33, + 1, + 0, + 0, + 2, + 148, + 169, + 24, + 9, + 512, + 0 + ], + [ + 0, + 43, + 824, + 41, + 897, + 49, + 0, + 0, + 0, + 0, + 111, + 0, + 20, + 2, + 0, + 1, + 0, + 59, + 0, + 0 + ], + [ + 0, + 98, + 2, + 31, + 0, + 5538, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 19, + 4, + 0, + 97, + 0, + 0 + ], + [ + 0, + 78, + 63, + 12, + 19, + 0, + 1268, + 133, + 241, + 0, + 22, + 299, + 0, + 0, + 96, + 0, + 6, + 171, + 0, + 0 + ], + [ + 0, + 13, + 0, + 13, + 0, + 0, + 4, + 4359, + 326, + 32, + 0, + 26, + 583, + 0, + 3, + 0, + 19, + 0, + 1, + 0 + ], + [ + 0, + 24, + 0, + 0, + 0, + 0, + 0, + 0, + 6556, + 0, + 0, + 14, + 0, + 0, + 1, + 0, + 3, + 0, + 0, + 0 + ], + [ + 0, + 0, + 19, + 45, + 2, + 0, + 0, + 9, + 0, + 2086, + 0, + 0, + 0, + 0, + 5, + 0, + 0, + 0, + 0, + 0 + ], + [ + 0, + 50, + 929, + 2, + 28, + 0, + 1, + 0, + 0, + 0, + 158, + 0, + 0, + 0, + 5, + 0, + 27, + 2, + 0, + 0 + ], + [ + 0, + 7, + 1, + 0, + 69, + 0, + 13, + 5, + 10, + 0, + 0, + 6558, + 0, + 0, + 13, + 0, + 61, + 0, + 5, + 0 + ], + [ + 0, + 104, + 15, + 288, + 0, + 0, + 0, + 764, + 445, + 3156, + 5, + 243, + 710, + 107, + 53, + 106, + 13, + 10, + 27, + 0 + ], + [ + 0, + 3, + 41, + 101, + 2, + 0, + 0, + 210, + 15, + 38, + 1, + 50, + 185, + 124, + 18, + 1, + 7, + 0, + 0, + 0 + ], + [ + 0, + 1010, + 14, + 38, + 0, + 0, + 4, + 36, + 409, + 0, + 0, + 92, + 0, + 0, + 1627, + 0, + 274, + 0, + 0, + 0 + ], + [ + 0, + 35, + 6, + 154, + 3, + 5, + 0, + 0, + 0, + 47, + 0, + 0, + 0, + 0, + 1, + 1658, + 0, + 0, + 0, + 0 + ], + [ + 0, + 39, + 0, + 20, + 0, + 0, + 0, + 18, + 831, + 0, + 0, + 26, + 0, + 0, + 62, + 0, + 1833, + 0, + 0, + 0 + ], + [ + 0, + 176, + 504, + 135, + 101, + 284, + 0, + 0, + 0, + 72, + 8, + 0, + 0, + 0, + 0, + 0, + 9, + 6, + 0, + 0 + ], + [ + 0, + 27, + 0, + 390, + 0, + 0, + 0, + 169, + 19, + 0, + 0, + 35, + 86, + 0, + 95, + 31, + 111, + 0, + 563, + 0 + ], + [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ] + ] + } + }, + { + "mode": "add", + "alpha": 0.5, + "metrics": { + "miou": 0.4310982473091249, + "oa": 0.749177922258759, + "macro_f1": 0.5367979591251394, + "kappa": 0.7207019891783092, + "per_class_iou": [ + 0.7751060061188342, + 0.75208319875977, + 0.7547111523015138, + 0.11947791164658635, + 0.9360691877225708, + 0.3195219123505976, + 0.586585196500486, + 0.7015229515229515, + 0.3493024037653387, + 0.0461441213653603, + 0.7766172106824926, + 0.06092037983929876, + 0.03329223181257707, + 0.294298605414274, + 0.5857205817540767, + 0.43868153174987884, + 0.007853403141361256, + 0.22186046511627908 + ], + "confusion_matrix": [ + [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + [ + 0, + 14441, + 103, + 128, + 5, + 7, + 41, + 2, + 623, + 0, + 3, + 355, + 46, + 3, + 700, + 22, + 298, + 1, + 2, + 0 + ], + [ + 0, + 126, + 11643, + 233, + 95, + 15, + 26, + 0, + 0, + 12, + 6, + 207, + 2, + 0, + 74, + 0, + 31, + 6, + 1, + 0 + ], + [ + 0, + 168, + 224, + 12215, + 58, + 7, + 0, + 195, + 2, + 24, + 4, + 1, + 0, + 4, + 169, + 181, + 30, + 0, + 586, + 0 + ], + [ + 0, + 47, + 1317, + 63, + 357, + 21, + 0, + 0, + 0, + 32, + 147, + 0, + 22, + 0, + 21, + 0, + 0, + 19, + 1, + 0 + ], + [ + 0, + 88, + 1, + 39, + 13, + 5520, + 0, + 0, + 0, + 31, + 6, + 0, + 0, + 0, + 21, + 0, + 1, + 69, + 0, + 0 + ], + [ + 0, + 65, + 43, + 54, + 222, + 0, + 802, + 202, + 208, + 0, + 209, + 358, + 0, + 0, + 103, + 0, + 22, + 120, + 0, + 0 + ], + [ + 0, + 10, + 0, + 29, + 9, + 0, + 3, + 4224, + 242, + 102, + 0, + 42, + 516, + 0, + 12, + 0, + 186, + 0, + 4, + 0 + ], + [ + 0, + 18, + 0, + 0, + 0, + 0, + 0, + 0, + 6541, + 0, + 0, + 26, + 0, + 0, + 7, + 0, + 6, + 0, + 0, + 0 + ], + [ + 0, + 0, + 17, + 54, + 7, + 3, + 0, + 6, + 0, + 2078, + 0, + 0, + 0, + 0, + 1, + 0, + 0, + 0, + 0, + 0 + ], + [ + 0, + 83, + 952, + 21, + 49, + 0, + 0, + 0, + 0, + 0, + 73, + 0, + 0, + 0, + 7, + 3, + 14, + 0, + 0, + 0 + ], + [ + 0, + 26, + 2, + 0, + 38, + 0, + 27, + 14, + 14, + 0, + 0, + 6543, + 0, + 0, + 22, + 0, + 54, + 0, + 2, + 0 + ], + [ + 0, + 67, + 10, + 434, + 35, + 0, + 0, + 937, + 363, + 3184, + 3, + 369, + 417, + 8, + 37, + 127, + 14, + 17, + 24, + 0 + ], + [ + 0, + 5, + 22, + 114, + 18, + 0, + 0, + 248, + 17, + 88, + 2, + 36, + 165, + 27, + 36, + 6, + 8, + 0, + 4, + 0 + ], + [ + 0, + 955, + 12, + 34, + 0, + 0, + 5, + 33, + 437, + 14, + 0, + 167, + 0, + 0, + 1435, + 0, + 412, + 0, + 0, + 0 + ], + [ + 0, + 37, + 2, + 471, + 2, + 6, + 0, + 0, + 0, + 56, + 0, + 0, + 0, + 0, + 5, + 1329, + 0, + 1, + 0, + 0 + ], + [ + 0, + 33, + 0, + 25, + 0, + 0, + 0, + 30, + 771, + 1, + 0, + 56, + 0, + 0, + 103, + 0, + 1810, + 0, + 0, + 0 + ], + [ + 0, + 80, + 295, + 230, + 390, + 49, + 0, + 0, + 0, + 238, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 12, + 0, + 0 + ], + [ + 0, + 43, + 4, + 388, + 0, + 0, + 0, + 155, + 49, + 1, + 0, + 66, + 48, + 0, + 54, + 21, + 220, + 0, + 477, + 0 + ], + [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ] + ] + } + }, + { + "mode": "replace", + "alpha": 0.1, + "metrics": { + "miou": 0.5167921102592491, + "oa": 0.7871059650175126, + "macro_f1": 0.6306392634403148, + "kappa": 0.7635368741626501, + "per_class_iou": [ + 0.7829122694808656, + 0.8065155033465373, + 0.8002691790040377, + 0.54, + 0.900355871886121, + 0.5631105900742478, + 0.6191479753123589, + 0.6917483401833702, + 0.3872053872053872, + 0.14882032667876588, + 0.8457364341085272, + 0.19236130471145804, + 0.11154219204655674, + 0.3314707643184993, + 0.8297373358348968, + 0.5075177304964539, + 0.01852995676343422, + 0.22527682321496756 + ], + "confusion_matrix": [ + [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + [ + 0, + 14689, + 122, + 53, + 56, + 14, + 48, + 3, + 502, + 0, + 3, + 214, + 85, + 3, + 716, + 19, + 245, + 5, + 3, + 0 + ], + [ + 0, + 104, + 11809, + 91, + 14, + 14, + 51, + 3, + 0, + 16, + 46, + 188, + 20, + 5, + 95, + 0, + 9, + 4, + 8, + 0 + ], + [ + 0, + 171, + 119, + 11892, + 21, + 11, + 3, + 208, + 1, + 33, + 0, + 0, + 2, + 6, + 203, + 126, + 38, + 1, + 1033, + 0 + ], + [ + 0, + 29, + 387, + 37, + 1215, + 42, + 5, + 0, + 0, + 0, + 278, + 0, + 15, + 3, + 0, + 0, + 20, + 13, + 3, + 0 + ], + [ + 0, + 72, + 6, + 26, + 0, + 5566, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 19, + 8, + 0, + 92, + 0, + 0 + ], + [ + 0, + 61, + 70, + 4, + 21, + 0, + 1441, + 37, + 237, + 0, + 2, + 266, + 0, + 0, + 85, + 0, + 5, + 179, + 0, + 0 + ], + [ + 0, + 5, + 1, + 8, + 0, + 0, + 13, + 4113, + 312, + 114, + 0, + 13, + 708, + 0, + 66, + 1, + 9, + 0, + 16, + 0 + ], + [ + 0, + 19, + 0, + 0, + 0, + 0, + 0, + 0, + 6564, + 0, + 0, + 13, + 0, + 0, + 0, + 0, + 2, + 0, + 0, + 0 + ], + [ + 0, + 2, + 21, + 8, + 0, + 0, + 0, + 21, + 0, + 2070, + 0, + 0, + 22, + 19, + 3, + 0, + 0, + 0, + 0, + 0 + ], + [ + 0, + 27, + 880, + 0, + 4, + 0, + 1, + 0, + 0, + 5, + 246, + 0, + 0, + 0, + 5, + 0, + 32, + 2, + 0, + 0 + ], + [ + 0, + 8, + 2, + 0, + 64, + 0, + 18, + 4, + 11, + 0, + 0, + 6546, + 0, + 0, + 16, + 0, + 65, + 0, + 8, + 0 + ], + [ + 0, + 115, + 17, + 147, + 1, + 5, + 2, + 476, + 490, + 2892, + 0, + 123, + 1380, + 199, + 144, + 13, + 10, + 12, + 20, + 0 + ], + [ + 0, + 2, + 45, + 52, + 0, + 2, + 0, + 204, + 7, + 40, + 1, + 97, + 206, + 115, + 14, + 4, + 5, + 0, + 2, + 0 + ], + [ + 0, + 1026, + 18, + 37, + 0, + 3, + 9, + 52, + 436, + 0, + 0, + 68, + 0, + 0, + 1661, + 0, + 178, + 16, + 0, + 0 + ], + [ + 0, + 28, + 8, + 52, + 7, + 6, + 0, + 1, + 0, + 38, + 0, + 0, + 0, + 0, + 0, + 1769, + 0, + 0, + 0, + 0 + ], + [ + 0, + 55, + 0, + 6, + 0, + 0, + 0, + 48, + 895, + 0, + 0, + 7, + 0, + 0, + 29, + 0, + 1789, + 0, + 0, + 0 + ], + [ + 0, + 243, + 469, + 46, + 15, + 296, + 0, + 0, + 0, + 42, + 121, + 0, + 0, + 0, + 0, + 4, + 29, + 30, + 0, + 0 + ], + [ + 0, + 15, + 0, + 425, + 0, + 0, + 1, + 207, + 0, + 0, + 0, + 9, + 70, + 0, + 112, + 48, + 49, + 0, + 590, + 0 + ], + [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ] + ] + } + }, + { + "mode": "replace", + "alpha": 0.25, + "metrics": { + "miou": 0.5016742412669202, + "oa": 0.7813005430533092, + "macro_f1": 0.6153761747668886, + "kappa": 0.7569062589365165, + "per_class_iou": [ + 0.7812533361802071, + 0.7981217485305047, + 0.7926370653823316, + 0.47381864623243936, + 0.9033674963396779, + 0.5164486722156163, + 0.6169313711205012, + 0.6956429555814693, + 0.377467850027169, + 0.14209827357237717, + 0.8248211820805622, + 0.14608646510313647, + 0.10083160083160084, + 0.336105476673428, + 0.7946302402260952, + 0.5029174770769658, + 0.005628517823639775, + 0.22132796780684105 + ], + "confusion_matrix": [ + [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + [ + 0, + 14636, + 120, + 58, + 33, + 14, + 49, + 1, + 531, + 0, + 3, + 243, + 77, + 3, + 729, + 17, + 261, + 4, + 1, + 0 + ], + [ + 0, + 106, + 11813, + 122, + 31, + 14, + 40, + 2, + 0, + 16, + 18, + 192, + 10, + 2, + 87, + 0, + 14, + 4, + 6, + 0 + ], + [ + 0, + 160, + 112, + 12014, + 20, + 9, + 2, + 235, + 0, + 32, + 0, + 0, + 0, + 3, + 200, + 136, + 27, + 3, + 915, + 0 + ], + [ + 0, + 46, + 564, + 42, + 1113, + 42, + 1, + 0, + 0, + 0, + 203, + 0, + 17, + 0, + 0, + 0, + 8, + 8, + 3, + 0 + ], + [ + 0, + 90, + 6, + 27, + 0, + 5553, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 19, + 8, + 0, + 86, + 0, + 0 + ], + [ + 0, + 57, + 68, + 12, + 36, + 0, + 1303, + 74, + 253, + 0, + 7, + 318, + 0, + 0, + 98, + 0, + 6, + 176, + 0, + 0 + ], + [ + 0, + 6, + 0, + 10, + 0, + 0, + 3, + 4234, + 265, + 97, + 0, + 27, + 682, + 0, + 32, + 0, + 17, + 0, + 6, + 0 + ], + [ + 0, + 16, + 0, + 0, + 0, + 0, + 0, + 0, + 6562, + 0, + 0, + 18, + 0, + 0, + 0, + 0, + 2, + 0, + 0, + 0 + ], + [ + 0, + 0, + 20, + 45, + 1, + 0, + 0, + 11, + 0, + 2084, + 0, + 0, + 1, + 1, + 3, + 0, + 0, + 0, + 0, + 0 + ], + [ + 0, + 30, + 899, + 4, + 13, + 0, + 1, + 0, + 0, + 1, + 214, + 0, + 0, + 0, + 5, + 1, + 33, + 1, + 0, + 0 + ], + [ + 0, + 6, + 3, + 0, + 55, + 0, + 13, + 2, + 10, + 0, + 0, + 6573, + 0, + 0, + 13, + 0, + 60, + 0, + 7, + 0 + ], + [ + 0, + 112, + 15, + 192, + 5, + 2, + 0, + 632, + 490, + 3061, + 0, + 207, + 1034, + 157, + 92, + 8, + 9, + 10, + 20, + 0 + ], + [ + 0, + 2, + 45, + 75, + 4, + 0, + 0, + 232, + 12, + 39, + 1, + 84, + 185, + 97, + 9, + 4, + 6, + 0, + 1, + 0 + ], + [ + 0, + 1018, + 15, + 38, + 0, + 2, + 6, + 41, + 411, + 0, + 0, + 89, + 0, + 0, + 1657, + 0, + 215, + 12, + 0, + 0 + ], + [ + 0, + 29, + 8, + 134, + 6, + 6, + 0, + 1, + 0, + 38, + 0, + 0, + 0, + 0, + 0, + 1687, + 0, + 0, + 0, + 0 + ], + [ + 0, + 50, + 0, + 8, + 0, + 0, + 0, + 45, + 857, + 0, + 0, + 20, + 0, + 0, + 39, + 0, + 1810, + 0, + 0, + 0 + ], + [ + 0, + 209, + 449, + 91, + 98, + 269, + 0, + 0, + 0, + 71, + 72, + 0, + 0, + 0, + 0, + 1, + 26, + 9, + 0, + 0 + ], + [ + 0, + 17, + 0, + 431, + 0, + 0, + 0, + 208, + 6, + 0, + 0, + 29, + 60, + 0, + 100, + 39, + 86, + 0, + 550, + 0 + ], + [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ] + ] + } + }, + { + "mode": "replace", + "alpha": 0.5, + "metrics": { + "miou": 0.4360680383987605, + "oa": 0.7498527222287679, + "macro_f1": 0.5433641250986441, + "kappa": 0.7216336968631941, + "per_class_iou": [ + 0.7771201033146793, + 0.7577035355173533, + 0.745483991528591, + 0.12956810631229235, + 0.9428669175504618, + 0.3272583201267829, + 0.5822418309664966, + 0.7033616152937386, + 0.3473103909121283, + 0.07530864197530865, + 0.7780548628428927, + 0.07368268674001158, + 0.039568345323741004, + 0.3114754098360656, + 0.6065795403334836, + 0.448779260005034, + 0.005917159763313609, + 0.1969439728353141 + ], + "confusion_matrix": [ + [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + [ + 0, + 14442, + 113, + 125, + 2, + 9, + 52, + 2, + 620, + 1, + 3, + 357, + 49, + 3, + 695, + 26, + 278, + 2, + 1, + 0 + ], + [ + 0, + 105, + 11680, + 231, + 70, + 15, + 21, + 0, + 0, + 15, + 8, + 201, + 2, + 1, + 91, + 0, + 26, + 9, + 2, + 0 + ], + [ + 0, + 152, + 241, + 11968, + 61, + 7, + 1, + 231, + 2, + 23, + 6, + 1, + 0, + 6, + 196, + 162, + 28, + 0, + 783, + 0 + ], + [ + 0, + 49, + 1243, + 69, + 390, + 11, + 0, + 0, + 0, + 34, + 205, + 0, + 21, + 0, + 9, + 0, + 0, + 14, + 2, + 0 + ], + [ + 0, + 101, + 2, + 38, + 10, + 5512, + 0, + 0, + 0, + 44, + 5, + 0, + 0, + 0, + 21, + 2, + 0, + 54, + 0, + 0 + ], + [ + 0, + 57, + 54, + 40, + 243, + 0, + 826, + 176, + 210, + 0, + 191, + 362, + 0, + 0, + 105, + 0, + 18, + 126, + 0, + 0 + ], + [ + 0, + 8, + 0, + 15, + 11, + 0, + 3, + 4223, + 200, + 133, + 0, + 42, + 595, + 0, + 12, + 0, + 133, + 0, + 4, + 0 + ], + [ + 0, + 13, + 0, + 0, + 0, + 0, + 0, + 0, + 6549, + 0, + 0, + 24, + 0, + 0, + 4, + 0, + 8, + 0, + 0, + 0 + ], + [ + 0, + 0, + 18, + 54, + 8, + 2, + 0, + 5, + 0, + 2079, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + [ + 0, + 49, + 940, + 15, + 43, + 0, + 0, + 0, + 0, + 0, + 122, + 0, + 0, + 0, + 8, + 3, + 22, + 0, + 0, + 0 + ], + [ + 0, + 37, + 3, + 0, + 23, + 0, + 32, + 13, + 10, + 0, + 0, + 6552, + 0, + 0, + 17, + 0, + 53, + 0, + 2, + 0 + ], + [ + 0, + 84, + 11, + 359, + 35, + 0, + 0, + 919, + 381, + 3161, + 0, + 357, + 509, + 28, + 45, + 93, + 11, + 21, + 32, + 0 + ], + [ + 0, + 3, + 26, + 105, + 17, + 0, + 0, + 264, + 16, + 73, + 0, + 51, + 162, + 33, + 30, + 4, + 8, + 0, + 4, + 0 + ], + [ + 0, + 936, + 12, + 34, + 0, + 0, + 7, + 35, + 418, + 20, + 0, + 168, + 0, + 0, + 1520, + 0, + 354, + 0, + 0, + 0 + ], + [ + 0, + 35, + 2, + 465, + 2, + 5, + 0, + 0, + 0, + 50, + 0, + 0, + 0, + 0, + 4, + 1346, + 0, + 0, + 0, + 0 + ], + [ + 0, + 35, + 0, + 23, + 0, + 0, + 0, + 44, + 811, + 2, + 0, + 47, + 0, + 0, + 84, + 0, + 1783, + 0, + 0, + 0 + ], + [ + 0, + 99, + 269, + 203, + 438, + 8, + 0, + 0, + 0, + 263, + 0, + 0, + 0, + 0, + 0, + 0, + 6, + 9, + 0, + 0 + ], + [ + 0, + 41, + 4, + 410, + 0, + 0, + 0, + 185, + 45, + 1, + 0, + 69, + 33, + 0, + 55, + 20, + 199, + 0, + 464, + 0 + ], + [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ] + ] + } + } + ], + "reference_val_miou": 0.5256398451814701, + "delta_val_pp": 0.0, + "patch_bootstrap_delta_interval_pp": [ + 0.0, + 0.0 + ], + "bootstrap_caveat": "descriptive, after validation selection; not an independent significance test", + "selection_split": "validation", + "test_used_for_selection": false +} \ No newline at end of file diff --git a/ablations/10_plateau_breakthrough/workspace/convnext_research_20261010/32X32_temporal_cnv1_k3_seed3407/test_results.json b/ablations/10_plateau_breakthrough/workspace/convnext_research_20261010/32X32_temporal_cnv1_k3_seed3407/test_results.json new file mode 100644 index 0000000000000000000000000000000000000000..57db7ab96e66b813320296178e3a70b84646bf36 --- /dev/null +++ b/ablations/10_plateau_breakthrough/workspace/convnext_research_20261010/32X32_temporal_cnv1_k3_seed3407/test_results.json @@ -0,0 +1,5672 @@ +{ + "kind": "temporal_cnv1_k3", + "metrics": { + "miou": 0.49455547330691263, + "oa": 0.8109266736579659, + "macro_f1": 0.6234136021853756, + "kappa": 0.7642966739749818, + "per_class_iou": [ + 0.8061330522981268, + 0.7198486670090578, + 0.8757351877577422, + 0.46213693236161063, + 0.8703389461776095, + 0.38416520104311963, + 0.4490553274645572, + 0.6216216216216216, + 0.7901944411308601, + 0.07114146695276376, + 0.5587868716244287, + 0.3175281724644782, + 0.4373326486446833, + 0.2655897022970766, + 0.6168043633350977, + 0.28662647573048294, + 0.0918118400487935, + 0.27714760156231727 + ], + "confusion_matrix": [ + [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + [ + 0, + 1311069, + 6756, + 8420, + 815, + 744, + 883, + 2246, + 19285, + 602, + 381, + 3742, + 6998, + 405, + 29504, + 1126, + 71312, + 1029, + 686, + 0 + ], + [ + 0, + 12671, + 493367, + 5115, + 3930, + 1130, + 1764, + 172, + 746, + 546, + 21217, + 15339, + 437, + 131, + 1045, + 166, + 699, + 2161, + 44, + 0 + ], + [ + 0, + 17785, + 2752, + 641744, + 302, + 960, + 172, + 3539, + 862, + 3810, + 169, + 19, + 2132, + 202, + 3012, + 4846, + 607, + 129, + 5247, + 0 + ], + [ + 0, + 9412, + 46049, + 1786, + 82625, + 1310, + 4247, + 55, + 196, + 62, + 7994, + 4414, + 287, + 376, + 482, + 80, + 252, + 3761, + 4, + 0 + ], + [ + 0, + 2675, + 1166, + 868, + 380, + 120018, + 262, + 124, + 19, + 220, + 688, + 194, + 22, + 35, + 1476, + 29, + 106, + 837, + 0, + 0 + ], + [ + 0, + 4040, + 7283, + 711, + 3621, + 289, + 25338, + 175, + 883, + 118, + 2677, + 5012, + 146, + 454, + 1986, + 330, + 163, + 536, + 0, + 0 + ], + [ + 0, + 1538, + 141, + 3611, + 17, + 249, + 89, + 47797, + 7620, + 3775, + 49, + 378, + 1239, + 1298, + 2624, + 9685, + 632, + 168, + 1023, + 0 + ], + [ + 0, + 18456, + 124, + 4622, + 0, + 0, + 17, + 1317, + 151754, + 0, + 1, + 338, + 854, + 23, + 403, + 328, + 9076, + 0, + 164, + 0 + ], + [ + 0, + 482, + 193, + 1058, + 35, + 123, + 379, + 620, + 116, + 66242, + 0, + 28, + 795, + 26, + 446, + 416, + 71, + 2, + 15, + 0 + ], + [ + 0, + 3092, + 44739, + 412, + 1763, + 216, + 156, + 5, + 11, + 5, + 7062, + 21, + 6, + 0, + 299, + 8, + 83, + 484, + 0, + 0 + ], + [ + 0, + 1322, + 2401, + 20, + 0, + 0, + 1773, + 184, + 1235, + 0, + 143, + 60525, + 38, + 0, + 1508, + 0, + 693, + 4, + 114, + 0 + ], + [ + 0, + 3196, + 123, + 4634, + 46, + 7, + 910, + 9697, + 3978, + 1955, + 63, + 3941, + 25923, + 639, + 1593, + 517, + 2180, + 171, + 1142, + 0 + ], + [ + 0, + 589, + 140, + 1406, + 6, + 31, + 92, + 2996, + 519, + 719, + 7, + 314, + 2523, + 11923, + 406, + 408, + 473, + 9, + 52, + 0 + ], + [ + 0, + 57524, + 1032, + 1194, + 723, + 333, + 1050, + 1045, + 7046, + 405, + 646, + 1114, + 551, + 254, + 47497, + 318, + 6554, + 377, + 131, + 0 + ], + [ + 0, + 1525, + 170, + 6485, + 90, + 129, + 5, + 653, + 17, + 376, + 8, + 2255, + 478, + 3, + 400, + 53604, + 52, + 13, + 2053, + 0 + ], + [ + 0, + 12728, + 331, + 778, + 2, + 0, + 34, + 422, + 10506, + 48, + 33, + 1127, + 965, + 73, + 710, + 23, + 49018, + 5, + 56, + 0 + ], + [ + 0, + 8636, + 11253, + 1214, + 3447, + 3258, + 322, + 34, + 20, + 20, + 6827, + 1, + 610, + 689, + 1495, + 80, + 44, + 4817, + 2, + 0 + ], + [ + 0, + 4694, + 43, + 2183, + 220, + 0, + 39, + 1222, + 3590, + 122, + 2, + 118, + 2844, + 42, + 3653, + 230, + 1161, + 11, + 11850, + 0 + ], + [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ] + ] + }, + "baseline": { + "miou": 0.49455547330691263, + "oa": 0.8109266736579659, + "macro_f1": 0.6234136021853756, + "kappa": 0.7642966739749818, + "per_class_iou": [ + 0.8061330522981268, + 0.7198486670090578, + 0.8757351877577422, + 0.46213693236161063, + 0.8703389461776095, + 0.38416520104311963, + 0.4490553274645572, + 0.6216216216216216, + 0.7901944411308601, + 0.07114146695276376, + 0.5587868716244287, + 0.3175281724644782, + 0.4373326486446833, + 0.2655897022970766, + 0.6168043633350977, + 0.28662647573048294, + 0.0918118400487935, + 0.27714760156231727 + ], + "confusion_matrix": [ + [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + [ + 0, + 1311069, + 6756, + 8420, + 815, + 744, + 883, + 2246, + 19285, + 602, + 381, + 3742, + 6998, + 405, + 29504, + 1126, + 71312, + 1029, + 686, + 0 + ], + [ + 0, + 12671, + 493367, + 5115, + 3930, + 1130, + 1764, + 172, + 746, + 546, + 21217, + 15339, + 437, + 131, + 1045, + 166, + 699, + 2161, + 44, + 0 + ], + [ + 0, + 17785, + 2752, + 641744, + 302, + 960, + 172, + 3539, + 862, + 3810, + 169, + 19, + 2132, + 202, + 3012, + 4846, + 607, + 129, + 5247, + 0 + ], + [ + 0, + 9412, + 46049, + 1786, + 82625, + 1310, + 4247, + 55, + 196, + 62, + 7994, + 4414, + 287, + 376, + 482, + 80, + 252, + 3761, + 4, + 0 + ], + [ + 0, + 2675, + 1166, + 868, + 380, + 120018, + 262, + 124, + 19, + 220, + 688, + 194, + 22, + 35, + 1476, + 29, + 106, + 837, + 0, + 0 + ], + [ + 0, + 4040, + 7283, + 711, + 3621, + 289, + 25338, + 175, + 883, + 118, + 2677, + 5012, + 146, + 454, + 1986, + 330, + 163, + 536, + 0, + 0 + ], + [ + 0, + 1538, + 141, + 3611, + 17, + 249, + 89, + 47797, + 7620, + 3775, + 49, + 378, + 1239, + 1298, + 2624, + 9685, + 632, + 168, + 1023, + 0 + ], + [ + 0, + 18456, + 124, + 4622, + 0, + 0, + 17, + 1317, + 151754, + 0, + 1, + 338, + 854, + 23, + 403, + 328, + 9076, + 0, + 164, + 0 + ], + [ + 0, + 482, + 193, + 1058, + 35, + 123, + 379, + 620, + 116, + 66242, + 0, + 28, + 795, + 26, + 446, + 416, + 71, + 2, + 15, + 0 + ], + [ + 0, + 3092, + 44739, + 412, + 1763, + 216, + 156, + 5, + 11, + 5, + 7062, + 21, + 6, + 0, + 299, + 8, + 83, + 484, + 0, + 0 + ], + [ + 0, + 1322, + 2401, + 20, + 0, + 0, + 1773, + 184, + 1235, + 0, + 143, + 60525, + 38, + 0, + 1508, + 0, + 693, + 4, + 114, + 0 + ], + [ + 0, + 3196, + 123, + 4634, + 46, + 7, + 910, + 9697, + 3978, + 1955, + 63, + 3941, + 25923, + 639, + 1593, + 517, + 2180, + 171, + 1142, + 0 + ], + [ + 0, + 589, + 140, + 1406, + 6, + 31, + 92, + 2996, + 519, + 719, + 7, + 314, + 2523, + 11923, + 406, + 408, + 473, + 9, + 52, + 0 + ], + [ + 0, + 57524, + 1032, + 1194, + 723, + 333, + 1050, + 1045, + 7046, + 405, + 646, + 1114, + 551, + 254, + 47497, + 318, + 6554, + 377, + 131, + 0 + ], + [ + 0, + 1525, + 170, + 6485, + 90, + 129, + 5, + 653, + 17, + 376, + 8, + 2255, + 478, + 3, + 400, + 53604, + 52, + 13, + 2053, + 0 + ], + [ + 0, + 12728, + 331, + 778, + 2, + 0, + 34, + 422, + 10506, + 48, + 33, + 1127, + 965, + 73, + 710, + 23, + 49018, + 5, + 56, + 0 + ], + [ + 0, + 8636, + 11253, + 1214, + 3447, + 3258, + 322, + 34, + 20, + 20, + 6827, + 1, + 610, + 689, + 1495, + 80, + 44, + 4817, + 2, + 0 + ], + [ + 0, + 4694, + 43, + 2183, + 220, + 0, + 39, + 1222, + 3590, + 122, + 2, + 118, + 2844, + 42, + 3653, + 230, + 1161, + 11, + 11850, + 0 + ], + [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ] + ] + }, + "standalone": { + "miou": 0.32453175579426435, + "oa": 0.7043710430954524, + "macro_f1": 0.4441955767489147, + "kappa": 0.6343906959683091, + "per_class_iou": [ + 0.7485525197015596, + 0.5942026297240433, + 0.6723910918292869, + 0.15268789349271186, + 0.7072212077651294, + 0.021234676007005255, + 0.27379463615769956, + 0.48749815463749313, + 0.5086588109543225, + 0.057937764841843944, + 0.37808163026292674, + 0.1294381716773228, + 0.16591601116467902, + 0.1816892340015588, + 0.3652115961346218, + 0.2177487425565127, + 0.044748611272216424, + 0.1345582221158258 + ], + "confusion_matrix": [ + [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + [ + 0, + 1220196, + 8607, + 52503, + 2661, + 5686, + 371, + 4359, + 23019, + 5191, + 2382, + 14087, + 3098, + 438, + 46467, + 2983, + 69095, + 4213, + 647, + 0 + ], + [ + 0, + 13211, + 448478, + 30836, + 13901, + 2132, + 805, + 372, + 4050, + 1111, + 25012, + 10450, + 633, + 49, + 1566, + 1384, + 1112, + 4893, + 685, + 0 + ], + [ + 0, + 21199, + 47664, + 559188, + 3873, + 3012, + 526, + 2157, + 2847, + 9401, + 2085, + 518, + 963, + 277, + 6861, + 10770, + 974, + 5431, + 10543, + 0 + ], + [ + 0, + 7399, + 75281, + 7293, + 33007, + 3933, + 2731, + 162, + 389, + 1090, + 15168, + 6042, + 502, + 724, + 2117, + 1621, + 480, + 5280, + 173, + 0 + ], + [ + 0, + 5165, + 868, + 1139, + 1900, + 109219, + 17, + 159, + 215, + 2475, + 1368, + 213, + 263, + 251, + 885, + 110, + 199, + 4669, + 4, + 0 + ], + [ + 0, + 4019, + 11298, + 2329, + 12680, + 806, + 1358, + 216, + 809, + 1039, + 4199, + 8001, + 65, + 766, + 1321, + 2940, + 398, + 1392, + 126, + 0 + ], + [ + 0, + 1093, + 286, + 4582, + 1178, + 1428, + 160, + 38314, + 8778, + 9508, + 477, + 1044, + 1779, + 1669, + 2593, + 5028, + 1902, + 1588, + 526, + 0 + ], + [ + 0, + 24581, + 78, + 8722, + 14, + 0, + 17, + 12870, + 125483, + 70, + 104, + 2224, + 307, + 27, + 1423, + 2037, + 8334, + 431, + 755, + 0 + ], + [ + 0, + 1025, + 190, + 1979, + 1178, + 2217, + 17, + 1185, + 126, + 59009, + 155, + 129, + 493, + 703, + 105, + 207, + 230, + 2041, + 58, + 0 + ], + [ + 0, + 3247, + 35006, + 3395, + 5170, + 254, + 292, + 131, + 86, + 82, + 6768, + 504, + 196, + 20, + 489, + 1577, + 118, + 1005, + 22, + 0 + ], + [ + 0, + 3004, + 3371, + 169, + 143, + 11, + 3501, + 789, + 2055, + 1, + 385, + 51652, + 37, + 49, + 2242, + 91, + 1484, + 18, + 958, + 0 + ], + [ + 0, + 3060, + 611, + 4821, + 1443, + 798, + 140, + 19414, + 5730, + 2313, + 843, + 4534, + 9515, + 736, + 1631, + 1132, + 1748, + 946, + 1300, + 0 + ], + [ + 0, + 612, + 202, + 2036, + 195, + 87, + 5, + 3786, + 714, + 3647, + 312, + 1650, + 1445, + 5231, + 603, + 1130, + 177, + 548, + 233, + 0 + ], + [ + 0, + 52294, + 792, + 4350, + 679, + 1517, + 999, + 3701, + 7629, + 3212, + 297, + 4085, + 422, + 547, + 37531, + 1563, + 7029, + 777, + 370, + 0 + ], + [ + 0, + 1602, + 776, + 12102, + 832, + 252, + 479, + 2389, + 188, + 2448, + 186, + 2392, + 1224, + 1612, + 1609, + 37264, + 553, + 864, + 1544, + 0 + ], + [ + 0, + 13294, + 299, + 2190, + 37, + 8, + 21, + 2442, + 8504, + 165, + 88, + 8943, + 88, + 13, + 2207, + 561, + 37664, + 204, + 131, + 0 + ], + [ + 0, + 7358, + 8654, + 2319, + 6872, + 3112, + 7, + 42, + 54, + 2611, + 5352, + 54, + 249, + 840, + 1199, + 491, + 55, + 3472, + 28, + 0 + ], + [ + 0, + 1908, + 93, + 2587, + 25, + 62, + 102, + 3830, + 4732, + 598, + 40, + 1786, + 1031, + 194, + 5455, + 93, + 2223, + 520, + 6745, + 0 + ], + [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ] + ] + }, + "delta_test_pp": 0.0, + "standalone_delta_test_pp": -17.00237175126483, + "seconds": 41.0292493281886, + "validation_selection": { + "kind": "temporal_cnv1_k3", + "seed": 3407, + "checkpoint_epoch": 63, + "standalone": { + "miou": 0.34346012177732077, + "oa": 0.673718147834749, + "macro_f1": 0.44136850495727636, + "kappa": 0.6378031880460475, + "per_class_iou": [ + 0.7457516694717411, + 0.6644708752668497, + 0.6450739061303811, + 0.0344748333716387, + 0.7722526106414719, + 0.0068634179821551134, + 0.4754888829359764, + 0.7023994667851589, + 0.2976242530243405, + 0.005257623554153523, + 0.6383144318434512, + 0.04287589324777599, + 0.0, + 0.2883046237533998, + 0.3703118831425187, + 0.3601833660772757, + 0.00878972278566599, + 0.12384473197781885 + ], + "confusion_matrix": [ + [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + [ + 0, + 13736, + 141, + 345, + 10, + 8, + 65, + 61, + 618, + 17, + 22, + 474, + 1, + 3, + 934, + 11, + 296, + 30, + 8, + 0 + ], + [ + 0, + 117, + 10894, + 556, + 349, + 3, + 13, + 1, + 1, + 16, + 144, + 245, + 2, + 0, + 41, + 53, + 25, + 16, + 1, + 0 + ], + [ + 0, + 203, + 901, + 10954, + 176, + 1, + 0, + 249, + 16, + 26, + 9, + 16, + 4, + 16, + 204, + 194, + 43, + 1, + 855, + 0 + ], + [ + 0, + 55, + 1364, + 74, + 150, + 18, + 4, + 0, + 0, + 46, + 195, + 0, + 24, + 18, + 38, + 38, + 0, + 19, + 4, + 0 + ], + [ + 0, + 100, + 3, + 43, + 24, + 4659, + 0, + 0, + 0, + 840, + 26, + 0, + 0, + 0, + 22, + 29, + 0, + 43, + 0, + 0 + ], + [ + 0, + 39, + 188, + 137, + 806, + 0, + 20, + 230, + 161, + 0, + 245, + 369, + 0, + 0, + 117, + 30, + 51, + 13, + 2, + 0 + ], + [ + 0, + 14, + 0, + 45, + 89, + 0, + 0, + 3550, + 116, + 418, + 0, + 57, + 643, + 0, + 31, + 0, + 393, + 0, + 23, + 0 + ], + [ + 0, + 22, + 2, + 0, + 0, + 0, + 0, + 8, + 6323, + 0, + 0, + 54, + 0, + 0, + 26, + 0, + 21, + 0, + 142, + 0 + ], + [ + 0, + 0, + 8, + 66, + 28, + 10, + 0, + 8, + 0, + 2042, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 4, + 0, + 0 + ], + [ + 0, + 94, + 781, + 39, + 71, + 0, + 15, + 0, + 0, + 0, + 10, + 0, + 0, + 0, + 26, + 142, + 23, + 1, + 0, + 0 + ], + [ + 0, + 206, + 271, + 0, + 0, + 0, + 376, + 23, + 26, + 0, + 0, + 5741, + 0, + 0, + 44, + 0, + 47, + 0, + 8, + 0 + ], + [ + 0, + 58, + 22, + 412, + 212, + 195, + 14, + 982, + 298, + 2829, + 42, + 429, + 294, + 2, + 33, + 102, + 15, + 55, + 52, + 0 + ], + [ + 0, + 3, + 21, + 122, + 34, + 0, + 0, + 242, + 24, + 110, + 6, + 25, + 133, + 0, + 48, + 14, + 6, + 0, + 8, + 0 + ], + [ + 0, + 489, + 19, + 28, + 0, + 0, + 19, + 100, + 488, + 27, + 0, + 305, + 4, + 0, + 1590, + 0, + 432, + 0, + 3, + 0 + ], + [ + 0, + 41, + 13, + 656, + 4, + 6, + 0, + 0, + 0, + 51, + 0, + 0, + 0, + 0, + 136, + 938, + 0, + 1, + 63, + 0 + ], + [ + 0, + 54, + 0, + 25, + 0, + 0, + 0, + 67, + 552, + 2, + 0, + 188, + 0, + 0, + 280, + 0, + 1650, + 1, + 10, + 0 + ], + [ + 0, + 76, + 177, + 244, + 499, + 0, + 0, + 0, + 0, + 275, + 11, + 0, + 0, + 0, + 0, + 0, + 0, + 13, + 0, + 0 + ], + [ + 0, + 68, + 7, + 321, + 2, + 3, + 0, + 116, + 104, + 38, + 0, + 90, + 0, + 0, + 31, + 11, + 400, + 0, + 335, + 0 + ], + [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ] + ] + }, + "chosen": { + "mode": "add", + "alpha": 0.0, + "metrics": { + "miou": 0.5256398451814701, + "oa": 0.7954606313128608, + "macro_f1": 0.6400266863319044, + "kappa": 0.7725060156424988, + "per_class_iou": [ + 0.7863696632193052, + 0.7940560621411685, + 0.8422681105804802, + 0.5216035634743875, + 0.8953563366655918, + 0.5666403785488959, + 0.6681021224238696, + 0.6854425749817118, + 0.3865969759193579, + 0.15913978494623657, + 0.8521227955584585, + 0.16817463736895016, + 0.15324165029469547, + 0.3526720731960907, + 0.8232323232323232, + 0.5073836723321259, + 0.010297482837528604, + 0.2888170055452865 + ], + "confusion_matrix": [ + [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + [ + 0, + 14827, + 104, + 46, + 8, + 16, + 20, + 1, + 480, + 0, + 3, + 211, + 80, + 3, + 659, + 16, + 296, + 4, + 6, + 0 + ], + [ + 0, + 160, + 11756, + 93, + 27, + 17, + 59, + 3, + 0, + 18, + 25, + 184, + 13, + 1, + 99, + 0, + 10, + 4, + 8, + 0 + ], + [ + 0, + 165, + 132, + 12522, + 19, + 10, + 2, + 144, + 0, + 31, + 1, + 0, + 2, + 6, + 113, + 137, + 34, + 11, + 539, + 0 + ], + [ + 0, + 23, + 477, + 28, + 1171, + 50, + 1, + 0, + 0, + 0, + 130, + 0, + 18, + 10, + 0, + 2, + 6, + 128, + 3, + 0 + ], + [ + 0, + 83, + 1, + 23, + 0, + 5553, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 19, + 8, + 1, + 101, + 0, + 0 + ], + [ + 0, + 96, + 76, + 5, + 7, + 0, + 1437, + 49, + 253, + 0, + 0, + 217, + 0, + 0, + 77, + 0, + 5, + 186, + 0, + 0 + ], + [ + 0, + 7, + 0, + 14, + 0, + 0, + 10, + 4344, + 415, + 65, + 0, + 10, + 472, + 0, + 33, + 1, + 4, + 0, + 4, + 0 + ], + [ + 0, + 29, + 0, + 0, + 0, + 0, + 0, + 0, + 6559, + 0, + 0, + 9, + 0, + 0, + 0, + 0, + 1, + 0, + 0, + 0 + ], + [ + 0, + 6, + 20, + 6, + 0, + 1, + 0, + 26, + 0, + 2071, + 0, + 0, + 16, + 14, + 5, + 1, + 0, + 0, + 0, + 0 + ], + [ + 0, + 34, + 886, + 0, + 14, + 0, + 2, + 0, + 0, + 5, + 222, + 0, + 0, + 0, + 5, + 0, + 30, + 4, + 0, + 0 + ], + [ + 0, + 17, + 0, + 0, + 91, + 0, + 14, + 5, + 10, + 0, + 0, + 6523, + 0, + 0, + 13, + 0, + 63, + 0, + 6, + 0 + ], + [ + 0, + 107, + 18, + 205, + 0, + 3, + 10, + 473, + 524, + 2954, + 6, + 129, + 1171, + 188, + 120, + 47, + 11, + 8, + 72, + 0 + ], + [ + 0, + 1, + 44, + 53, + 0, + 0, + 0, + 189, + 8, + 36, + 1, + 71, + 216, + 156, + 12, + 2, + 7, + 0, + 0, + 0 + ], + [ + 0, + 1027, + 18, + 38, + 0, + 0, + 10, + 43, + 402, + 0, + 0, + 58, + 0, + 0, + 1696, + 0, + 205, + 7, + 0, + 0 + ], + [ + 0, + 28, + 6, + 32, + 4, + 6, + 0, + 0, + 0, + 40, + 0, + 0, + 0, + 0, + 0, + 1793, + 0, + 0, + 0, + 0 + ], + [ + 0, + 51, + 0, + 8, + 0, + 0, + 0, + 19, + 875, + 0, + 0, + 14, + 0, + 0, + 41, + 0, + 1821, + 0, + 0, + 0 + ], + [ + 0, + 230, + 546, + 75, + 28, + 310, + 0, + 0, + 0, + 42, + 27, + 0, + 0, + 0, + 0, + 4, + 15, + 18, + 0, + 0 + ], + [ + 0, + 11, + 0, + 373, + 0, + 0, + 0, + 171, + 4, + 0, + 0, + 10, + 100, + 0, + 109, + 51, + 72, + 0, + 625, + 0 + ], + [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ] + ] + } + }, + "records": [ + { + "mode": "add", + "alpha": 0.0, + "metrics": { + "miou": 0.5256398451814701, + "oa": 0.7954606313128608, + "macro_f1": 0.6400266863319044, + "kappa": 0.7725060156424988, + "per_class_iou": [ + 0.7863696632193052, + 0.7940560621411685, + 0.8422681105804802, + 0.5216035634743875, + 0.8953563366655918, + 0.5666403785488959, + 0.6681021224238696, + 0.6854425749817118, + 0.3865969759193579, + 0.15913978494623657, + 0.8521227955584585, + 0.16817463736895016, + 0.15324165029469547, + 0.3526720731960907, + 0.8232323232323232, + 0.5073836723321259, + 0.010297482837528604, + 0.2888170055452865 + ], + "confusion_matrix": [ + [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + [ + 0, + 14827, + 104, + 46, + 8, + 16, + 20, + 1, + 480, + 0, + 3, + 211, + 80, + 3, + 659, + 16, + 296, + 4, + 6, + 0 + ], + [ + 0, + 160, + 11756, + 93, + 27, + 17, + 59, + 3, + 0, + 18, + 25, + 184, + 13, + 1, + 99, + 0, + 10, + 4, + 8, + 0 + ], + [ + 0, + 165, + 132, + 12522, + 19, + 10, + 2, + 144, + 0, + 31, + 1, + 0, + 2, + 6, + 113, + 137, + 34, + 11, + 539, + 0 + ], + [ + 0, + 23, + 477, + 28, + 1171, + 50, + 1, + 0, + 0, + 0, + 130, + 0, + 18, + 10, + 0, + 2, + 6, + 128, + 3, + 0 + ], + [ + 0, + 83, + 1, + 23, + 0, + 5553, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 19, + 8, + 1, + 101, + 0, + 0 + ], + [ + 0, + 96, + 76, + 5, + 7, + 0, + 1437, + 49, + 253, + 0, + 0, + 217, + 0, + 0, + 77, + 0, + 5, + 186, + 0, + 0 + ], + [ + 0, + 7, + 0, + 14, + 0, + 0, + 10, + 4344, + 415, + 65, + 0, + 10, + 472, + 0, + 33, + 1, + 4, + 0, + 4, + 0 + ], + [ + 0, + 29, + 0, + 0, + 0, + 0, + 0, + 0, + 6559, + 0, + 0, + 9, + 0, + 0, + 0, + 0, + 1, + 0, + 0, + 0 + ], + [ + 0, + 6, + 20, + 6, + 0, + 1, + 0, + 26, + 0, + 2071, + 0, + 0, + 16, + 14, + 5, + 1, + 0, + 0, + 0, + 0 + ], + [ + 0, + 34, + 886, + 0, + 14, + 0, + 2, + 0, + 0, + 5, + 222, + 0, + 0, + 0, + 5, + 0, + 30, + 4, + 0, + 0 + ], + [ + 0, + 17, + 0, + 0, + 91, + 0, + 14, + 5, + 10, + 0, + 0, + 6523, + 0, + 0, + 13, + 0, + 63, + 0, + 6, + 0 + ], + [ + 0, + 107, + 18, + 205, + 0, + 3, + 10, + 473, + 524, + 2954, + 6, + 129, + 1171, + 188, + 120, + 47, + 11, + 8, + 72, + 0 + ], + [ + 0, + 1, + 44, + 53, + 0, + 0, + 0, + 189, + 8, + 36, + 1, + 71, + 216, + 156, + 12, + 2, + 7, + 0, + 0, + 0 + ], + [ + 0, + 1027, + 18, + 38, + 0, + 0, + 10, + 43, + 402, + 0, + 0, + 58, + 0, + 0, + 1696, + 0, + 205, + 7, + 0, + 0 + ], + [ + 0, + 28, + 6, + 32, + 4, + 6, + 0, + 0, + 0, + 40, + 0, + 0, + 0, + 0, + 0, + 1793, + 0, + 0, + 0, + 0 + ], + [ + 0, + 51, + 0, + 8, + 0, + 0, + 0, + 19, + 875, + 0, + 0, + 14, + 0, + 0, + 41, + 0, + 1821, + 0, + 0, + 0 + ], + [ + 0, + 230, + 546, + 75, + 28, + 310, + 0, + 0, + 0, + 42, + 27, + 0, + 0, + 0, + 0, + 4, + 15, + 18, + 0, + 0 + ], + [ + 0, + 11, + 0, + 373, + 0, + 0, + 0, + 171, + 4, + 0, + 0, + 10, + 100, + 0, + 109, + 51, + 72, + 0, + 625, + 0 + ], + [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ] + ] + } + }, + { + "mode": "add", + "alpha": 0.1, + "metrics": { + "miou": 0.5182074685098821, + "oa": 0.7914546759353477, + "macro_f1": 0.632549565193289, + "kappa": 0.7680034125166677, + "per_class_iou": [ + 0.786032926181625, + 0.7895796965220895, + 0.8354134685977441, + 0.5091395452518948, + 0.8949152542372881, + 0.5427215189873418, + 0.653892395551548, + 0.6903157894736842, + 0.3792411528639183, + 0.15345080763582966, + 0.8436935775083828, + 0.13629862700228834, + 0.15212981744421908, + 0.35157718821809064, + 0.8060992262175695, + 0.5087330191294704, + 0.006436512580456407, + 0.2880639097744361 + ], + "confusion_matrix": [ + [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + [ + 0, + 14801, + 105, + 47, + 4, + 15, + 27, + 0, + 493, + 0, + 3, + 211, + 77, + 3, + 671, + 14, + 300, + 4, + 5, + 0 + ], + [ + 0, + 163, + 11760, + 104, + 30, + 17, + 56, + 2, + 0, + 16, + 14, + 187, + 13, + 1, + 93, + 0, + 11, + 3, + 7, + 0 + ], + [ + 0, + 161, + 132, + 12517, + 12, + 10, + 2, + 163, + 0, + 33, + 1, + 0, + 0, + 4, + 129, + 145, + 25, + 9, + 525, + 0 + ], + [ + 0, + 33, + 550, + 34, + 1142, + 49, + 0, + 0, + 0, + 0, + 112, + 0, + 16, + 6, + 0, + 2, + 6, + 96, + 1, + 0 + ], + [ + 0, + 90, + 1, + 26, + 0, + 5544, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 19, + 8, + 0, + 101, + 0, + 0 + ], + [ + 0, + 87, + 75, + 5, + 9, + 0, + 1372, + 81, + 248, + 0, + 0, + 257, + 0, + 0, + 82, + 0, + 6, + 186, + 0, + 0 + ], + [ + 0, + 10, + 0, + 15, + 0, + 0, + 6, + 4351, + 380, + 55, + 0, + 16, + 525, + 0, + 15, + 1, + 4, + 0, + 1, + 0 + ], + [ + 0, + 27, + 0, + 0, + 0, + 0, + 0, + 0, + 6558, + 0, + 0, + 11, + 0, + 0, + 0, + 0, + 2, + 0, + 0, + 0 + ], + [ + 0, + 5, + 20, + 15, + 0, + 1, + 0, + 21, + 0, + 2079, + 0, + 0, + 13, + 8, + 4, + 0, + 0, + 0, + 0, + 0 + ], + [ + 0, + 38, + 896, + 0, + 16, + 0, + 2, + 0, + 0, + 4, + 209, + 0, + 0, + 0, + 5, + 0, + 28, + 4, + 0, + 0 + ], + [ + 0, + 13, + 0, + 0, + 82, + 0, + 12, + 5, + 10, + 0, + 0, + 6542, + 0, + 0, + 12, + 0, + 61, + 0, + 5, + 0 + ], + [ + 0, + 109, + 16, + 228, + 0, + 1, + 6, + 568, + 496, + 3090, + 6, + 161, + 953, + 168, + 97, + 72, + 9, + 8, + 58, + 0 + ], + [ + 0, + 1, + 46, + 61, + 0, + 0, + 0, + 206, + 10, + 33, + 1, + 64, + 205, + 150, + 10, + 2, + 7, + 0, + 0, + 0 + ], + [ + 0, + 1019, + 17, + 38, + 0, + 0, + 9, + 39, + 404, + 0, + 0, + 68, + 0, + 0, + 1683, + 0, + 224, + 3, + 0, + 0 + ], + [ + 0, + 29, + 6, + 53, + 4, + 6, + 0, + 0, + 0, + 40, + 0, + 0, + 0, + 0, + 0, + 1771, + 0, + 0, + 0, + 0 + ], + [ + 0, + 49, + 0, + 10, + 0, + 0, + 0, + 20, + 855, + 0, + 0, + 20, + 0, + 0, + 40, + 0, + 1835, + 0, + 0, + 0 + ], + [ + 0, + 201, + 553, + 101, + 39, + 307, + 0, + 0, + 0, + 45, + 23, + 0, + 0, + 0, + 0, + 2, + 13, + 11, + 0, + 0 + ], + [ + 0, + 15, + 0, + 378, + 0, + 0, + 0, + 170, + 6, + 0, + 0, + 17, + 97, + 0, + 106, + 42, + 82, + 0, + 613, + 0 + ], + [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ] + ] + } + }, + { + "mode": "add", + "alpha": 0.25, + "metrics": { + "miou": 0.49403197271012833, + "oa": 0.7806043208620301, + "macro_f1": 0.6084927904416739, + "kappa": 0.7557879449863211, + "per_class_iou": [ + 0.7819953151618398, + 0.776977466464019, + 0.8147954856807359, + 0.38564058469475493, + 0.8984425697598962, + 0.5065920894926089, + 0.631281679942071, + 0.6953754773016546, + 0.37524734664508, + 0.11634756995581738, + 0.8252170630426576, + 0.1014575593026579, + 0.13626373626373625, + 0.33685300207039337, + 0.741834451901566, + 0.4936708860759494, + 0.0036496350364963502, + 0.27093358999037537 + ], + "confusion_matrix": [ + [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + [ + 0, + 14689, + 108, + 56, + 1, + 12, + 31, + 0, + 534, + 0, + 0, + 228, + 68, + 2, + 722, + 14, + 312, + 0, + 3, + 0 + ], + [ + 0, + 148, + 11758, + 135, + 45, + 16, + 40, + 1, + 0, + 15, + 8, + 192, + 10, + 1, + 85, + 0, + 18, + 1, + 4, + 0 + ], + [ + 0, + 149, + 130, + 12490, + 9, + 9, + 2, + 181, + 0, + 33, + 1, + 0, + 0, + 2, + 148, + 169, + 24, + 9, + 512, + 0 + ], + [ + 0, + 43, + 824, + 41, + 897, + 49, + 0, + 0, + 0, + 0, + 111, + 0, + 20, + 2, + 0, + 1, + 0, + 59, + 0, + 0 + ], + [ + 0, + 98, + 2, + 31, + 0, + 5538, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 19, + 4, + 0, + 97, + 0, + 0 + ], + [ + 0, + 78, + 63, + 12, + 19, + 0, + 1268, + 133, + 241, + 0, + 22, + 299, + 0, + 0, + 96, + 0, + 6, + 171, + 0, + 0 + ], + [ + 0, + 13, + 0, + 13, + 0, + 0, + 4, + 4359, + 326, + 32, + 0, + 26, + 583, + 0, + 3, + 0, + 19, + 0, + 1, + 0 + ], + [ + 0, + 24, + 0, + 0, + 0, + 0, + 0, + 0, + 6556, + 0, + 0, + 14, + 0, + 0, + 1, + 0, + 3, + 0, + 0, + 0 + ], + [ + 0, + 0, + 19, + 45, + 2, + 0, + 0, + 9, + 0, + 2086, + 0, + 0, + 0, + 0, + 5, + 0, + 0, + 0, + 0, + 0 + ], + [ + 0, + 50, + 929, + 2, + 28, + 0, + 1, + 0, + 0, + 0, + 158, + 0, + 0, + 0, + 5, + 0, + 27, + 2, + 0, + 0 + ], + [ + 0, + 7, + 1, + 0, + 69, + 0, + 13, + 5, + 10, + 0, + 0, + 6558, + 0, + 0, + 13, + 0, + 61, + 0, + 5, + 0 + ], + [ + 0, + 104, + 15, + 288, + 0, + 0, + 0, + 764, + 445, + 3156, + 5, + 243, + 710, + 107, + 53, + 106, + 13, + 10, + 27, + 0 + ], + [ + 0, + 3, + 41, + 101, + 2, + 0, + 0, + 210, + 15, + 38, + 1, + 50, + 185, + 124, + 18, + 1, + 7, + 0, + 0, + 0 + ], + [ + 0, + 1010, + 14, + 38, + 0, + 0, + 4, + 36, + 409, + 0, + 0, + 92, + 0, + 0, + 1627, + 0, + 274, + 0, + 0, + 0 + ], + [ + 0, + 35, + 6, + 154, + 3, + 5, + 0, + 0, + 0, + 47, + 0, + 0, + 0, + 0, + 1, + 1658, + 0, + 0, + 0, + 0 + ], + [ + 0, + 39, + 0, + 20, + 0, + 0, + 0, + 18, + 831, + 0, + 0, + 26, + 0, + 0, + 62, + 0, + 1833, + 0, + 0, + 0 + ], + [ + 0, + 176, + 504, + 135, + 101, + 284, + 0, + 0, + 0, + 72, + 8, + 0, + 0, + 0, + 0, + 0, + 9, + 6, + 0, + 0 + ], + [ + 0, + 27, + 0, + 390, + 0, + 0, + 0, + 169, + 19, + 0, + 0, + 35, + 86, + 0, + 95, + 31, + 111, + 0, + 563, + 0 + ], + [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ] + ] + } + }, + { + "mode": "add", + "alpha": 0.5, + "metrics": { + "miou": 0.4310982473091249, + "oa": 0.749177922258759, + "macro_f1": 0.5367979591251394, + "kappa": 0.7207019891783092, + "per_class_iou": [ + 0.7751060061188342, + 0.75208319875977, + 0.7547111523015138, + 0.11947791164658635, + 0.9360691877225708, + 0.3195219123505976, + 0.586585196500486, + 0.7015229515229515, + 0.3493024037653387, + 0.0461441213653603, + 0.7766172106824926, + 0.06092037983929876, + 0.03329223181257707, + 0.294298605414274, + 0.5857205817540767, + 0.43868153174987884, + 0.007853403141361256, + 0.22186046511627908 + ], + "confusion_matrix": [ + [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + [ + 0, + 14441, + 103, + 128, + 5, + 7, + 41, + 2, + 623, + 0, + 3, + 355, + 46, + 3, + 700, + 22, + 298, + 1, + 2, + 0 + ], + [ + 0, + 126, + 11643, + 233, + 95, + 15, + 26, + 0, + 0, + 12, + 6, + 207, + 2, + 0, + 74, + 0, + 31, + 6, + 1, + 0 + ], + [ + 0, + 168, + 224, + 12215, + 58, + 7, + 0, + 195, + 2, + 24, + 4, + 1, + 0, + 4, + 169, + 181, + 30, + 0, + 586, + 0 + ], + [ + 0, + 47, + 1317, + 63, + 357, + 21, + 0, + 0, + 0, + 32, + 147, + 0, + 22, + 0, + 21, + 0, + 0, + 19, + 1, + 0 + ], + [ + 0, + 88, + 1, + 39, + 13, + 5520, + 0, + 0, + 0, + 31, + 6, + 0, + 0, + 0, + 21, + 0, + 1, + 69, + 0, + 0 + ], + [ + 0, + 65, + 43, + 54, + 222, + 0, + 802, + 202, + 208, + 0, + 209, + 358, + 0, + 0, + 103, + 0, + 22, + 120, + 0, + 0 + ], + [ + 0, + 10, + 0, + 29, + 9, + 0, + 3, + 4224, + 242, + 102, + 0, + 42, + 516, + 0, + 12, + 0, + 186, + 0, + 4, + 0 + ], + [ + 0, + 18, + 0, + 0, + 0, + 0, + 0, + 0, + 6541, + 0, + 0, + 26, + 0, + 0, + 7, + 0, + 6, + 0, + 0, + 0 + ], + [ + 0, + 0, + 17, + 54, + 7, + 3, + 0, + 6, + 0, + 2078, + 0, + 0, + 0, + 0, + 1, + 0, + 0, + 0, + 0, + 0 + ], + [ + 0, + 83, + 952, + 21, + 49, + 0, + 0, + 0, + 0, + 0, + 73, + 0, + 0, + 0, + 7, + 3, + 14, + 0, + 0, + 0 + ], + [ + 0, + 26, + 2, + 0, + 38, + 0, + 27, + 14, + 14, + 0, + 0, + 6543, + 0, + 0, + 22, + 0, + 54, + 0, + 2, + 0 + ], + [ + 0, + 67, + 10, + 434, + 35, + 0, + 0, + 937, + 363, + 3184, + 3, + 369, + 417, + 8, + 37, + 127, + 14, + 17, + 24, + 0 + ], + [ + 0, + 5, + 22, + 114, + 18, + 0, + 0, + 248, + 17, + 88, + 2, + 36, + 165, + 27, + 36, + 6, + 8, + 0, + 4, + 0 + ], + [ + 0, + 955, + 12, + 34, + 0, + 0, + 5, + 33, + 437, + 14, + 0, + 167, + 0, + 0, + 1435, + 0, + 412, + 0, + 0, + 0 + ], + [ + 0, + 37, + 2, + 471, + 2, + 6, + 0, + 0, + 0, + 56, + 0, + 0, + 0, + 0, + 5, + 1329, + 0, + 1, + 0, + 0 + ], + [ + 0, + 33, + 0, + 25, + 0, + 0, + 0, + 30, + 771, + 1, + 0, + 56, + 0, + 0, + 103, + 0, + 1810, + 0, + 0, + 0 + ], + [ + 0, + 80, + 295, + 230, + 390, + 49, + 0, + 0, + 0, + 238, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 12, + 0, + 0 + ], + [ + 0, + 43, + 4, + 388, + 0, + 0, + 0, + 155, + 49, + 1, + 0, + 66, + 48, + 0, + 54, + 21, + 220, + 0, + 477, + 0 + ], + [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ] + ] + } + }, + { + "mode": "replace", + "alpha": 0.1, + "metrics": { + "miou": 0.5167921102592491, + "oa": 0.7871059650175126, + "macro_f1": 0.6306392634403148, + "kappa": 0.7635368741626501, + "per_class_iou": [ + 0.7829122694808656, + 0.8065155033465373, + 0.8002691790040377, + 0.54, + 0.900355871886121, + 0.5631105900742478, + 0.6191479753123589, + 0.6917483401833702, + 0.3872053872053872, + 0.14882032667876588, + 0.8457364341085272, + 0.19236130471145804, + 0.11154219204655674, + 0.3314707643184993, + 0.8297373358348968, + 0.5075177304964539, + 0.01852995676343422, + 0.22527682321496756 + ], + "confusion_matrix": [ + [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + [ + 0, + 14689, + 122, + 53, + 56, + 14, + 48, + 3, + 502, + 0, + 3, + 214, + 85, + 3, + 716, + 19, + 245, + 5, + 3, + 0 + ], + [ + 0, + 104, + 11809, + 91, + 14, + 14, + 51, + 3, + 0, + 16, + 46, + 188, + 20, + 5, + 95, + 0, + 9, + 4, + 8, + 0 + ], + [ + 0, + 171, + 119, + 11892, + 21, + 11, + 3, + 208, + 1, + 33, + 0, + 0, + 2, + 6, + 203, + 126, + 38, + 1, + 1033, + 0 + ], + [ + 0, + 29, + 387, + 37, + 1215, + 42, + 5, + 0, + 0, + 0, + 278, + 0, + 15, + 3, + 0, + 0, + 20, + 13, + 3, + 0 + ], + [ + 0, + 72, + 6, + 26, + 0, + 5566, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 19, + 8, + 0, + 92, + 0, + 0 + ], + [ + 0, + 61, + 70, + 4, + 21, + 0, + 1441, + 37, + 237, + 0, + 2, + 266, + 0, + 0, + 85, + 0, + 5, + 179, + 0, + 0 + ], + [ + 0, + 5, + 1, + 8, + 0, + 0, + 13, + 4113, + 312, + 114, + 0, + 13, + 708, + 0, + 66, + 1, + 9, + 0, + 16, + 0 + ], + [ + 0, + 19, + 0, + 0, + 0, + 0, + 0, + 0, + 6564, + 0, + 0, + 13, + 0, + 0, + 0, + 0, + 2, + 0, + 0, + 0 + ], + [ + 0, + 2, + 21, + 8, + 0, + 0, + 0, + 21, + 0, + 2070, + 0, + 0, + 22, + 19, + 3, + 0, + 0, + 0, + 0, + 0 + ], + [ + 0, + 27, + 880, + 0, + 4, + 0, + 1, + 0, + 0, + 5, + 246, + 0, + 0, + 0, + 5, + 0, + 32, + 2, + 0, + 0 + ], + [ + 0, + 8, + 2, + 0, + 64, + 0, + 18, + 4, + 11, + 0, + 0, + 6546, + 0, + 0, + 16, + 0, + 65, + 0, + 8, + 0 + ], + [ + 0, + 115, + 17, + 147, + 1, + 5, + 2, + 476, + 490, + 2892, + 0, + 123, + 1380, + 199, + 144, + 13, + 10, + 12, + 20, + 0 + ], + [ + 0, + 2, + 45, + 52, + 0, + 2, + 0, + 204, + 7, + 40, + 1, + 97, + 206, + 115, + 14, + 4, + 5, + 0, + 2, + 0 + ], + [ + 0, + 1026, + 18, + 37, + 0, + 3, + 9, + 52, + 436, + 0, + 0, + 68, + 0, + 0, + 1661, + 0, + 178, + 16, + 0, + 0 + ], + [ + 0, + 28, + 8, + 52, + 7, + 6, + 0, + 1, + 0, + 38, + 0, + 0, + 0, + 0, + 0, + 1769, + 0, + 0, + 0, + 0 + ], + [ + 0, + 55, + 0, + 6, + 0, + 0, + 0, + 48, + 895, + 0, + 0, + 7, + 0, + 0, + 29, + 0, + 1789, + 0, + 0, + 0 + ], + [ + 0, + 243, + 469, + 46, + 15, + 296, + 0, + 0, + 0, + 42, + 121, + 0, + 0, + 0, + 0, + 4, + 29, + 30, + 0, + 0 + ], + [ + 0, + 15, + 0, + 425, + 0, + 0, + 1, + 207, + 0, + 0, + 0, + 9, + 70, + 0, + 112, + 48, + 49, + 0, + 590, + 0 + ], + [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ] + ] + } + }, + { + "mode": "replace", + "alpha": 0.25, + "metrics": { + "miou": 0.5016742412669202, + "oa": 0.7813005430533092, + "macro_f1": 0.6153761747668886, + "kappa": 0.7569062589365165, + "per_class_iou": [ + 0.7812533361802071, + 0.7981217485305047, + 0.7926370653823316, + 0.47381864623243936, + 0.9033674963396779, + 0.5164486722156163, + 0.6169313711205012, + 0.6956429555814693, + 0.377467850027169, + 0.14209827357237717, + 0.8248211820805622, + 0.14608646510313647, + 0.10083160083160084, + 0.336105476673428, + 0.7946302402260952, + 0.5029174770769658, + 0.005628517823639775, + 0.22132796780684105 + ], + "confusion_matrix": [ + [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + [ + 0, + 14636, + 120, + 58, + 33, + 14, + 49, + 1, + 531, + 0, + 3, + 243, + 77, + 3, + 729, + 17, + 261, + 4, + 1, + 0 + ], + [ + 0, + 106, + 11813, + 122, + 31, + 14, + 40, + 2, + 0, + 16, + 18, + 192, + 10, + 2, + 87, + 0, + 14, + 4, + 6, + 0 + ], + [ + 0, + 160, + 112, + 12014, + 20, + 9, + 2, + 235, + 0, + 32, + 0, + 0, + 0, + 3, + 200, + 136, + 27, + 3, + 915, + 0 + ], + [ + 0, + 46, + 564, + 42, + 1113, + 42, + 1, + 0, + 0, + 0, + 203, + 0, + 17, + 0, + 0, + 0, + 8, + 8, + 3, + 0 + ], + [ + 0, + 90, + 6, + 27, + 0, + 5553, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 19, + 8, + 0, + 86, + 0, + 0 + ], + [ + 0, + 57, + 68, + 12, + 36, + 0, + 1303, + 74, + 253, + 0, + 7, + 318, + 0, + 0, + 98, + 0, + 6, + 176, + 0, + 0 + ], + [ + 0, + 6, + 0, + 10, + 0, + 0, + 3, + 4234, + 265, + 97, + 0, + 27, + 682, + 0, + 32, + 0, + 17, + 0, + 6, + 0 + ], + [ + 0, + 16, + 0, + 0, + 0, + 0, + 0, + 0, + 6562, + 0, + 0, + 18, + 0, + 0, + 0, + 0, + 2, + 0, + 0, + 0 + ], + [ + 0, + 0, + 20, + 45, + 1, + 0, + 0, + 11, + 0, + 2084, + 0, + 0, + 1, + 1, + 3, + 0, + 0, + 0, + 0, + 0 + ], + [ + 0, + 30, + 899, + 4, + 13, + 0, + 1, + 0, + 0, + 1, + 214, + 0, + 0, + 0, + 5, + 1, + 33, + 1, + 0, + 0 + ], + [ + 0, + 6, + 3, + 0, + 55, + 0, + 13, + 2, + 10, + 0, + 0, + 6573, + 0, + 0, + 13, + 0, + 60, + 0, + 7, + 0 + ], + [ + 0, + 112, + 15, + 192, + 5, + 2, + 0, + 632, + 490, + 3061, + 0, + 207, + 1034, + 157, + 92, + 8, + 9, + 10, + 20, + 0 + ], + [ + 0, + 2, + 45, + 75, + 4, + 0, + 0, + 232, + 12, + 39, + 1, + 84, + 185, + 97, + 9, + 4, + 6, + 0, + 1, + 0 + ], + [ + 0, + 1018, + 15, + 38, + 0, + 2, + 6, + 41, + 411, + 0, + 0, + 89, + 0, + 0, + 1657, + 0, + 215, + 12, + 0, + 0 + ], + [ + 0, + 29, + 8, + 134, + 6, + 6, + 0, + 1, + 0, + 38, + 0, + 0, + 0, + 0, + 0, + 1687, + 0, + 0, + 0, + 0 + ], + [ + 0, + 50, + 0, + 8, + 0, + 0, + 0, + 45, + 857, + 0, + 0, + 20, + 0, + 0, + 39, + 0, + 1810, + 0, + 0, + 0 + ], + [ + 0, + 209, + 449, + 91, + 98, + 269, + 0, + 0, + 0, + 71, + 72, + 0, + 0, + 0, + 0, + 1, + 26, + 9, + 0, + 0 + ], + [ + 0, + 17, + 0, + 431, + 0, + 0, + 0, + 208, + 6, + 0, + 0, + 29, + 60, + 0, + 100, + 39, + 86, + 0, + 550, + 0 + ], + [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ] + ] + } + }, + { + "mode": "replace", + "alpha": 0.5, + "metrics": { + "miou": 0.4360680383987605, + "oa": 0.7498527222287679, + "macro_f1": 0.5433641250986441, + "kappa": 0.7216336968631941, + "per_class_iou": [ + 0.7771201033146793, + 0.7577035355173533, + 0.745483991528591, + 0.12956810631229235, + 0.9428669175504618, + 0.3272583201267829, + 0.5822418309664966, + 0.7033616152937386, + 0.3473103909121283, + 0.07530864197530865, + 0.7780548628428927, + 0.07368268674001158, + 0.039568345323741004, + 0.3114754098360656, + 0.6065795403334836, + 0.448779260005034, + 0.005917159763313609, + 0.1969439728353141 + ], + "confusion_matrix": [ + [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + [ + 0, + 14442, + 113, + 125, + 2, + 9, + 52, + 2, + 620, + 1, + 3, + 357, + 49, + 3, + 695, + 26, + 278, + 2, + 1, + 0 + ], + [ + 0, + 105, + 11680, + 231, + 70, + 15, + 21, + 0, + 0, + 15, + 8, + 201, + 2, + 1, + 91, + 0, + 26, + 9, + 2, + 0 + ], + [ + 0, + 152, + 241, + 11968, + 61, + 7, + 1, + 231, + 2, + 23, + 6, + 1, + 0, + 6, + 196, + 162, + 28, + 0, + 783, + 0 + ], + [ + 0, + 49, + 1243, + 69, + 390, + 11, + 0, + 0, + 0, + 34, + 205, + 0, + 21, + 0, + 9, + 0, + 0, + 14, + 2, + 0 + ], + [ + 0, + 101, + 2, + 38, + 10, + 5512, + 0, + 0, + 0, + 44, + 5, + 0, + 0, + 0, + 21, + 2, + 0, + 54, + 0, + 0 + ], + [ + 0, + 57, + 54, + 40, + 243, + 0, + 826, + 176, + 210, + 0, + 191, + 362, + 0, + 0, + 105, + 0, + 18, + 126, + 0, + 0 + ], + [ + 0, + 8, + 0, + 15, + 11, + 0, + 3, + 4223, + 200, + 133, + 0, + 42, + 595, + 0, + 12, + 0, + 133, + 0, + 4, + 0 + ], + [ + 0, + 13, + 0, + 0, + 0, + 0, + 0, + 0, + 6549, + 0, + 0, + 24, + 0, + 0, + 4, + 0, + 8, + 0, + 0, + 0 + ], + [ + 0, + 0, + 18, + 54, + 8, + 2, + 0, + 5, + 0, + 2079, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + [ + 0, + 49, + 940, + 15, + 43, + 0, + 0, + 0, + 0, + 0, + 122, + 0, + 0, + 0, + 8, + 3, + 22, + 0, + 0, + 0 + ], + [ + 0, + 37, + 3, + 0, + 23, + 0, + 32, + 13, + 10, + 0, + 0, + 6552, + 0, + 0, + 17, + 0, + 53, + 0, + 2, + 0 + ], + [ + 0, + 84, + 11, + 359, + 35, + 0, + 0, + 919, + 381, + 3161, + 0, + 357, + 509, + 28, + 45, + 93, + 11, + 21, + 32, + 0 + ], + [ + 0, + 3, + 26, + 105, + 17, + 0, + 0, + 264, + 16, + 73, + 0, + 51, + 162, + 33, + 30, + 4, + 8, + 0, + 4, + 0 + ], + [ + 0, + 936, + 12, + 34, + 0, + 0, + 7, + 35, + 418, + 20, + 0, + 168, + 0, + 0, + 1520, + 0, + 354, + 0, + 0, + 0 + ], + [ + 0, + 35, + 2, + 465, + 2, + 5, + 0, + 0, + 0, + 50, + 0, + 0, + 0, + 0, + 4, + 1346, + 0, + 0, + 0, + 0 + ], + [ + 0, + 35, + 0, + 23, + 0, + 0, + 0, + 44, + 811, + 2, + 0, + 47, + 0, + 0, + 84, + 0, + 1783, + 0, + 0, + 0 + ], + [ + 0, + 99, + 269, + 203, + 438, + 8, + 0, + 0, + 0, + 263, + 0, + 0, + 0, + 0, + 0, + 0, + 6, + 9, + 0, + 0 + ], + [ + 0, + 41, + 4, + 410, + 0, + 0, + 0, + 185, + 45, + 1, + 0, + 69, + 33, + 0, + 55, + 20, + 199, + 0, + 464, + 0 + ], + [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ] + ] + } + } + ], + "reference_val_miou": 0.5256398451814701, + "delta_val_pp": 0.0, + "patch_bootstrap_delta_interval_pp": [ + 0.0, + 0.0 + ], + "bootstrap_caveat": "descriptive, after validation selection; not an independent significance test", + "selection_split": "validation", + "test_used_for_selection": false + }, + "test_policy": "exploratory all-variants sweep explicitly requested by user; no test retuning", + "patches": 482 +} \ No newline at end of file diff --git a/ablations/10_plateau_breakthrough/workspace/convnext_research_20261010/32X32_temporal_cnv1_k7_seed3407/best.tar b/ablations/10_plateau_breakthrough/workspace/convnext_research_20261010/32X32_temporal_cnv1_k7_seed3407/best.tar new file mode 100644 index 0000000000000000000000000000000000000000..c6a57bbe8f8b48958f0defb2bced0d61fbeb5313 --- /dev/null +++ b/ablations/10_plateau_breakthrough/workspace/convnext_research_20261010/32X32_temporal_cnv1_k7_seed3407/best.tar @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:82abb5fed8997b08055cc2a3762f6d64a2b4be416ffe332a180694d57e4293fc +size 593806 diff --git a/ablations/10_plateau_breakthrough/workspace/convnext_research_20261010/32X32_temporal_cnv1_k7_seed3407/config.json b/ablations/10_plateau_breakthrough/workspace/convnext_research_20261010/32X32_temporal_cnv1_k7_seed3407/config.json new file mode 100644 index 0000000000000000000000000000000000000000..be60a152ca4f06cea98784cce305580995588005 --- /dev/null +++ b/ablations/10_plateau_breakthrough/workspace/convnext_research_20261010/32X32_temporal_cnv1_k7_seed3407/config.json @@ -0,0 +1,13 @@ +{ + "kind": "temporal_cnv1_k7", + "seed": 3407, + "epochs": 100, + "parameters": 145298, + "lr": 0.001, + "wd": 0.01, + "warmup_epochs": 3, + "clip": 1.0, + "label_smoothing": 0.05, + "pretrained": false, + "architecture_scope": "custom PASTIS adaptation, not official ImageNet model reproduction" +} \ No newline at end of file diff --git a/ablations/10_plateau_breakthrough/workspace/convnext_research_20261010/32X32_temporal_cnv1_k7_seed3407/history.json b/ablations/10_plateau_breakthrough/workspace/convnext_research_20261010/32X32_temporal_cnv1_k7_seed3407/history.json new file mode 100644 index 0000000000000000000000000000000000000000..3649122ca79b5069a3011a15d862e09d603af822 --- /dev/null +++ b/ablations/10_plateau_breakthrough/workspace/convnext_research_20261010/32X32_temporal_cnv1_k7_seed3407/history.json @@ -0,0 +1,802 @@ +[ + { + "epoch": 1, + "loss": 2.8608509929556596, + "val_miou": 0.02319235158221294, + "best_val_miou": 0.02319235158221294, + "seconds": 6.722695058211684, + "peak_allocated_gb": 1.029193728 + }, + { + "epoch": 2, + "loss": 2.5456772038811133, + "val_miou": 0.052183938544825566, + "best_val_miou": 0.052183938544825566, + "seconds": 5.4930503950454295, + "peak_allocated_gb": 1.029193728 + }, + { + "epoch": 3, + "loss": 2.4337619072512577, + "val_miou": 0.033373596804386715, + "best_val_miou": 0.052183938544825566, + "seconds": 5.676314958836883, + "peak_allocated_gb": 1.029193728 + }, + { + "epoch": 4, + "loss": 2.392650149370495, + "val_miou": 0.03748277087693355, + "best_val_miou": 0.052183938544825566, + "seconds": 5.852524243760854, + "peak_allocated_gb": 1.029193728 + }, + { + "epoch": 5, + "loss": 2.2932711996530233, + "val_miou": 0.05971164113329081, + "best_val_miou": 0.05971164113329081, + "seconds": 5.739965396001935, + "peak_allocated_gb": 1.029193728 + }, + { + "epoch": 6, + "loss": 2.1879570970409796, + "val_miou": 0.062246979163846944, + "best_val_miou": 0.062246979163846944, + "seconds": 5.597578336019069, + "peak_allocated_gb": 1.029193728 + }, + { + "epoch": 7, + "loss": 2.1533270242967104, + "val_miou": 0.09033993593364632, + "best_val_miou": 0.09033993593364632, + "seconds": 5.625209850259125, + "peak_allocated_gb": 1.029193728 + }, + { + "epoch": 8, + "loss": 2.084379538109428, + "val_miou": 0.10511227602782827, + "best_val_miou": 0.10511227602782827, + "seconds": 5.750794248655438, + "peak_allocated_gb": 1.029193728 + }, + { + "epoch": 9, + "loss": 2.040826505736301, + "val_miou": 0.09605692292541683, + "best_val_miou": 0.10511227602782827, + "seconds": 5.597694781143218, + "peak_allocated_gb": 1.029193728 + }, + { + "epoch": 10, + "loss": 1.9443820581624383, + "val_miou": 0.1653428059222185, + "best_val_miou": 0.1653428059222185, + "seconds": 5.732319730799645, + "peak_allocated_gb": 1.029193728 + }, + { + "epoch": 11, + "loss": 1.8501426671680652, + "val_miou": 0.11722210015059092, + "best_val_miou": 0.1653428059222185, + "seconds": 6.227188323158771, + "peak_allocated_gb": 1.029193728 + }, + { + "epoch": 12, + "loss": 1.806750415187133, + "val_miou": 0.19881660538929774, + "best_val_miou": 0.19881660538929774, + "seconds": 5.468539770226926, + "peak_allocated_gb": 1.029193728 + }, + { + "epoch": 13, + "loss": 1.671807683612171, + "val_miou": 0.20064480162466017, + "best_val_miou": 0.20064480162466017, + "seconds": 5.916748164687306, + "peak_allocated_gb": 1.029193728 + }, + { + "epoch": 14, + "loss": 1.5993108027859737, + "val_miou": 0.2286813409607435, + "best_val_miou": 0.2286813409607435, + "seconds": 6.035507469903678, + "peak_allocated_gb": 1.029193728 + }, + { + "epoch": 15, + "loss": 1.4275371977373172, + "val_miou": 0.22467389776739793, + "best_val_miou": 0.2286813409607435, + "seconds": 5.75505687110126, + "peak_allocated_gb": 1.029193728 + }, + { + "epoch": 16, + "loss": 1.4049647156345217, + "val_miou": 0.24431644906362024, + "best_val_miou": 0.24431644906362024, + "seconds": 5.419261416886002, + "peak_allocated_gb": 1.029193728 + }, + { + "epoch": 17, + "loss": 1.3461463749408722, + "val_miou": 0.25419408974517377, + "best_val_miou": 0.25419408974517377, + "seconds": 5.592322596814483, + "peak_allocated_gb": 1.029193728 + }, + { + "epoch": 18, + "loss": 1.2891129733700502, + "val_miou": 0.2482925689862675, + "best_val_miou": 0.25419408974517377, + "seconds": 6.23183592967689, + "peak_allocated_gb": 1.029193728 + }, + { + "epoch": 19, + "loss": 1.3304626118195684, + "val_miou": 0.2672808020108792, + "best_val_miou": 0.2672808020108792, + "seconds": 5.774888738058507, + "peak_allocated_gb": 1.029193728 + }, + { + "epoch": 20, + "loss": 1.2457132715927928, + "val_miou": 0.2349433130951238, + "best_val_miou": 0.2672808020108792, + "seconds": 5.773482857272029, + "peak_allocated_gb": 1.029193728 + }, + { + "epoch": 21, + "loss": 1.2057793752143258, + "val_miou": 0.26987757838786486, + "best_val_miou": 0.26987757838786486, + "seconds": 5.976837136782706, + "peak_allocated_gb": 1.029193728 + }, + { + "epoch": 22, + "loss": 1.1419127865841514, + "val_miou": 0.2947165464021444, + "best_val_miou": 0.2947165464021444, + "seconds": 5.934505185112357, + "peak_allocated_gb": 1.029193728 + }, + { + "epoch": 23, + "loss": 1.1374741286823624, + "val_miou": 0.2692184506334303, + "best_val_miou": 0.2947165464021444, + "seconds": 5.879826102871448, + "peak_allocated_gb": 1.029193728 + }, + { + "epoch": 24, + "loss": 1.0835887821097123, + "val_miou": 0.2801875758469539, + "best_val_miou": 0.2947165464021444, + "seconds": 5.547572842799127, + "peak_allocated_gb": 1.029193728 + }, + { + "epoch": 25, + "loss": 1.0760592488866103, + "val_miou": 0.2684445698352379, + "best_val_miou": 0.2947165464021444, + "seconds": 6.063954737968743, + "peak_allocated_gb": 1.029193728 + }, + { + "epoch": 26, + "loss": 1.1046584926937755, + "val_miou": 0.28919028266227814, + "best_val_miou": 0.2947165464021444, + "seconds": 6.091979130636901, + "peak_allocated_gb": 1.029193728 + }, + { + "epoch": 27, + "loss": 1.0017633594964679, + "val_miou": 0.2771121942302027, + "best_val_miou": 0.2947165464021444, + "seconds": 6.01637257123366, + "peak_allocated_gb": 1.029193728 + }, + { + "epoch": 28, + "loss": 0.9684821041791063, + "val_miou": 0.2930904967903134, + "best_val_miou": 0.2947165464021444, + "seconds": 5.785551162902266, + "peak_allocated_gb": 1.029193728 + }, + { + "epoch": 29, + "loss": 0.9785222717021641, + "val_miou": 0.2694968957661005, + "best_val_miou": 0.2947165464021444, + "seconds": 5.543282768223435, + "peak_allocated_gb": 1.029193728 + }, + { + "epoch": 30, + "loss": 0.9587461168044492, + "val_miou": 0.28367700535392376, + "best_val_miou": 0.2947165464021444, + "seconds": 5.62409852584824, + "peak_allocated_gb": 1.029193728 + }, + { + "epoch": 31, + "loss": 0.8988449910753652, + "val_miou": 0.2752466863940999, + "best_val_miou": 0.2947165464021444, + "seconds": 5.450921013019979, + "peak_allocated_gb": 1.029193728 + }, + { + "epoch": 32, + "loss": 0.9306697974863806, + "val_miou": 0.27901571596554936, + "best_val_miou": 0.2947165464021444, + "seconds": 5.614320533815771, + "peak_allocated_gb": 1.029193728 + }, + { + "epoch": 33, + "loss": 0.9250595020620447, + "val_miou": 0.2931904187043621, + "best_val_miou": 0.2947165464021444, + "seconds": 5.765804314054549, + "peak_allocated_gb": 1.029193728 + }, + { + "epoch": 34, + "loss": 0.879934120335077, + "val_miou": 0.29160825103073607, + "best_val_miou": 0.2947165464021444, + "seconds": 6.0624306090176105, + "peak_allocated_gb": 1.029193728 + }, + { + "epoch": 35, + "loss": 0.8845061546093539, + "val_miou": 0.29072056855183237, + "best_val_miou": 0.2947165464021444, + "seconds": 5.893884507007897, + "peak_allocated_gb": 1.029193728 + }, + { + "epoch": 36, + "loss": 0.8357217782422116, + "val_miou": 0.2929228408337736, + "best_val_miou": 0.2947165464021444, + "seconds": 5.82455155486241, + "peak_allocated_gb": 1.029193728 + }, + { + "epoch": 37, + "loss": 0.8308940988622213, + "val_miou": 0.31502189145487386, + "best_val_miou": 0.31502189145487386, + "seconds": 6.145547042135149, + "peak_allocated_gb": 1.029193728 + }, + { + "epoch": 38, + "loss": 0.7965511197322294, + "val_miou": 0.3217281105485076, + "best_val_miou": 0.3217281105485076, + "seconds": 6.065871409140527, + "peak_allocated_gb": 1.029193728 + }, + { + "epoch": 39, + "loss": 0.773597754930195, + "val_miou": 0.3088481437831046, + "best_val_miou": 0.3217281105485076, + "seconds": 5.995924345217645, + "peak_allocated_gb": 1.029193728 + }, + { + "epoch": 40, + "loss": 0.7484327335106699, + "val_miou": 0.3038628959255696, + "best_val_miou": 0.3217281105485076, + "seconds": 6.087922852952033, + "peak_allocated_gb": 1.029193728 + }, + { + "epoch": 41, + "loss": 0.7455220238158577, + "val_miou": 0.2980073856165362, + "best_val_miou": 0.3217281105485076, + "seconds": 5.663589669391513, + "peak_allocated_gb": 1.029193728 + }, + { + "epoch": 42, + "loss": 0.7366128042340279, + "val_miou": 0.2967940036112935, + "best_val_miou": 0.3217281105485076, + "seconds": 5.528809000272304, + "peak_allocated_gb": 1.029193728 + }, + { + "epoch": 43, + "loss": 0.7630161003846871, + "val_miou": 0.30800907775721975, + "best_val_miou": 0.3217281105485076, + "seconds": 5.725358158815652, + "peak_allocated_gb": 1.029193728 + }, + { + "epoch": 44, + "loss": 0.7652457340767509, + "val_miou": 0.316370557401123, + "best_val_miou": 0.3217281105485076, + "seconds": 5.638738323003054, + "peak_allocated_gb": 1.029193728 + }, + { + "epoch": 45, + "loss": 0.7031033690038481, + "val_miou": 0.3034958186058055, + "best_val_miou": 0.3217281105485076, + "seconds": 5.684355876874179, + "peak_allocated_gb": 1.029193728 + }, + { + "epoch": 46, + "loss": 0.6951283467443365, + "val_miou": 0.30047906998663954, + "best_val_miou": 0.3217281105485076, + "seconds": 5.452695413026959, + "peak_allocated_gb": 1.029193728 + }, + { + "epoch": 47, + "loss": 0.6705677819095159, + "val_miou": 0.30763137527439993, + "best_val_miou": 0.3217281105485076, + "seconds": 5.583064288366586, + "peak_allocated_gb": 1.029193728 + }, + { + "epoch": 48, + "loss": 0.6803509691043904, + "val_miou": 0.2986903982447425, + "best_val_miou": 0.3217281105485076, + "seconds": 5.390266575850546, + "peak_allocated_gb": 1.029193728 + }, + { + "epoch": 49, + "loss": 0.6603903146950822, + "val_miou": 0.31215562450537493, + "best_val_miou": 0.3217281105485076, + "seconds": 5.784865617752075, + "peak_allocated_gb": 1.029193728 + }, + { + "epoch": 50, + "loss": 0.625560718539514, + "val_miou": 0.3024540630034325, + "best_val_miou": 0.3217281105485076, + "seconds": 5.9167285286821425, + "peak_allocated_gb": 1.029193728 + }, + { + "epoch": 51, + "loss": 0.6332406374184709, + "val_miou": 0.32455532032994955, + "best_val_miou": 0.32455532032994955, + "seconds": 5.499330778606236, + "peak_allocated_gb": 1.029193728 + }, + { + "epoch": 52, + "loss": 0.6295477669490012, + "val_miou": 0.3059832930343958, + "best_val_miou": 0.32455532032994955, + "seconds": 5.523109805770218, + "peak_allocated_gb": 1.029193728 + }, + { + "epoch": 53, + "loss": 0.6022601068804139, + "val_miou": 0.32027371218321304, + "best_val_miou": 0.32455532032994955, + "seconds": 5.582238442730159, + "peak_allocated_gb": 1.029193728 + }, + { + "epoch": 54, + "loss": 0.6136277298394003, + "val_miou": 0.3008813365913447, + "best_val_miou": 0.32455532032994955, + "seconds": 5.422120419330895, + "peak_allocated_gb": 1.029193728 + }, + { + "epoch": 55, + "loss": 0.6981254278829223, + "val_miou": 0.3243490255536061, + "best_val_miou": 0.32455532032994955, + "seconds": 5.472150534391403, + "peak_allocated_gb": 1.029193728 + }, + { + "epoch": 56, + "loss": 0.5701986868914805, + "val_miou": 0.3253830098616237, + "best_val_miou": 0.3253830098616237, + "seconds": 5.633913038298488, + "peak_allocated_gb": 1.029193728 + }, + { + "epoch": 57, + "loss": 0.5756007695668622, + "val_miou": 0.31225860963943364, + "best_val_miou": 0.3253830098616237, + "seconds": 6.01936933491379, + "peak_allocated_gb": 1.029193728 + }, + { + "epoch": 58, + "loss": 0.5989345265062231, + "val_miou": 0.3168095287863751, + "best_val_miou": 0.3253830098616237, + "seconds": 6.081909529399127, + "peak_allocated_gb": 1.029193728 + }, + { + "epoch": 59, + "loss": 0.5682670207400071, + "val_miou": 0.3166749363329541, + "best_val_miou": 0.3253830098616237, + "seconds": 6.1541907847858965, + "peak_allocated_gb": 1.029193728 + }, + { + "epoch": 60, + "loss": 0.5666742258166012, + "val_miou": 0.30891117656560296, + "best_val_miou": 0.3253830098616237, + "seconds": 6.175050679128617, + "peak_allocated_gb": 1.029193728 + }, + { + "epoch": 61, + "loss": 0.5729721114039421, + "val_miou": 0.3326937702538733, + "best_val_miou": 0.3326937702538733, + "seconds": 5.966985277365893, + "peak_allocated_gb": 1.029193728 + }, + { + "epoch": 62, + "loss": 0.5562774621342358, + "val_miou": 0.31539692634034366, + "best_val_miou": 0.3326937702538733, + "seconds": 5.9974093567579985, + "peak_allocated_gb": 1.029193728 + }, + { + "epoch": 63, + "loss": 0.5361600596653787, + "val_miou": 0.33065316185879495, + "best_val_miou": 0.3326937702538733, + "seconds": 5.718310351949185, + "peak_allocated_gb": 1.029193728 + }, + { + "epoch": 64, + "loss": 0.5182299766885606, + "val_miou": 0.3218773594022139, + "best_val_miou": 0.3326937702538733, + "seconds": 6.24209926603362, + "peak_allocated_gb": 1.029193728 + }, + { + "epoch": 65, + "loss": 0.5460996541537737, + "val_miou": 0.32667140949040563, + "best_val_miou": 0.3326937702538733, + "seconds": 6.354729675222188, + "peak_allocated_gb": 1.029193728 + }, + { + "epoch": 66, + "loss": 0.5593837091797277, + "val_miou": 0.3299667538116606, + "best_val_miou": 0.3326937702538733, + "seconds": 5.861267289146781, + "peak_allocated_gb": 1.029193728 + }, + { + "epoch": 67, + "loss": 0.5304667647731932, + "val_miou": 0.3123977817788245, + "best_val_miou": 0.3326937702538733, + "seconds": 6.154120103921741, + "peak_allocated_gb": 1.029193728 + }, + { + "epoch": 68, + "loss": 0.5398432479092949, + "val_miou": 0.3290412801952578, + "best_val_miou": 0.3326937702538733, + "seconds": 5.916968300007284, + "peak_allocated_gb": 1.029193728 + }, + { + "epoch": 69, + "loss": 0.5174268299811765, + "val_miou": 0.320060988510208, + "best_val_miou": 0.3326937702538733, + "seconds": 5.796796482056379, + "peak_allocated_gb": 1.029193728 + }, + { + "epoch": 70, + "loss": 0.5197323105837169, + "val_miou": 0.33342797337465435, + "best_val_miou": 0.33342797337465435, + "seconds": 6.039705154020339, + "peak_allocated_gb": 1.029193728 + }, + { + "epoch": 71, + "loss": 0.4980160401839959, + "val_miou": 0.3221056874344883, + "best_val_miou": 0.33342797337465435, + "seconds": 5.9776320229284465, + "peak_allocated_gb": 1.029193728 + }, + { + "epoch": 72, + "loss": 0.5136376172304153, + "val_miou": 0.3386682038637725, + "best_val_miou": 0.3386682038637725, + "seconds": 5.55938356090337, + "peak_allocated_gb": 1.029193728 + }, + { + "epoch": 73, + "loss": 0.49739923563442734, + "val_miou": 0.3361359443738339, + "best_val_miou": 0.3386682038637725, + "seconds": 5.8363074492663145, + "peak_allocated_gb": 1.029193728 + }, + { + "epoch": 74, + "loss": 0.5195316409594134, + "val_miou": 0.32486600132251126, + "best_val_miou": 0.3386682038637725, + "seconds": 6.189505300950259, + "peak_allocated_gb": 1.029193728 + }, + { + "epoch": 75, + "loss": 0.5131108823575472, + "val_miou": 0.3388080549779667, + "best_val_miou": 0.3388080549779667, + "seconds": 5.688599595800042, + "peak_allocated_gb": 1.029193728 + }, + { + "epoch": 76, + "loss": 0.5102362640594181, + "val_miou": 0.3293543790986248, + "best_val_miou": 0.3388080549779667, + "seconds": 5.706185537856072, + "peak_allocated_gb": 1.029193728 + }, + { + "epoch": 77, + "loss": 0.548653661028335, + "val_miou": 0.3259785825670445, + "best_val_miou": 0.3388080549779667, + "seconds": 5.775709820911288, + "peak_allocated_gb": 1.029193728 + }, + { + "epoch": 78, + "loss": 0.5299078080999223, + "val_miou": 0.3273282316281209, + "best_val_miou": 0.3388080549779667, + "seconds": 5.509329445194453, + "peak_allocated_gb": 1.029193728 + }, + { + "epoch": 79, + "loss": 0.49609410566718953, + "val_miou": 0.3285277105465245, + "best_val_miou": 0.3388080549779667, + "seconds": 5.601387799251825, + "peak_allocated_gb": 1.029193728 + }, + { + "epoch": 80, + "loss": 0.5089446635622727, + "val_miou": 0.3266110625110671, + "best_val_miou": 0.3388080549779667, + "seconds": 5.653241158928722, + "peak_allocated_gb": 1.029193728 + }, + { + "epoch": 81, + "loss": 0.5101890665920157, + "val_miou": 0.3254962803846353, + "best_val_miou": 0.3388080549779667, + "seconds": 5.729505903087556, + "peak_allocated_gb": 1.029193728 + }, + { + "epoch": 82, + "loss": 0.5009253691685828, + "val_miou": 0.3222238424002069, + "best_val_miou": 0.3388080549779667, + "seconds": 5.6668116808868945, + "peak_allocated_gb": 1.029193728 + }, + { + "epoch": 83, + "loss": 0.4827628112153003, + "val_miou": 0.3193702002612835, + "best_val_miou": 0.3388080549779667, + "seconds": 5.81733178300783, + "peak_allocated_gb": 1.029193728 + }, + { + "epoch": 84, + "loss": 0.4879945536193095, + "val_miou": 0.324089933629019, + "best_val_miou": 0.3388080549779667, + "seconds": 6.1139739928767085, + "peak_allocated_gb": 1.029193728 + }, + { + "epoch": 85, + "loss": 0.5144722120542276, + "val_miou": 0.3283965218429233, + "best_val_miou": 0.3388080549779667, + "seconds": 5.871283568907529, + "peak_allocated_gb": 1.029193728 + }, + { + "epoch": 86, + "loss": 0.5328587991626639, + "val_miou": 0.33232485384844623, + "best_val_miou": 0.3388080549779667, + "seconds": 5.940876632928848, + "peak_allocated_gb": 1.029193728 + }, + { + "epoch": 87, + "loss": 0.49803481643137176, + "val_miou": 0.3302993189293413, + "best_val_miou": 0.3388080549779667, + "seconds": 5.875326768029481, + "peak_allocated_gb": 1.029193728 + }, + { + "epoch": 88, + "loss": 0.4769865866554411, + "val_miou": 0.3269902594004186, + "best_val_miou": 0.3388080549779667, + "seconds": 5.421178989112377, + "peak_allocated_gb": 1.029193728 + }, + { + "epoch": 89, + "loss": 0.5001126982663807, + "val_miou": 0.3286266903043421, + "best_val_miou": 0.3388080549779667, + "seconds": 6.160638828761876, + "peak_allocated_gb": 1.029193728 + }, + { + "epoch": 90, + "loss": 0.4915260805895454, + "val_miou": 0.32465526813166706, + "best_val_miou": 0.3388080549779667, + "seconds": 5.4948103511705995, + "peak_allocated_gb": 1.029193728 + }, + { + "epoch": 91, + "loss": 0.46257821235217544, + "val_miou": 0.3253127694239418, + "best_val_miou": 0.3388080549779667, + "seconds": 5.746287212241441, + "peak_allocated_gb": 1.029193728 + }, + { + "epoch": 92, + "loss": 0.48569604872088684, + "val_miou": 0.32466911394008513, + "best_val_miou": 0.3388080549779667, + "seconds": 5.367556652054191, + "peak_allocated_gb": 1.029193728 + }, + { + "epoch": 93, + "loss": 0.5017735189513156, + "val_miou": 0.3242947392022793, + "best_val_miou": 0.3388080549779667, + "seconds": 5.424810678232461, + "peak_allocated_gb": 1.029193728 + }, + { + "epoch": 94, + "loss": 0.49234442138358164, + "val_miou": 0.3256792344307437, + "best_val_miou": 0.3388080549779667, + "seconds": 5.933720878325403, + "peak_allocated_gb": 1.029193728 + }, + { + "epoch": 95, + "loss": 0.5019444905613598, + "val_miou": 0.32351750367929694, + "best_val_miou": 0.3388080549779667, + "seconds": 5.928541994187981, + "peak_allocated_gb": 1.029193728 + }, + { + "epoch": 96, + "loss": 0.4941197672956868, + "val_miou": 0.32387175695351145, + "best_val_miou": 0.3388080549779667, + "seconds": 5.80602764710784, + "peak_allocated_gb": 1.029193728 + }, + { + "epoch": 97, + "loss": 0.4744369658200364, + "val_miou": 0.32283305471740076, + "best_val_miou": 0.3388080549779667, + "seconds": 5.77688150992617, + "peak_allocated_gb": 1.029193728 + }, + { + "epoch": 98, + "loss": 0.46880191133210536, + "val_miou": 0.32381176238207643, + "best_val_miou": 0.3388080549779667, + "seconds": 5.816561516840011, + "peak_allocated_gb": 1.029193728 + }, + { + "epoch": 99, + "loss": 0.45996176843580444, + "val_miou": 0.3241203278163719, + "best_val_miou": 0.3388080549779667, + "seconds": 6.104224272072315, + "peak_allocated_gb": 1.029193728 + }, + { + "epoch": 100, + "loss": 0.470976863644625, + "val_miou": 0.32409944195203483, + "best_val_miou": 0.3388080549779667, + "seconds": 5.93206904316321, + "peak_allocated_gb": 1.029193728 + } +] \ No newline at end of file diff --git a/ablations/10_plateau_breakthrough/workspace/convnext_research_20261010/32X32_temporal_cnv1_k7_seed3407/latest.tar b/ablations/10_plateau_breakthrough/workspace/convnext_research_20261010/32X32_temporal_cnv1_k7_seed3407/latest.tar new file mode 100644 index 0000000000000000000000000000000000000000..5ef3fb6d7b18775dea1b50a98495c6303367c2b4 --- /dev/null +++ b/ablations/10_plateau_breakthrough/workspace/convnext_research_20261010/32X32_temporal_cnv1_k7_seed3407/latest.tar @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:949061e5eedffab378a76d99b6f2d480f7d65ab76f99f43596eb4c0a435e1064 +size 1810160 diff --git a/ablations/10_plateau_breakthrough/workspace/convnext_research_20261010/32X32_temporal_cnv1_k7_seed3407/progress.json b/ablations/10_plateau_breakthrough/workspace/convnext_research_20261010/32X32_temporal_cnv1_k7_seed3407/progress.json new file mode 100644 index 0000000000000000000000000000000000000000..c456fde4a0de315b46efd29f45a18b8f7ad7c9bf --- /dev/null +++ b/ablations/10_plateau_breakthrough/workspace/convnext_research_20261010/32X32_temporal_cnv1_k7_seed3407/progress.json @@ -0,0 +1,8 @@ +{ + "epoch": 100, + "loss": 0.470976863644625, + "val_miou": 0.32409944195203483, + "best_val_miou": 0.3388080549779667, + "seconds": 5.93206904316321, + "peak_allocated_gb": 1.029193728 +} \ No newline at end of file diff --git a/ablations/10_plateau_breakthrough/workspace/convnext_research_20261010/32X32_temporal_cnv1_k7_seed3407/selection.json b/ablations/10_plateau_breakthrough/workspace/convnext_research_20261010/32X32_temporal_cnv1_k7_seed3407/selection.json new file mode 100644 index 0000000000000000000000000000000000000000..c8339533da35bd180c05287aafc617f19d02264a --- /dev/null +++ b/ablations/10_plateau_breakthrough/workspace/convnext_research_20261010/32X32_temporal_cnv1_k7_seed3407/selection.json @@ -0,0 +1,4260 @@ +{ + "kind": "temporal_cnv1_k7", + "seed": 3407, + "checkpoint_epoch": 75, + "standalone": { + "miou": 0.3388080549779667, + "oa": 0.6592688595880507, + "macro_f1": 0.45075580713411373, + "kappa": 0.6207877708949721, + "per_class_iou": [ + 0.7153989059758489, + 0.5676727310968556, + 0.6167668419734536, + 0.0408017179670723, + 0.7538663554128976, + 0.1342629482071713, + 0.5363781200212427, + 0.6086384786566862, + 0.37536199599019826, + 0.0, + 0.5060762844423053, + 0.09577026453529495, + 0.02944507361268403, + 0.26982164930248986, + 0.3654259126700072, + 0.3513394817742644, + 0.0, + 0.13151822796492849 + ], + "confusion_matrix": [ + [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + [ + 0, + 13863, + 178, + 181, + 37, + 37, + 54, + 28, + 747, + 0, + 0, + 284, + 60, + 0, + 804, + 4, + 496, + 6, + 1, + 0 + ], + [ + 0, + 256, + 10796, + 329, + 223, + 153, + 144, + 0, + 0, + 0, + 128, + 185, + 24, + 0, + 90, + 6, + 132, + 10, + 1, + 0 + ], + [ + 0, + 242, + 2338, + 9851, + 28, + 0, + 9, + 209, + 9, + 24, + 18, + 0, + 55, + 0, + 108, + 337, + 301, + 5, + 334, + 0 + ], + [ + 0, + 79, + 1714, + 99, + 114, + 20, + 4, + 2, + 0, + 0, + 4, + 0, + 0, + 0, + 2, + 0, + 0, + 7, + 2, + 0 + ], + [ + 0, + 175, + 185, + 9, + 54, + 5167, + 8, + 0, + 1, + 139, + 3, + 7, + 1, + 1, + 4, + 21, + 14, + 0, + 0, + 0 + ], + [ + 0, + 31, + 47, + 90, + 258, + 4, + 674, + 98, + 664, + 0, + 0, + 68, + 46, + 0, + 145, + 207, + 51, + 17, + 8, + 0 + ], + [ + 0, + 14, + 2, + 52, + 0, + 0, + 5, + 4040, + 288, + 5, + 0, + 146, + 337, + 0, + 231, + 134, + 14, + 0, + 111, + 0 + ], + [ + 0, + 70, + 0, + 0, + 0, + 0, + 9, + 409, + 6017, + 0, + 0, + 57, + 15, + 0, + 14, + 0, + 7, + 0, + 0, + 0 + ], + [ + 0, + 158, + 9, + 128, + 6, + 0, + 29, + 9, + 4, + 1685, + 0, + 0, + 92, + 19, + 22, + 0, + 0, + 5, + 0, + 0 + ], + [ + 0, + 104, + 994, + 13, + 41, + 10, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 18, + 16, + 6, + 0, + 0, + 0 + ], + [ + 0, + 25, + 28, + 2, + 0, + 0, + 2126, + 14, + 46, + 0, + 0, + 4206, + 0, + 9, + 66, + 60, + 159, + 0, + 1, + 0 + ], + [ + 0, + 337, + 160, + 273, + 27, + 730, + 4, + 833, + 213, + 2057, + 71, + 246, + 677, + 58, + 23, + 54, + 121, + 0, + 162, + 0 + ], + [ + 0, + 7, + 21, + 127, + 0, + 0, + 0, + 154, + 143, + 17, + 1, + 0, + 233, + 26, + 55, + 8, + 4, + 0, + 0, + 0 + ], + [ + 0, + 533, + 17, + 20, + 6, + 0, + 182, + 30, + 557, + 3, + 0, + 347, + 0, + 0, + 1528, + 8, + 273, + 0, + 0, + 0 + ], + [ + 0, + 110, + 2, + 592, + 0, + 40, + 4, + 3, + 0, + 68, + 0, + 0, + 0, + 0, + 51, + 1021, + 0, + 0, + 18, + 0 + ], + [ + 0, + 35, + 4, + 13, + 0, + 0, + 1, + 42, + 507, + 2, + 0, + 203, + 17, + 0, + 402, + 0, + 1600, + 0, + 3, + 0 + ], + [ + 0, + 212, + 833, + 7, + 67, + 71, + 0, + 0, + 0, + 8, + 16, + 0, + 0, + 0, + 81, + 0, + 0, + 0, + 0, + 0 + ], + [ + 0, + 210, + 9, + 169, + 0, + 0, + 33, + 322, + 109, + 0, + 0, + 26, + 143, + 0, + 43, + 30, + 147, + 0, + 285, + 0 + ], + [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ] + ] + }, + "chosen": { + "mode": "add", + "alpha": 0.0, + "metrics": { + "miou": 0.5256398451814701, + "oa": 0.7954606313128608, + "macro_f1": 0.6400266863319044, + "kappa": 0.7725060156424988, + "per_class_iou": [ + 0.7863696632193052, + 0.7940560621411685, + 0.8422681105804802, + 0.5216035634743875, + 0.8953563366655918, + 0.5666403785488959, + 0.6681021224238696, + 0.6854425749817118, + 0.3865969759193579, + 0.15913978494623657, + 0.8521227955584585, + 0.16817463736895016, + 0.15324165029469547, + 0.3526720731960907, + 0.8232323232323232, + 0.5073836723321259, + 0.010297482837528604, + 0.2888170055452865 + ], + "confusion_matrix": [ + [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + [ + 0, + 14827, + 104, + 46, + 8, + 16, + 20, + 1, + 480, + 0, + 3, + 211, + 80, + 3, + 659, + 16, + 296, + 4, + 6, + 0 + ], + [ + 0, + 160, + 11756, + 93, + 27, + 17, + 59, + 3, + 0, + 18, + 25, + 184, + 13, + 1, + 99, + 0, + 10, + 4, + 8, + 0 + ], + [ + 0, + 165, + 132, + 12522, + 19, + 10, + 2, + 144, + 0, + 31, + 1, + 0, + 2, + 6, + 113, + 137, + 34, + 11, + 539, + 0 + ], + [ + 0, + 23, + 477, + 28, + 1171, + 50, + 1, + 0, + 0, + 0, + 130, + 0, + 18, + 10, + 0, + 2, + 6, + 128, + 3, + 0 + ], + [ + 0, + 83, + 1, + 23, + 0, + 5553, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 19, + 8, + 1, + 101, + 0, + 0 + ], + [ + 0, + 96, + 76, + 5, + 7, + 0, + 1437, + 49, + 253, + 0, + 0, + 217, + 0, + 0, + 77, + 0, + 5, + 186, + 0, + 0 + ], + [ + 0, + 7, + 0, + 14, + 0, + 0, + 10, + 4344, + 415, + 65, + 0, + 10, + 472, + 0, + 33, + 1, + 4, + 0, + 4, + 0 + ], + [ + 0, + 29, + 0, + 0, + 0, + 0, + 0, + 0, + 6559, + 0, + 0, + 9, + 0, + 0, + 0, + 0, + 1, + 0, + 0, + 0 + ], + [ + 0, + 6, + 20, + 6, + 0, + 1, + 0, + 26, + 0, + 2071, + 0, + 0, + 16, + 14, + 5, + 1, + 0, + 0, + 0, + 0 + ], + [ + 0, + 34, + 886, + 0, + 14, + 0, + 2, + 0, + 0, + 5, + 222, + 0, + 0, + 0, + 5, + 0, + 30, + 4, + 0, + 0 + ], + [ + 0, + 17, + 0, + 0, + 91, + 0, + 14, + 5, + 10, + 0, + 0, + 6523, + 0, + 0, + 13, + 0, + 63, + 0, + 6, + 0 + ], + [ + 0, + 107, + 18, + 205, + 0, + 3, + 10, + 473, + 524, + 2954, + 6, + 129, + 1171, + 188, + 120, + 47, + 11, + 8, + 72, + 0 + ], + [ + 0, + 1, + 44, + 53, + 0, + 0, + 0, + 189, + 8, + 36, + 1, + 71, + 216, + 156, + 12, + 2, + 7, + 0, + 0, + 0 + ], + [ + 0, + 1027, + 18, + 38, + 0, + 0, + 10, + 43, + 402, + 0, + 0, + 58, + 0, + 0, + 1696, + 0, + 205, + 7, + 0, + 0 + ], + [ + 0, + 28, + 6, + 32, + 4, + 6, + 0, + 0, + 0, + 40, + 0, + 0, + 0, + 0, + 0, + 1793, + 0, + 0, + 0, + 0 + ], + [ + 0, + 51, + 0, + 8, + 0, + 0, + 0, + 19, + 875, + 0, + 0, + 14, + 0, + 0, + 41, + 0, + 1821, + 0, + 0, + 0 + ], + [ + 0, + 230, + 546, + 75, + 28, + 310, + 0, + 0, + 0, + 42, + 27, + 0, + 0, + 0, + 0, + 4, + 15, + 18, + 0, + 0 + ], + [ + 0, + 11, + 0, + 373, + 0, + 0, + 0, + 171, + 4, + 0, + 0, + 10, + 100, + 0, + 109, + 51, + 72, + 0, + 625, + 0 + ], + [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ] + ] + } + }, + "records": [ + { + "mode": "add", + "alpha": 0.0, + "metrics": { + "miou": 0.5256398451814701, + "oa": 0.7954606313128608, + "macro_f1": 0.6400266863319044, + "kappa": 0.7725060156424988, + "per_class_iou": [ + 0.7863696632193052, + 0.7940560621411685, + 0.8422681105804802, + 0.5216035634743875, + 0.8953563366655918, + 0.5666403785488959, + 0.6681021224238696, + 0.6854425749817118, + 0.3865969759193579, + 0.15913978494623657, + 0.8521227955584585, + 0.16817463736895016, + 0.15324165029469547, + 0.3526720731960907, + 0.8232323232323232, + 0.5073836723321259, + 0.010297482837528604, + 0.2888170055452865 + ], + "confusion_matrix": [ + [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + [ + 0, + 14827, + 104, + 46, + 8, + 16, + 20, + 1, + 480, + 0, + 3, + 211, + 80, + 3, + 659, + 16, + 296, + 4, + 6, + 0 + ], + [ + 0, + 160, + 11756, + 93, + 27, + 17, + 59, + 3, + 0, + 18, + 25, + 184, + 13, + 1, + 99, + 0, + 10, + 4, + 8, + 0 + ], + [ + 0, + 165, + 132, + 12522, + 19, + 10, + 2, + 144, + 0, + 31, + 1, + 0, + 2, + 6, + 113, + 137, + 34, + 11, + 539, + 0 + ], + [ + 0, + 23, + 477, + 28, + 1171, + 50, + 1, + 0, + 0, + 0, + 130, + 0, + 18, + 10, + 0, + 2, + 6, + 128, + 3, + 0 + ], + [ + 0, + 83, + 1, + 23, + 0, + 5553, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 19, + 8, + 1, + 101, + 0, + 0 + ], + [ + 0, + 96, + 76, + 5, + 7, + 0, + 1437, + 49, + 253, + 0, + 0, + 217, + 0, + 0, + 77, + 0, + 5, + 186, + 0, + 0 + ], + [ + 0, + 7, + 0, + 14, + 0, + 0, + 10, + 4344, + 415, + 65, + 0, + 10, + 472, + 0, + 33, + 1, + 4, + 0, + 4, + 0 + ], + [ + 0, + 29, + 0, + 0, + 0, + 0, + 0, + 0, + 6559, + 0, + 0, + 9, + 0, + 0, + 0, + 0, + 1, + 0, + 0, + 0 + ], + [ + 0, + 6, + 20, + 6, + 0, + 1, + 0, + 26, + 0, + 2071, + 0, + 0, + 16, + 14, + 5, + 1, + 0, + 0, + 0, + 0 + ], + [ + 0, + 34, + 886, + 0, + 14, + 0, + 2, + 0, + 0, + 5, + 222, + 0, + 0, + 0, + 5, + 0, + 30, + 4, + 0, + 0 + ], + [ + 0, + 17, + 0, + 0, + 91, + 0, + 14, + 5, + 10, + 0, + 0, + 6523, + 0, + 0, + 13, + 0, + 63, + 0, + 6, + 0 + ], + [ + 0, + 107, + 18, + 205, + 0, + 3, + 10, + 473, + 524, + 2954, + 6, + 129, + 1171, + 188, + 120, + 47, + 11, + 8, + 72, + 0 + ], + [ + 0, + 1, + 44, + 53, + 0, + 0, + 0, + 189, + 8, + 36, + 1, + 71, + 216, + 156, + 12, + 2, + 7, + 0, + 0, + 0 + ], + [ + 0, + 1027, + 18, + 38, + 0, + 0, + 10, + 43, + 402, + 0, + 0, + 58, + 0, + 0, + 1696, + 0, + 205, + 7, + 0, + 0 + ], + [ + 0, + 28, + 6, + 32, + 4, + 6, + 0, + 0, + 0, + 40, + 0, + 0, + 0, + 0, + 0, + 1793, + 0, + 0, + 0, + 0 + ], + [ + 0, + 51, + 0, + 8, + 0, + 0, + 0, + 19, + 875, + 0, + 0, + 14, + 0, + 0, + 41, + 0, + 1821, + 0, + 0, + 0 + ], + [ + 0, + 230, + 546, + 75, + 28, + 310, + 0, + 0, + 0, + 42, + 27, + 0, + 0, + 0, + 0, + 4, + 15, + 18, + 0, + 0 + ], + [ + 0, + 11, + 0, + 373, + 0, + 0, + 0, + 171, + 4, + 0, + 0, + 10, + 100, + 0, + 109, + 51, + 72, + 0, + 625, + 0 + ], + [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ] + ] + } + }, + { + "mode": "add", + "alpha": 0.1, + "metrics": { + "miou": 0.5190025513215529, + "oa": 0.7926864536583799, + "macro_f1": 0.6331493336475037, + "kappa": 0.7692904675369805, + "per_class_iou": [ + 0.7874299015977145, + 0.7813498402555911, + 0.8433872374689659, + 0.49797205948625506, + 0.8972159274846229, + 0.5549407114624506, + 0.6586763153927333, + 0.6821729628473306, + 0.3801470588235294, + 0.14754098360655737, + 0.8506722360005221, + 0.13810888252148998, + 0.147117296222664, + 0.36004273504273504, + 0.7983834755276156, + 0.5123439667128987, + 0.00650887573964497, + 0.29803545759463346 + ], + "confusion_matrix": [ + [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + [ + 0, + 14884, + 102, + 48, + 5, + 11, + 18, + 0, + 503, + 0, + 3, + 204, + 76, + 2, + 602, + 15, + 299, + 3, + 5, + 0 + ], + [ + 0, + 175, + 11739, + 94, + 21, + 17, + 59, + 2, + 0, + 16, + 33, + 185, + 14, + 1, + 97, + 0, + 14, + 3, + 7, + 0 + ], + [ + 0, + 152, + 142, + 12569, + 13, + 8, + 2, + 169, + 0, + 32, + 2, + 0, + 1, + 5, + 70, + 179, + 34, + 7, + 483, + 0 + ], + [ + 0, + 26, + 622, + 36, + 1105, + 51, + 0, + 0, + 0, + 0, + 79, + 0, + 18, + 10, + 0, + 2, + 5, + 91, + 2, + 0 + ], + [ + 0, + 93, + 13, + 23, + 0, + 5543, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 19, + 8, + 0, + 90, + 0, + 0 + ], + [ + 0, + 91, + 62, + 6, + 7, + 0, + 1404, + 79, + 290, + 0, + 0, + 198, + 0, + 0, + 80, + 0, + 5, + 186, + 0, + 0 + ], + [ + 0, + 11, + 0, + 17, + 0, + 0, + 9, + 4369, + 412, + 44, + 0, + 15, + 481, + 0, + 17, + 1, + 2, + 0, + 1, + 0 + ], + [ + 0, + 34, + 0, + 0, + 0, + 0, + 0, + 0, + 6555, + 0, + 0, + 8, + 0, + 0, + 0, + 0, + 1, + 0, + 0, + 0 + ], + [ + 0, + 4, + 20, + 8, + 0, + 1, + 0, + 22, + 0, + 2068, + 0, + 0, + 18, + 12, + 11, + 2, + 0, + 0, + 0, + 0 + ], + [ + 0, + 40, + 913, + 0, + 11, + 0, + 0, + 0, + 0, + 4, + 198, + 0, + 0, + 0, + 5, + 0, + 29, + 2, + 0, + 0 + ], + [ + 0, + 16, + 0, + 0, + 91, + 0, + 18, + 5, + 10, + 0, + 0, + 6517, + 0, + 0, + 13, + 0, + 67, + 0, + 5, + 0 + ], + [ + 0, + 122, + 18, + 228, + 0, + 1, + 8, + 551, + 508, + 3068, + 6, + 151, + 964, + 180, + 102, + 61, + 13, + 7, + 58, + 0 + ], + [ + 0, + 1, + 45, + 60, + 0, + 0, + 0, + 204, + 13, + 26, + 1, + 66, + 213, + 148, + 10, + 2, + 7, + 0, + 0, + 0 + ], + [ + 0, + 1011, + 17, + 37, + 0, + 0, + 8, + 40, + 428, + 0, + 0, + 59, + 0, + 0, + 1685, + 0, + 213, + 6, + 0, + 0 + ], + [ + 0, + 29, + 6, + 48, + 4, + 4, + 0, + 0, + 0, + 40, + 0, + 0, + 0, + 0, + 0, + 1778, + 0, + 0, + 0, + 0 + ], + [ + 0, + 52, + 0, + 8, + 0, + 0, + 0, + 15, + 840, + 0, + 0, + 20, + 0, + 0, + 47, + 0, + 1847, + 0, + 0, + 0 + ], + [ + 0, + 240, + 587, + 68, + 20, + 296, + 0, + 0, + 0, + 44, + 16, + 0, + 0, + 0, + 0, + 3, + 10, + 11, + 0, + 0 + ], + [ + 0, + 25, + 0, + 354, + 0, + 0, + 0, + 167, + 7, + 0, + 0, + 13, + 113, + 0, + 103, + 45, + 77, + 0, + 622, + 0 + ], + [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ] + ] + } + }, + { + "mode": "add", + "alpha": 0.25, + "metrics": { + "miou": 0.4935752270645599, + "oa": 0.7824894763338011, + "macro_f1": 0.6061355461078186, + "kappa": 0.7576164361895923, + "per_class_iou": [ + 0.7824712946381545, + 0.744603629417383, + 0.8342281434347452, + 0.3440909090909091, + 0.8967762943666558, + 0.5203725261932479, + 0.6477607542722451, + 0.672514619883041, + 0.3801470588235294, + 0.07614607614607614, + 0.8442654890245487, + 0.11476817401259301, + 0.11318795430944964, + 0.3509229098805646, + 0.7492314448836188, + 0.50382096069869, + 0.0013149243918474688, + 0.3077309236947791 + ], + "confusion_matrix": [ + [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + [ + 0, + 14856, + 92, + 55, + 8, + 5, + 12, + 0, + 605, + 0, + 0, + 199, + 71, + 2, + 547, + 14, + 310, + 0, + 4, + 0 + ], + [ + 0, + 187, + 11694, + 117, + 10, + 18, + 65, + 0, + 0, + 12, + 49, + 186, + 16, + 1, + 87, + 0, + 31, + 1, + 3, + 0 + ], + [ + 0, + 145, + 189, + 12586, + 7, + 7, + 2, + 187, + 0, + 30, + 1, + 0, + 1, + 2, + 39, + 218, + 37, + 1, + 416, + 0 + ], + [ + 0, + 43, + 1078, + 54, + 757, + 47, + 0, + 0, + 0, + 0, + 30, + 0, + 10, + 8, + 0, + 3, + 0, + 17, + 0, + 0 + ], + [ + 0, + 103, + 83, + 25, + 19, + 5508, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 19, + 8, + 0, + 24, + 0, + 0 + ], + [ + 0, + 78, + 48, + 21, + 10, + 0, + 1341, + 97, + 398, + 0, + 0, + 148, + 0, + 0, + 84, + 0, + 6, + 177, + 0, + 0 + ], + [ + 0, + 14, + 0, + 21, + 0, + 0, + 6, + 4397, + 389, + 23, + 0, + 30, + 488, + 0, + 8, + 0, + 2, + 0, + 1, + 0 + ], + [ + 0, + 32, + 0, + 0, + 0, + 0, + 1, + 0, + 6555, + 0, + 0, + 8, + 0, + 0, + 0, + 0, + 2, + 0, + 0, + 0 + ], + [ + 0, + 4, + 20, + 21, + 0, + 0, + 6, + 12, + 0, + 2068, + 0, + 0, + 15, + 2, + 15, + 3, + 0, + 0, + 0, + 0 + ], + [ + 0, + 62, + 989, + 0, + 12, + 1, + 0, + 0, + 0, + 3, + 98, + 0, + 0, + 0, + 6, + 1, + 29, + 1, + 0, + 0 + ], + [ + 0, + 16, + 0, + 0, + 59, + 0, + 68, + 2, + 10, + 0, + 0, + 6500, + 0, + 0, + 18, + 0, + 65, + 0, + 4, + 0 + ], + [ + 0, + 153, + 23, + 278, + 0, + 1, + 5, + 699, + 432, + 3085, + 4, + 199, + 802, + 152, + 67, + 83, + 21, + 4, + 38, + 0 + ], + [ + 0, + 2, + 38, + 95, + 0, + 0, + 0, + 190, + 52, + 23, + 0, + 36, + 225, + 109, + 19, + 0, + 7, + 0, + 0, + 0 + ], + [ + 0, + 991, + 16, + 35, + 0, + 0, + 4, + 38, + 456, + 0, + 0, + 115, + 0, + 0, + 1616, + 0, + 232, + 1, + 0, + 0 + ], + [ + 0, + 34, + 6, + 101, + 3, + 4, + 0, + 0, + 0, + 55, + 0, + 0, + 0, + 0, + 0, + 1706, + 0, + 0, + 0, + 0 + ], + [ + 0, + 51, + 0, + 10, + 0, + 0, + 0, + 14, + 789, + 0, + 0, + 20, + 0, + 0, + 99, + 0, + 1846, + 0, + 0, + 0 + ], + [ + 0, + 241, + 646, + 59, + 25, + 270, + 0, + 0, + 0, + 43, + 1, + 0, + 0, + 0, + 0, + 2, + 6, + 2, + 0, + 0 + ], + [ + 0, + 50, + 0, + 327, + 0, + 0, + 0, + 170, + 18, + 0, + 0, + 16, + 116, + 0, + 93, + 36, + 87, + 0, + 613, + 0 + ], + [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ] + ] + } + }, + { + "mode": "add", + "alpha": 0.5, + "metrics": { + "miou": 0.43291494120907553, + "oa": 0.7462645001660222, + "macro_f1": 0.5425354460940128, + "kappa": 0.7170854587652294, + "per_class_iou": [ + 0.7755069791941006, + 0.6734586334094502, + 0.7619539932799173, + 0.12387483926275182, + 0.8899278215223098, + 0.3454828660436137, + 0.629376725265146, + 0.6556703098365587, + 0.3728750923872875, + 0.0022304832713754648, + 0.7618987501578084, + 0.07043863409058437, + 0.07274826789838337, + 0.3341121495327103, + 0.5835777126099707, + 0.46839006910673153, + 0.0, + 0.27094561489465946 + ], + "confusion_matrix": [ + [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + [ + 0, + 14723, + 95, + 63, + 15, + 5, + 21, + 0, + 713, + 0, + 0, + 212, + 56, + 2, + 537, + 9, + 324, + 1, + 4, + 0 + ], + [ + 0, + 203, + 11502, + 152, + 85, + 20, + 64, + 0, + 0, + 7, + 86, + 189, + 19, + 0, + 72, + 1, + 76, + 1, + 0, + 0 + ], + [ + 0, + 187, + 859, + 11792, + 7, + 1, + 3, + 195, + 3, + 26, + 3, + 0, + 3, + 0, + 38, + 270, + 90, + 0, + 391, + 0 + ], + [ + 0, + 58, + 1567, + 86, + 289, + 40, + 0, + 0, + 0, + 0, + 5, + 0, + 2, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + [ + 0, + 121, + 124, + 27, + 54, + 5425, + 1, + 0, + 0, + 0, + 0, + 1, + 0, + 0, + 18, + 9, + 3, + 6, + 0, + 0 + ], + [ + 0, + 65, + 28, + 45, + 53, + 1, + 1109, + 106, + 579, + 0, + 0, + 118, + 9, + 0, + 91, + 59, + 20, + 125, + 0, + 0 + ], + [ + 0, + 14, + 0, + 39, + 0, + 0, + 6, + 4332, + 361, + 9, + 0, + 68, + 491, + 0, + 29, + 24, + 4, + 0, + 2, + 0 + ], + [ + 0, + 44, + 0, + 0, + 0, + 0, + 3, + 4, + 6539, + 0, + 0, + 5, + 1, + 0, + 0, + 0, + 2, + 0, + 0, + 0 + ], + [ + 0, + 6, + 18, + 70, + 0, + 0, + 21, + 0, + 0, + 2018, + 0, + 0, + 12, + 0, + 17, + 3, + 0, + 1, + 0, + 0 + ], + [ + 0, + 96, + 1049, + 1, + 9, + 5, + 0, + 0, + 0, + 0, + 3, + 0, + 0, + 0, + 11, + 7, + 21, + 0, + 0, + 0 + ], + [ + 0, + 14, + 0, + 0, + 0, + 0, + 571, + 5, + 24, + 0, + 0, + 6035, + 0, + 0, + 25, + 0, + 66, + 0, + 2, + 0 + ], + [ + 0, + 283, + 81, + 293, + 6, + 14, + 2, + 825, + 318, + 3083, + 36, + 235, + 493, + 68, + 44, + 76, + 73, + 0, + 116, + 0 + ], + [ + 0, + 8, + 26, + 130, + 0, + 0, + 0, + 154, + 107, + 21, + 1, + 9, + 234, + 63, + 35, + 2, + 6, + 0, + 0, + 0 + ], + [ + 0, + 670, + 17, + 26, + 0, + 0, + 109, + 33, + 533, + 0, + 0, + 260, + 0, + 0, + 1573, + 0, + 283, + 0, + 0, + 0 + ], + [ + 0, + 62, + 0, + 383, + 0, + 0, + 1, + 2, + 0, + 68, + 0, + 0, + 0, + 0, + 0, + 1393, + 0, + 0, + 0, + 0 + ], + [ + 0, + 50, + 0, + 13, + 0, + 0, + 0, + 12, + 679, + 0, + 0, + 52, + 1, + 0, + 192, + 0, + 1830, + 0, + 0, + 0 + ], + [ + 0, + 189, + 736, + 16, + 57, + 221, + 0, + 0, + 0, + 32, + 12, + 0, + 0, + 0, + 32, + 0, + 0, + 0, + 0, + 0 + ], + [ + 0, + 135, + 2, + 264, + 0, + 0, + 0, + 168, + 58, + 0, + 0, + 30, + 125, + 0, + 63, + 18, + 110, + 0, + 553, + 0 + ], + [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ] + ] + } + }, + { + "mode": "replace", + "alpha": 0.1, + "metrics": { + "miou": 0.5167009177958669, + "oa": 0.7871916539025932, + "macro_f1": 0.6303862870867428, + "kappa": 0.7635603406741439, + "per_class_iou": [ + 0.7847292476438954, + 0.794716269038954, + 0.8028045574057844, + 0.5278776978417267, + 0.9012145748987854, + 0.5710403726708074, + 0.6211892544521581, + 0.6878600607520687, + 0.38773975178638587, + 0.15184243964421856, + 0.8522920203735145, + 0.18935488365612374, + 0.1089866156787763, + 0.3318557324199073, + 0.8306976744186046, + 0.5137823245240125, + 0.01694915254237288, + 0.2256838905775076 + ], + "confusion_matrix": [ + [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + [ + 0, + 14738, + 115, + 52, + 56, + 14, + 49, + 4, + 498, + 0, + 3, + 216, + 81, + 3, + 671, + 19, + 252, + 5, + 4, + 0 + ], + [ + 0, + 110, + 11792, + 86, + 5, + 15, + 57, + 3, + 0, + 15, + 64, + 187, + 24, + 2, + 97, + 0, + 8, + 4, + 8, + 0 + ], + [ + 0, + 166, + 129, + 11908, + 19, + 9, + 3, + 210, + 0, + 28, + 0, + 0, + 2, + 5, + 168, + 138, + 39, + 0, + 1044, + 0 + ], + [ + 0, + 27, + 501, + 40, + 1174, + 42, + 3, + 0, + 0, + 0, + 210, + 0, + 9, + 9, + 0, + 0, + 19, + 9, + 4, + 0 + ], + [ + 0, + 73, + 25, + 26, + 0, + 5565, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 18, + 8, + 0, + 74, + 0, + 0 + ], + [ + 0, + 59, + 66, + 5, + 18, + 1, + 1471, + 48, + 268, + 0, + 2, + 199, + 0, + 0, + 89, + 0, + 4, + 178, + 0, + 0 + ], + [ + 0, + 5, + 1, + 10, + 0, + 0, + 15, + 4116, + 336, + 112, + 0, + 12, + 680, + 0, + 69, + 2, + 4, + 0, + 17, + 0 + ], + [ + 0, + 22, + 0, + 0, + 0, + 0, + 1, + 0, + 6567, + 0, + 0, + 7, + 0, + 0, + 0, + 0, + 1, + 0, + 0, + 0 + ], + [ + 0, + 5, + 21, + 5, + 0, + 0, + 0, + 18, + 0, + 2062, + 0, + 0, + 25, + 23, + 7, + 0, + 0, + 0, + 0, + 0 + ], + [ + 0, + 28, + 888, + 0, + 2, + 0, + 0, + 0, + 0, + 5, + 239, + 0, + 0, + 0, + 5, + 0, + 33, + 2, + 0, + 0 + ], + [ + 0, + 8, + 0, + 0, + 66, + 0, + 28, + 4, + 10, + 0, + 0, + 6526, + 0, + 0, + 23, + 0, + 69, + 0, + 8, + 0 + ], + [ + 0, + 120, + 21, + 165, + 1, + 4, + 2, + 468, + 484, + 2880, + 0, + 127, + 1359, + 208, + 151, + 16, + 10, + 9, + 21, + 0 + ], + [ + 0, + 1, + 46, + 52, + 0, + 1, + 0, + 209, + 11, + 31, + 1, + 93, + 213, + 114, + 14, + 4, + 6, + 0, + 0, + 0 + ], + [ + 0, + 1023, + 18, + 37, + 0, + 2, + 9, + 52, + 462, + 0, + 0, + 62, + 5, + 0, + 1647, + 0, + 170, + 17, + 0, + 0 + ], + [ + 0, + 26, + 10, + 33, + 7, + 6, + 0, + 2, + 0, + 38, + 0, + 0, + 0, + 0, + 0, + 1786, + 1, + 0, + 0, + 0 + ], + [ + 0, + 54, + 0, + 6, + 0, + 0, + 0, + 40, + 880, + 0, + 0, + 7, + 0, + 0, + 34, + 0, + 1808, + 0, + 0, + 0 + ], + [ + 0, + 257, + 520, + 31, + 3, + 292, + 0, + 0, + 0, + 43, + 92, + 0, + 0, + 0, + 0, + 4, + 26, + 27, + 0, + 0 + ], + [ + 0, + 17, + 0, + 417, + 0, + 0, + 1, + 189, + 0, + 0, + 0, + 5, + 92, + 0, + 113, + 50, + 48, + 0, + 594, + 0 + ], + [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ] + ] + } + }, + { + "mode": "replace", + "alpha": 0.25, + "metrics": { + "miou": 0.5033289536425035, + "oa": 0.782992898533649, + "macro_f1": 0.6170834757758071, + "kappa": 0.7585346205823219, + "per_class_iou": [ + 0.7869957537154989, + 0.7619479929965631, + 0.8095206257939427, + 0.45619757688723206, + 0.9017114914425428, + 0.5248306997742663, + 0.6307806691449814, + 0.6747173689619733, + 0.3831012070566388, + 0.12672978878368535, + 0.8447625243981782, + 0.15451730931607094, + 0.09753694581280788, + 0.33543373240915775, + 0.8002767527675276, + 0.5162200282087447, + 0.008524590163934427, + 0.24611610793131644 + ], + "confusion_matrix": [ + [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + [ + 0, + 14827, + 108, + 48, + 33, + 8, + 41, + 2, + 559, + 0, + 3, + 206, + 75, + 2, + 575, + 16, + 270, + 4, + 3, + 0 + ], + [ + 0, + 134, + 11750, + 97, + 2, + 17, + 60, + 0, + 0, + 13, + 74, + 188, + 22, + 1, + 91, + 0, + 19, + 3, + 6, + 0 + ], + [ + 0, + 134, + 183, + 12108, + 9, + 8, + 2, + 221, + 0, + 25, + 1, + 0, + 3, + 2, + 96, + 173, + 38, + 0, + 865, + 0 + ], + [ + 0, + 33, + 853, + 57, + 979, + 38, + 0, + 0, + 0, + 0, + 61, + 0, + 8, + 8, + 0, + 0, + 5, + 2, + 3, + 0 + ], + [ + 0, + 96, + 81, + 26, + 5, + 5532, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 17, + 8, + 0, + 24, + 0, + 0 + ], + [ + 0, + 58, + 54, + 18, + 20, + 0, + 1395, + 72, + 381, + 0, + 0, + 143, + 0, + 0, + 87, + 0, + 6, + 174, + 0, + 0 + ], + [ + 0, + 8, + 0, + 18, + 0, + 0, + 8, + 4242, + 329, + 94, + 0, + 25, + 591, + 0, + 52, + 2, + 3, + 0, + 7, + 0 + ], + [ + 0, + 23, + 0, + 0, + 0, + 0, + 2, + 0, + 6565, + 0, + 0, + 7, + 0, + 0, + 0, + 0, + 1, + 0, + 0, + 0 + ], + [ + 0, + 3, + 22, + 15, + 0, + 0, + 4, + 13, + 0, + 2063, + 0, + 0, + 23, + 12, + 11, + 0, + 0, + 0, + 0, + 0 + ], + [ + 0, + 36, + 943, + 1, + 2, + 0, + 0, + 0, + 0, + 5, + 174, + 0, + 0, + 0, + 5, + 2, + 34, + 0, + 0, + 0 + ], + [ + 0, + 11, + 0, + 0, + 12, + 0, + 118, + 2, + 10, + 0, + 0, + 6492, + 0, + 0, + 24, + 0, + 68, + 0, + 5, + 0 + ], + [ + 0, + 143, + 20, + 207, + 0, + 3, + 2, + 589, + 479, + 2980, + 0, + 164, + 1098, + 194, + 108, + 8, + 13, + 7, + 31, + 0 + ], + [ + 0, + 2, + 41, + 82, + 0, + 0, + 0, + 201, + 32, + 23, + 0, + 72, + 226, + 99, + 13, + 0, + 5, + 0, + 0, + 0 + ], + [ + 0, + 988, + 17, + 35, + 0, + 0, + 13, + 40, + 517, + 0, + 0, + 111, + 0, + 0, + 1597, + 0, + 170, + 16, + 0, + 0 + ], + [ + 0, + 29, + 6, + 90, + 6, + 5, + 0, + 0, + 0, + 38, + 0, + 0, + 0, + 0, + 0, + 1735, + 0, + 0, + 0, + 0 + ], + [ + 0, + 54, + 0, + 7, + 0, + 0, + 0, + 27, + 819, + 0, + 0, + 14, + 0, + 0, + 78, + 0, + 1830, + 0, + 0, + 0 + ], + [ + 0, + 270, + 616, + 22, + 10, + 267, + 0, + 0, + 0, + 41, + 32, + 0, + 0, + 0, + 3, + 4, + 17, + 13, + 0, + 0 + ], + [ + 0, + 38, + 0, + 366, + 0, + 0, + 0, + 179, + 6, + 0, + 0, + 13, + 112, + 0, + 97, + 46, + 67, + 0, + 602, + 0 + ], + [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ] + ] + } + }, + { + "mode": "replace", + "alpha": 0.5, + "metrics": { + "miou": 0.4332495930777849, + "oa": 0.7428262336521674, + "macro_f1": 0.5448831552781153, + "kappa": 0.7134735235251789, + "per_class_iou": [ + 0.7769852591535901, + 0.6716800746181648, + 0.7433450201272562, + 0.13846153846153847, + 0.8932325886990802, + 0.33295063145809417, + 0.6267615865175069, + 0.6585783326621023, + 0.37458317895516857, + 0.017937219730941704, + 0.7374032237593603, + 0.08724641793162151, + 0.07386990077177508, + 0.3299914675767918, + 0.6087711680416847, + 0.47658688865764826, + 0.0, + 0.2501081782778018 + ], + "confusion_matrix": [ + [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + [ + 0, + 14706, + 99, + 59, + 22, + 5, + 41, + 1, + 738, + 0, + 0, + 210, + 60, + 2, + 513, + 11, + 312, + 1, + 0, + 0 + ], + [ + 0, + 187, + 11522, + 149, + 74, + 18, + 62, + 0, + 0, + 5, + 102, + 188, + 20, + 1, + 78, + 0, + 69, + 2, + 0, + 0 + ], + [ + 0, + 162, + 960, + 11449, + 6, + 2, + 2, + 211, + 2, + 23, + 4, + 0, + 3, + 0, + 51, + 234, + 75, + 0, + 684, + 0 + ], + [ + 0, + 65, + 1534, + 85, + 324, + 31, + 0, + 0, + 0, + 0, + 6, + 0, + 2, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + [ + 0, + 112, + 127, + 28, + 53, + 5438, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 0, + 14, + 9, + 4, + 3, + 0, + 0 + ], + [ + 0, + 53, + 34, + 43, + 62, + 1, + 1160, + 92, + 573, + 0, + 0, + 94, + 8, + 0, + 90, + 48, + 17, + 133, + 0, + 0 + ], + [ + 0, + 13, + 0, + 34, + 0, + 0, + 7, + 4314, + 294, + 36, + 0, + 70, + 552, + 0, + 27, + 23, + 5, + 0, + 4, + 0 + ], + [ + 0, + 40, + 0, + 0, + 0, + 0, + 5, + 4, + 6541, + 0, + 0, + 5, + 1, + 0, + 0, + 0, + 2, + 0, + 0, + 0 + ], + [ + 0, + 5, + 20, + 64, + 0, + 0, + 23, + 0, + 0, + 2022, + 0, + 0, + 13, + 0, + 19, + 0, + 0, + 0, + 0, + 0 + ], + [ + 0, + 78, + 1047, + 1, + 7, + 4, + 0, + 0, + 0, + 0, + 24, + 0, + 0, + 0, + 8, + 3, + 30, + 0, + 0, + 0 + ], + [ + 0, + 11, + 0, + 0, + 0, + 0, + 804, + 3, + 20, + 0, + 0, + 5810, + 0, + 0, + 22, + 0, + 69, + 0, + 3, + 0 + ], + [ + 0, + 268, + 77, + 255, + 4, + 29, + 0, + 799, + 331, + 3048, + 14, + 239, + 615, + 108, + 55, + 48, + 62, + 0, + 94, + 0 + ], + [ + 0, + 6, + 30, + 123, + 0, + 0, + 0, + 167, + 109, + 19, + 0, + 15, + 227, + 67, + 28, + 0, + 5, + 0, + 0, + 0 + ], + [ + 0, + 692, + 17, + 27, + 0, + 0, + 132, + 35, + 523, + 1, + 0, + 254, + 0, + 0, + 1547, + 0, + 266, + 10, + 0, + 0 + ], + [ + 0, + 53, + 4, + 384, + 3, + 1, + 0, + 0, + 0, + 62, + 0, + 0, + 0, + 0, + 0, + 1402, + 0, + 0, + 0, + 0 + ], + [ + 0, + 52, + 0, + 11, + 0, + 0, + 0, + 18, + 696, + 0, + 0, + 34, + 1, + 0, + 185, + 0, + 1832, + 0, + 0, + 0 + ], + [ + 0, + 219, + 726, + 8, + 62, + 208, + 0, + 0, + 0, + 38, + 10, + 0, + 0, + 0, + 23, + 1, + 0, + 0, + 0, + 0 + ], + [ + 0, + 131, + 2, + 263, + 0, + 0, + 0, + 174, + 48, + 0, + 0, + 27, + 116, + 0, + 71, + 17, + 99, + 0, + 578, + 0 + ], + [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ] + ] + } + } + ], + "reference_val_miou": 0.5256398451814701, + "delta_val_pp": 0.0, + "patch_bootstrap_delta_interval_pp": [ + 0.0, + 0.0 + ], + "bootstrap_caveat": "descriptive, after validation selection; not an independent significance test", + "selection_split": "validation", + "test_used_for_selection": false +} \ No newline at end of file diff --git a/ablations/10_plateau_breakthrough/workspace/convnext_research_20261010/32X32_temporal_cnv1_k7_seed3407/test_results.json b/ablations/10_plateau_breakthrough/workspace/convnext_research_20261010/32X32_temporal_cnv1_k7_seed3407/test_results.json new file mode 100644 index 0000000000000000000000000000000000000000..d1e734dffd48bacd9dbfedf0e51eb4fa912e119f --- /dev/null +++ b/ablations/10_plateau_breakthrough/workspace/convnext_research_20261010/32X32_temporal_cnv1_k7_seed3407/test_results.json @@ -0,0 +1,5672 @@ +{ + "kind": "temporal_cnv1_k7", + "metrics": { + "miou": 0.49455547330691263, + "oa": 0.8109266736579659, + "macro_f1": 0.6234136021853756, + "kappa": 0.7642966739749818, + "per_class_iou": [ + 0.8061330522981268, + 0.7198486670090578, + 0.8757351877577422, + 0.46213693236161063, + 0.8703389461776095, + 0.38416520104311963, + 0.4490553274645572, + 0.6216216216216216, + 0.7901944411308601, + 0.07114146695276376, + 0.5587868716244287, + 0.3175281724644782, + 0.4373326486446833, + 0.2655897022970766, + 0.6168043633350977, + 0.28662647573048294, + 0.0918118400487935, + 0.27714760156231727 + ], + "confusion_matrix": [ + [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + [ + 0, + 1311069, + 6756, + 8420, + 815, + 744, + 883, + 2246, + 19285, + 602, + 381, + 3742, + 6998, + 405, + 29504, + 1126, + 71312, + 1029, + 686, + 0 + ], + [ + 0, + 12671, + 493367, + 5115, + 3930, + 1130, + 1764, + 172, + 746, + 546, + 21217, + 15339, + 437, + 131, + 1045, + 166, + 699, + 2161, + 44, + 0 + ], + [ + 0, + 17785, + 2752, + 641744, + 302, + 960, + 172, + 3539, + 862, + 3810, + 169, + 19, + 2132, + 202, + 3012, + 4846, + 607, + 129, + 5247, + 0 + ], + [ + 0, + 9412, + 46049, + 1786, + 82625, + 1310, + 4247, + 55, + 196, + 62, + 7994, + 4414, + 287, + 376, + 482, + 80, + 252, + 3761, + 4, + 0 + ], + [ + 0, + 2675, + 1166, + 868, + 380, + 120018, + 262, + 124, + 19, + 220, + 688, + 194, + 22, + 35, + 1476, + 29, + 106, + 837, + 0, + 0 + ], + [ + 0, + 4040, + 7283, + 711, + 3621, + 289, + 25338, + 175, + 883, + 118, + 2677, + 5012, + 146, + 454, + 1986, + 330, + 163, + 536, + 0, + 0 + ], + [ + 0, + 1538, + 141, + 3611, + 17, + 249, + 89, + 47797, + 7620, + 3775, + 49, + 378, + 1239, + 1298, + 2624, + 9685, + 632, + 168, + 1023, + 0 + ], + [ + 0, + 18456, + 124, + 4622, + 0, + 0, + 17, + 1317, + 151754, + 0, + 1, + 338, + 854, + 23, + 403, + 328, + 9076, + 0, + 164, + 0 + ], + [ + 0, + 482, + 193, + 1058, + 35, + 123, + 379, + 620, + 116, + 66242, + 0, + 28, + 795, + 26, + 446, + 416, + 71, + 2, + 15, + 0 + ], + [ + 0, + 3092, + 44739, + 412, + 1763, + 216, + 156, + 5, + 11, + 5, + 7062, + 21, + 6, + 0, + 299, + 8, + 83, + 484, + 0, + 0 + ], + [ + 0, + 1322, + 2401, + 20, + 0, + 0, + 1773, + 184, + 1235, + 0, + 143, + 60525, + 38, + 0, + 1508, + 0, + 693, + 4, + 114, + 0 + ], + [ + 0, + 3196, + 123, + 4634, + 46, + 7, + 910, + 9697, + 3978, + 1955, + 63, + 3941, + 25923, + 639, + 1593, + 517, + 2180, + 171, + 1142, + 0 + ], + [ + 0, + 589, + 140, + 1406, + 6, + 31, + 92, + 2996, + 519, + 719, + 7, + 314, + 2523, + 11923, + 406, + 408, + 473, + 9, + 52, + 0 + ], + [ + 0, + 57524, + 1032, + 1194, + 723, + 333, + 1050, + 1045, + 7046, + 405, + 646, + 1114, + 551, + 254, + 47497, + 318, + 6554, + 377, + 131, + 0 + ], + [ + 0, + 1525, + 170, + 6485, + 90, + 129, + 5, + 653, + 17, + 376, + 8, + 2255, + 478, + 3, + 400, + 53604, + 52, + 13, + 2053, + 0 + ], + [ + 0, + 12728, + 331, + 778, + 2, + 0, + 34, + 422, + 10506, + 48, + 33, + 1127, + 965, + 73, + 710, + 23, + 49018, + 5, + 56, + 0 + ], + [ + 0, + 8636, + 11253, + 1214, + 3447, + 3258, + 322, + 34, + 20, + 20, + 6827, + 1, + 610, + 689, + 1495, + 80, + 44, + 4817, + 2, + 0 + ], + [ + 0, + 4694, + 43, + 2183, + 220, + 0, + 39, + 1222, + 3590, + 122, + 2, + 118, + 2844, + 42, + 3653, + 230, + 1161, + 11, + 11850, + 0 + ], + [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ] + ] + }, + "baseline": { + "miou": 0.49455547330691263, + "oa": 0.8109266736579659, + "macro_f1": 0.6234136021853756, + "kappa": 0.7642966739749818, + "per_class_iou": [ + 0.8061330522981268, + 0.7198486670090578, + 0.8757351877577422, + 0.46213693236161063, + 0.8703389461776095, + 0.38416520104311963, + 0.4490553274645572, + 0.6216216216216216, + 0.7901944411308601, + 0.07114146695276376, + 0.5587868716244287, + 0.3175281724644782, + 0.4373326486446833, + 0.2655897022970766, + 0.6168043633350977, + 0.28662647573048294, + 0.0918118400487935, + 0.27714760156231727 + ], + "confusion_matrix": [ + [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + [ + 0, + 1311069, + 6756, + 8420, + 815, + 744, + 883, + 2246, + 19285, + 602, + 381, + 3742, + 6998, + 405, + 29504, + 1126, + 71312, + 1029, + 686, + 0 + ], + [ + 0, + 12671, + 493367, + 5115, + 3930, + 1130, + 1764, + 172, + 746, + 546, + 21217, + 15339, + 437, + 131, + 1045, + 166, + 699, + 2161, + 44, + 0 + ], + [ + 0, + 17785, + 2752, + 641744, + 302, + 960, + 172, + 3539, + 862, + 3810, + 169, + 19, + 2132, + 202, + 3012, + 4846, + 607, + 129, + 5247, + 0 + ], + [ + 0, + 9412, + 46049, + 1786, + 82625, + 1310, + 4247, + 55, + 196, + 62, + 7994, + 4414, + 287, + 376, + 482, + 80, + 252, + 3761, + 4, + 0 + ], + [ + 0, + 2675, + 1166, + 868, + 380, + 120018, + 262, + 124, + 19, + 220, + 688, + 194, + 22, + 35, + 1476, + 29, + 106, + 837, + 0, + 0 + ], + [ + 0, + 4040, + 7283, + 711, + 3621, + 289, + 25338, + 175, + 883, + 118, + 2677, + 5012, + 146, + 454, + 1986, + 330, + 163, + 536, + 0, + 0 + ], + [ + 0, + 1538, + 141, + 3611, + 17, + 249, + 89, + 47797, + 7620, + 3775, + 49, + 378, + 1239, + 1298, + 2624, + 9685, + 632, + 168, + 1023, + 0 + ], + [ + 0, + 18456, + 124, + 4622, + 0, + 0, + 17, + 1317, + 151754, + 0, + 1, + 338, + 854, + 23, + 403, + 328, + 9076, + 0, + 164, + 0 + ], + [ + 0, + 482, + 193, + 1058, + 35, + 123, + 379, + 620, + 116, + 66242, + 0, + 28, + 795, + 26, + 446, + 416, + 71, + 2, + 15, + 0 + ], + [ + 0, + 3092, + 44739, + 412, + 1763, + 216, + 156, + 5, + 11, + 5, + 7062, + 21, + 6, + 0, + 299, + 8, + 83, + 484, + 0, + 0 + ], + [ + 0, + 1322, + 2401, + 20, + 0, + 0, + 1773, + 184, + 1235, + 0, + 143, + 60525, + 38, + 0, + 1508, + 0, + 693, + 4, + 114, + 0 + ], + [ + 0, + 3196, + 123, + 4634, + 46, + 7, + 910, + 9697, + 3978, + 1955, + 63, + 3941, + 25923, + 639, + 1593, + 517, + 2180, + 171, + 1142, + 0 + ], + [ + 0, + 589, + 140, + 1406, + 6, + 31, + 92, + 2996, + 519, + 719, + 7, + 314, + 2523, + 11923, + 406, + 408, + 473, + 9, + 52, + 0 + ], + [ + 0, + 57524, + 1032, + 1194, + 723, + 333, + 1050, + 1045, + 7046, + 405, + 646, + 1114, + 551, + 254, + 47497, + 318, + 6554, + 377, + 131, + 0 + ], + [ + 0, + 1525, + 170, + 6485, + 90, + 129, + 5, + 653, + 17, + 376, + 8, + 2255, + 478, + 3, + 400, + 53604, + 52, + 13, + 2053, + 0 + ], + [ + 0, + 12728, + 331, + 778, + 2, + 0, + 34, + 422, + 10506, + 48, + 33, + 1127, + 965, + 73, + 710, + 23, + 49018, + 5, + 56, + 0 + ], + [ + 0, + 8636, + 11253, + 1214, + 3447, + 3258, + 322, + 34, + 20, + 20, + 6827, + 1, + 610, + 689, + 1495, + 80, + 44, + 4817, + 2, + 0 + ], + [ + 0, + 4694, + 43, + 2183, + 220, + 0, + 39, + 1222, + 3590, + 122, + 2, + 118, + 2844, + 42, + 3653, + 230, + 1161, + 11, + 11850, + 0 + ], + [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ] + ] + }, + "standalone": { + "miou": 0.3069074007532148, + "oa": 0.6761532235628664, + "macro_f1": 0.4260895602520703, + "kappa": 0.5978011999035246, + "per_class_iou": [ + 0.7144823334980683, + 0.5442047937495862, + 0.6095177470203574, + 0.14836951085325598, + 0.6652970922882427, + 0.06362638245454302, + 0.26244854552951985, + 0.4445944546663799, + 0.5569927600211901, + 0.017620084833199587, + 0.3415073147250263, + 0.1864087227877257, + 0.12848353239232718, + 0.14179531160663236, + 0.35610098323577766, + 0.20132484321619323, + 0.018974134151687857, + 0.12258466652815292 + ], + "confusion_matrix": [ + [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + [ + 0, + 1210068, + 17634, + 39728, + 2382, + 2271, + 707, + 3465, + 24717, + 1671, + 1051, + 13468, + 3788, + 957, + 65218, + 2385, + 74826, + 1184, + 483, + 0 + ], + [ + 0, + 29687, + 460271, + 11969, + 10757, + 5515, + 3103, + 333, + 1435, + 383, + 8759, + 13784, + 5993, + 828, + 2332, + 907, + 2046, + 2165, + 413, + 0 + ], + [ + 0, + 45872, + 83083, + 484502, + 1995, + 4046, + 452, + 4099, + 3033, + 8532, + 3153, + 1033, + 6552, + 2899, + 7469, + 13148, + 3253, + 4348, + 10820, + 0 + ], + [ + 0, + 10681, + 86939, + 2029, + 29665, + 5193, + 5449, + 345, + 206, + 61, + 6159, + 7421, + 1245, + 834, + 3173, + 562, + 566, + 2614, + 250, + 0 + ], + [ + 0, + 6569, + 5227, + 1202, + 3858, + 103145, + 169, + 57, + 98, + 747, + 2532, + 572, + 589, + 403, + 2319, + 504, + 415, + 712, + 1, + 0 + ], + [ + 0, + 3978, + 17240, + 1586, + 6323, + 1250, + 4752, + 987, + 812, + 653, + 1795, + 7779, + 264, + 245, + 1777, + 1130, + 741, + 2045, + 405, + 0 + ], + [ + 0, + 2436, + 3090, + 8685, + 220, + 167, + 107, + 36278, + 8531, + 2457, + 745, + 1284, + 5527, + 946, + 5044, + 4083, + 1022, + 278, + 1033, + 0 + ], + [ + 0, + 25504, + 254, + 7742, + 0, + 0, + 36, + 16575, + 111635, + 0, + 18, + 4565, + 3008, + 6, + 2001, + 1525, + 11591, + 1, + 3016, + 0 + ], + [ + 0, + 3485, + 369, + 4474, + 178, + 4185, + 65, + 695, + 616, + 50468, + 391, + 34, + 4286, + 490, + 296, + 322, + 489, + 192, + 12, + 0 + ], + [ + 0, + 5475, + 41615, + 2211, + 3256, + 211, + 216, + 88, + 78, + 4, + 1537, + 1505, + 423, + 26, + 987, + 155, + 212, + 105, + 258, + 0 + ], + [ + 0, + 1486, + 3535, + 94, + 15, + 0, + 8739, + 232, + 2332, + 0, + 55, + 48952, + 1067, + 170, + 641, + 96, + 1520, + 4, + 1022, + 0 + ], + [ + 0, + 3466, + 977, + 5290, + 596, + 392, + 346, + 11965, + 4530, + 1239, + 710, + 4182, + 20071, + 737, + 1880, + 808, + 2397, + 186, + 943, + 0 + ], + [ + 0, + 654, + 667, + 1824, + 621, + 273, + 48, + 1913, + 847, + 924, + 338, + 1968, + 6108, + 4260, + 1166, + 436, + 207, + 215, + 144, + 0 + ], + [ + 0, + 60694, + 1930, + 3394, + 593, + 670, + 994, + 3698, + 6424, + 717, + 185, + 4309, + 1008, + 475, + 33480, + 594, + 8316, + 90, + 223, + 0 + ], + [ + 0, + 4068, + 3103, + 10752, + 123, + 166, + 198, + 3736, + 560, + 1581, + 449, + 1290, + 3819, + 954, + 1141, + 34008, + 471, + 77, + 1820, + 0 + ], + [ + 0, + 12484, + 241, + 1698, + 16, + 2, + 90, + 3832, + 5314, + 147, + 170, + 8752, + 821, + 34, + 5483, + 45, + 37656, + 30, + 44, + 0 + ], + [ + 0, + 8852, + 18657, + 1637, + 5593, + 1571, + 149, + 170, + 31, + 231, + 2318, + 0, + 264, + 230, + 1460, + 438, + 54, + 1082, + 32, + 0 + ], + [ + 0, + 2235, + 527, + 2290, + 22, + 5, + 56, + 4106, + 4053, + 214, + 40, + 1435, + 2195, + 309, + 5934, + 47, + 2056, + 10, + 6490, + 0 + ], + [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ] + ] + }, + "delta_test_pp": 0.0, + "standalone_delta_test_pp": -18.76480725536978, + "seconds": 40.53995610913262, + "validation_selection": { + "kind": "temporal_cnv1_k7", + "seed": 3407, + "checkpoint_epoch": 75, + "standalone": { + "miou": 0.3388080549779667, + "oa": 0.6592688595880507, + "macro_f1": 0.45075580713411373, + "kappa": 0.6207877708949721, + "per_class_iou": [ + 0.7153989059758489, + 0.5676727310968556, + 0.6167668419734536, + 0.0408017179670723, + 0.7538663554128976, + 0.1342629482071713, + 0.5363781200212427, + 0.6086384786566862, + 0.37536199599019826, + 0.0, + 0.5060762844423053, + 0.09577026453529495, + 0.02944507361268403, + 0.26982164930248986, + 0.3654259126700072, + 0.3513394817742644, + 0.0, + 0.13151822796492849 + ], + "confusion_matrix": [ + [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + [ + 0, + 13863, + 178, + 181, + 37, + 37, + 54, + 28, + 747, + 0, + 0, + 284, + 60, + 0, + 804, + 4, + 496, + 6, + 1, + 0 + ], + [ + 0, + 256, + 10796, + 329, + 223, + 153, + 144, + 0, + 0, + 0, + 128, + 185, + 24, + 0, + 90, + 6, + 132, + 10, + 1, + 0 + ], + [ + 0, + 242, + 2338, + 9851, + 28, + 0, + 9, + 209, + 9, + 24, + 18, + 0, + 55, + 0, + 108, + 337, + 301, + 5, + 334, + 0 + ], + [ + 0, + 79, + 1714, + 99, + 114, + 20, + 4, + 2, + 0, + 0, + 4, + 0, + 0, + 0, + 2, + 0, + 0, + 7, + 2, + 0 + ], + [ + 0, + 175, + 185, + 9, + 54, + 5167, + 8, + 0, + 1, + 139, + 3, + 7, + 1, + 1, + 4, + 21, + 14, + 0, + 0, + 0 + ], + [ + 0, + 31, + 47, + 90, + 258, + 4, + 674, + 98, + 664, + 0, + 0, + 68, + 46, + 0, + 145, + 207, + 51, + 17, + 8, + 0 + ], + [ + 0, + 14, + 2, + 52, + 0, + 0, + 5, + 4040, + 288, + 5, + 0, + 146, + 337, + 0, + 231, + 134, + 14, + 0, + 111, + 0 + ], + [ + 0, + 70, + 0, + 0, + 0, + 0, + 9, + 409, + 6017, + 0, + 0, + 57, + 15, + 0, + 14, + 0, + 7, + 0, + 0, + 0 + ], + [ + 0, + 158, + 9, + 128, + 6, + 0, + 29, + 9, + 4, + 1685, + 0, + 0, + 92, + 19, + 22, + 0, + 0, + 5, + 0, + 0 + ], + [ + 0, + 104, + 994, + 13, + 41, + 10, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 18, + 16, + 6, + 0, + 0, + 0 + ], + [ + 0, + 25, + 28, + 2, + 0, + 0, + 2126, + 14, + 46, + 0, + 0, + 4206, + 0, + 9, + 66, + 60, + 159, + 0, + 1, + 0 + ], + [ + 0, + 337, + 160, + 273, + 27, + 730, + 4, + 833, + 213, + 2057, + 71, + 246, + 677, + 58, + 23, + 54, + 121, + 0, + 162, + 0 + ], + [ + 0, + 7, + 21, + 127, + 0, + 0, + 0, + 154, + 143, + 17, + 1, + 0, + 233, + 26, + 55, + 8, + 4, + 0, + 0, + 0 + ], + [ + 0, + 533, + 17, + 20, + 6, + 0, + 182, + 30, + 557, + 3, + 0, + 347, + 0, + 0, + 1528, + 8, + 273, + 0, + 0, + 0 + ], + [ + 0, + 110, + 2, + 592, + 0, + 40, + 4, + 3, + 0, + 68, + 0, + 0, + 0, + 0, + 51, + 1021, + 0, + 0, + 18, + 0 + ], + [ + 0, + 35, + 4, + 13, + 0, + 0, + 1, + 42, + 507, + 2, + 0, + 203, + 17, + 0, + 402, + 0, + 1600, + 0, + 3, + 0 + ], + [ + 0, + 212, + 833, + 7, + 67, + 71, + 0, + 0, + 0, + 8, + 16, + 0, + 0, + 0, + 81, + 0, + 0, + 0, + 0, + 0 + ], + [ + 0, + 210, + 9, + 169, + 0, + 0, + 33, + 322, + 109, + 0, + 0, + 26, + 143, + 0, + 43, + 30, + 147, + 0, + 285, + 0 + ], + [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ] + ] + }, + "chosen": { + "mode": "add", + "alpha": 0.0, + "metrics": { + "miou": 0.5256398451814701, + "oa": 0.7954606313128608, + "macro_f1": 0.6400266863319044, + "kappa": 0.7725060156424988, + "per_class_iou": [ + 0.7863696632193052, + 0.7940560621411685, + 0.8422681105804802, + 0.5216035634743875, + 0.8953563366655918, + 0.5666403785488959, + 0.6681021224238696, + 0.6854425749817118, + 0.3865969759193579, + 0.15913978494623657, + 0.8521227955584585, + 0.16817463736895016, + 0.15324165029469547, + 0.3526720731960907, + 0.8232323232323232, + 0.5073836723321259, + 0.010297482837528604, + 0.2888170055452865 + ], + "confusion_matrix": [ + [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + [ + 0, + 14827, + 104, + 46, + 8, + 16, + 20, + 1, + 480, + 0, + 3, + 211, + 80, + 3, + 659, + 16, + 296, + 4, + 6, + 0 + ], + [ + 0, + 160, + 11756, + 93, + 27, + 17, + 59, + 3, + 0, + 18, + 25, + 184, + 13, + 1, + 99, + 0, + 10, + 4, + 8, + 0 + ], + [ + 0, + 165, + 132, + 12522, + 19, + 10, + 2, + 144, + 0, + 31, + 1, + 0, + 2, + 6, + 113, + 137, + 34, + 11, + 539, + 0 + ], + [ + 0, + 23, + 477, + 28, + 1171, + 50, + 1, + 0, + 0, + 0, + 130, + 0, + 18, + 10, + 0, + 2, + 6, + 128, + 3, + 0 + ], + [ + 0, + 83, + 1, + 23, + 0, + 5553, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 19, + 8, + 1, + 101, + 0, + 0 + ], + [ + 0, + 96, + 76, + 5, + 7, + 0, + 1437, + 49, + 253, + 0, + 0, + 217, + 0, + 0, + 77, + 0, + 5, + 186, + 0, + 0 + ], + [ + 0, + 7, + 0, + 14, + 0, + 0, + 10, + 4344, + 415, + 65, + 0, + 10, + 472, + 0, + 33, + 1, + 4, + 0, + 4, + 0 + ], + [ + 0, + 29, + 0, + 0, + 0, + 0, + 0, + 0, + 6559, + 0, + 0, + 9, + 0, + 0, + 0, + 0, + 1, + 0, + 0, + 0 + ], + [ + 0, + 6, + 20, + 6, + 0, + 1, + 0, + 26, + 0, + 2071, + 0, + 0, + 16, + 14, + 5, + 1, + 0, + 0, + 0, + 0 + ], + [ + 0, + 34, + 886, + 0, + 14, + 0, + 2, + 0, + 0, + 5, + 222, + 0, + 0, + 0, + 5, + 0, + 30, + 4, + 0, + 0 + ], + [ + 0, + 17, + 0, + 0, + 91, + 0, + 14, + 5, + 10, + 0, + 0, + 6523, + 0, + 0, + 13, + 0, + 63, + 0, + 6, + 0 + ], + [ + 0, + 107, + 18, + 205, + 0, + 3, + 10, + 473, + 524, + 2954, + 6, + 129, + 1171, + 188, + 120, + 47, + 11, + 8, + 72, + 0 + ], + [ + 0, + 1, + 44, + 53, + 0, + 0, + 0, + 189, + 8, + 36, + 1, + 71, + 216, + 156, + 12, + 2, + 7, + 0, + 0, + 0 + ], + [ + 0, + 1027, + 18, + 38, + 0, + 0, + 10, + 43, + 402, + 0, + 0, + 58, + 0, + 0, + 1696, + 0, + 205, + 7, + 0, + 0 + ], + [ + 0, + 28, + 6, + 32, + 4, + 6, + 0, + 0, + 0, + 40, + 0, + 0, + 0, + 0, + 0, + 1793, + 0, + 0, + 0, + 0 + ], + [ + 0, + 51, + 0, + 8, + 0, + 0, + 0, + 19, + 875, + 0, + 0, + 14, + 0, + 0, + 41, + 0, + 1821, + 0, + 0, + 0 + ], + [ + 0, + 230, + 546, + 75, + 28, + 310, + 0, + 0, + 0, + 42, + 27, + 0, + 0, + 0, + 0, + 4, + 15, + 18, + 0, + 0 + ], + [ + 0, + 11, + 0, + 373, + 0, + 0, + 0, + 171, + 4, + 0, + 0, + 10, + 100, + 0, + 109, + 51, + 72, + 0, + 625, + 0 + ], + [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ] + ] + } + }, + "records": [ + { + "mode": "add", + "alpha": 0.0, + "metrics": { + "miou": 0.5256398451814701, + "oa": 0.7954606313128608, + "macro_f1": 0.6400266863319044, + "kappa": 0.7725060156424988, + "per_class_iou": [ + 0.7863696632193052, + 0.7940560621411685, + 0.8422681105804802, + 0.5216035634743875, + 0.8953563366655918, + 0.5666403785488959, + 0.6681021224238696, + 0.6854425749817118, + 0.3865969759193579, + 0.15913978494623657, + 0.8521227955584585, + 0.16817463736895016, + 0.15324165029469547, + 0.3526720731960907, + 0.8232323232323232, + 0.5073836723321259, + 0.010297482837528604, + 0.2888170055452865 + ], + "confusion_matrix": [ + [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + [ + 0, + 14827, + 104, + 46, + 8, + 16, + 20, + 1, + 480, + 0, + 3, + 211, + 80, + 3, + 659, + 16, + 296, + 4, + 6, + 0 + ], + [ + 0, + 160, + 11756, + 93, + 27, + 17, + 59, + 3, + 0, + 18, + 25, + 184, + 13, + 1, + 99, + 0, + 10, + 4, + 8, + 0 + ], + [ + 0, + 165, + 132, + 12522, + 19, + 10, + 2, + 144, + 0, + 31, + 1, + 0, + 2, + 6, + 113, + 137, + 34, + 11, + 539, + 0 + ], + [ + 0, + 23, + 477, + 28, + 1171, + 50, + 1, + 0, + 0, + 0, + 130, + 0, + 18, + 10, + 0, + 2, + 6, + 128, + 3, + 0 + ], + [ + 0, + 83, + 1, + 23, + 0, + 5553, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 19, + 8, + 1, + 101, + 0, + 0 + ], + [ + 0, + 96, + 76, + 5, + 7, + 0, + 1437, + 49, + 253, + 0, + 0, + 217, + 0, + 0, + 77, + 0, + 5, + 186, + 0, + 0 + ], + [ + 0, + 7, + 0, + 14, + 0, + 0, + 10, + 4344, + 415, + 65, + 0, + 10, + 472, + 0, + 33, + 1, + 4, + 0, + 4, + 0 + ], + [ + 0, + 29, + 0, + 0, + 0, + 0, + 0, + 0, + 6559, + 0, + 0, + 9, + 0, + 0, + 0, + 0, + 1, + 0, + 0, + 0 + ], + [ + 0, + 6, + 20, + 6, + 0, + 1, + 0, + 26, + 0, + 2071, + 0, + 0, + 16, + 14, + 5, + 1, + 0, + 0, + 0, + 0 + ], + [ + 0, + 34, + 886, + 0, + 14, + 0, + 2, + 0, + 0, + 5, + 222, + 0, + 0, + 0, + 5, + 0, + 30, + 4, + 0, + 0 + ], + [ + 0, + 17, + 0, + 0, + 91, + 0, + 14, + 5, + 10, + 0, + 0, + 6523, + 0, + 0, + 13, + 0, + 63, + 0, + 6, + 0 + ], + [ + 0, + 107, + 18, + 205, + 0, + 3, + 10, + 473, + 524, + 2954, + 6, + 129, + 1171, + 188, + 120, + 47, + 11, + 8, + 72, + 0 + ], + [ + 0, + 1, + 44, + 53, + 0, + 0, + 0, + 189, + 8, + 36, + 1, + 71, + 216, + 156, + 12, + 2, + 7, + 0, + 0, + 0 + ], + [ + 0, + 1027, + 18, + 38, + 0, + 0, + 10, + 43, + 402, + 0, + 0, + 58, + 0, + 0, + 1696, + 0, + 205, + 7, + 0, + 0 + ], + [ + 0, + 28, + 6, + 32, + 4, + 6, + 0, + 0, + 0, + 40, + 0, + 0, + 0, + 0, + 0, + 1793, + 0, + 0, + 0, + 0 + ], + [ + 0, + 51, + 0, + 8, + 0, + 0, + 0, + 19, + 875, + 0, + 0, + 14, + 0, + 0, + 41, + 0, + 1821, + 0, + 0, + 0 + ], + [ + 0, + 230, + 546, + 75, + 28, + 310, + 0, + 0, + 0, + 42, + 27, + 0, + 0, + 0, + 0, + 4, + 15, + 18, + 0, + 0 + ], + [ + 0, + 11, + 0, + 373, + 0, + 0, + 0, + 171, + 4, + 0, + 0, + 10, + 100, + 0, + 109, + 51, + 72, + 0, + 625, + 0 + ], + [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ] + ] + } + }, + { + "mode": "add", + "alpha": 0.1, + "metrics": { + "miou": 0.5190025513215529, + "oa": 0.7926864536583799, + "macro_f1": 0.6331493336475037, + "kappa": 0.7692904675369805, + "per_class_iou": [ + 0.7874299015977145, + 0.7813498402555911, + 0.8433872374689659, + 0.49797205948625506, + 0.8972159274846229, + 0.5549407114624506, + 0.6586763153927333, + 0.6821729628473306, + 0.3801470588235294, + 0.14754098360655737, + 0.8506722360005221, + 0.13810888252148998, + 0.147117296222664, + 0.36004273504273504, + 0.7983834755276156, + 0.5123439667128987, + 0.00650887573964497, + 0.29803545759463346 + ], + "confusion_matrix": [ + [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + [ + 0, + 14884, + 102, + 48, + 5, + 11, + 18, + 0, + 503, + 0, + 3, + 204, + 76, + 2, + 602, + 15, + 299, + 3, + 5, + 0 + ], + [ + 0, + 175, + 11739, + 94, + 21, + 17, + 59, + 2, + 0, + 16, + 33, + 185, + 14, + 1, + 97, + 0, + 14, + 3, + 7, + 0 + ], + [ + 0, + 152, + 142, + 12569, + 13, + 8, + 2, + 169, + 0, + 32, + 2, + 0, + 1, + 5, + 70, + 179, + 34, + 7, + 483, + 0 + ], + [ + 0, + 26, + 622, + 36, + 1105, + 51, + 0, + 0, + 0, + 0, + 79, + 0, + 18, + 10, + 0, + 2, + 5, + 91, + 2, + 0 + ], + [ + 0, + 93, + 13, + 23, + 0, + 5543, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 19, + 8, + 0, + 90, + 0, + 0 + ], + [ + 0, + 91, + 62, + 6, + 7, + 0, + 1404, + 79, + 290, + 0, + 0, + 198, + 0, + 0, + 80, + 0, + 5, + 186, + 0, + 0 + ], + [ + 0, + 11, + 0, + 17, + 0, + 0, + 9, + 4369, + 412, + 44, + 0, + 15, + 481, + 0, + 17, + 1, + 2, + 0, + 1, + 0 + ], + [ + 0, + 34, + 0, + 0, + 0, + 0, + 0, + 0, + 6555, + 0, + 0, + 8, + 0, + 0, + 0, + 0, + 1, + 0, + 0, + 0 + ], + [ + 0, + 4, + 20, + 8, + 0, + 1, + 0, + 22, + 0, + 2068, + 0, + 0, + 18, + 12, + 11, + 2, + 0, + 0, + 0, + 0 + ], + [ + 0, + 40, + 913, + 0, + 11, + 0, + 0, + 0, + 0, + 4, + 198, + 0, + 0, + 0, + 5, + 0, + 29, + 2, + 0, + 0 + ], + [ + 0, + 16, + 0, + 0, + 91, + 0, + 18, + 5, + 10, + 0, + 0, + 6517, + 0, + 0, + 13, + 0, + 67, + 0, + 5, + 0 + ], + [ + 0, + 122, + 18, + 228, + 0, + 1, + 8, + 551, + 508, + 3068, + 6, + 151, + 964, + 180, + 102, + 61, + 13, + 7, + 58, + 0 + ], + [ + 0, + 1, + 45, + 60, + 0, + 0, + 0, + 204, + 13, + 26, + 1, + 66, + 213, + 148, + 10, + 2, + 7, + 0, + 0, + 0 + ], + [ + 0, + 1011, + 17, + 37, + 0, + 0, + 8, + 40, + 428, + 0, + 0, + 59, + 0, + 0, + 1685, + 0, + 213, + 6, + 0, + 0 + ], + [ + 0, + 29, + 6, + 48, + 4, + 4, + 0, + 0, + 0, + 40, + 0, + 0, + 0, + 0, + 0, + 1778, + 0, + 0, + 0, + 0 + ], + [ + 0, + 52, + 0, + 8, + 0, + 0, + 0, + 15, + 840, + 0, + 0, + 20, + 0, + 0, + 47, + 0, + 1847, + 0, + 0, + 0 + ], + [ + 0, + 240, + 587, + 68, + 20, + 296, + 0, + 0, + 0, + 44, + 16, + 0, + 0, + 0, + 0, + 3, + 10, + 11, + 0, + 0 + ], + [ + 0, + 25, + 0, + 354, + 0, + 0, + 0, + 167, + 7, + 0, + 0, + 13, + 113, + 0, + 103, + 45, + 77, + 0, + 622, + 0 + ], + [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ] + ] + } + }, + { + "mode": "add", + "alpha": 0.25, + "metrics": { + "miou": 0.4935752270645599, + "oa": 0.7824894763338011, + "macro_f1": 0.6061355461078186, + "kappa": 0.7576164361895923, + "per_class_iou": [ + 0.7824712946381545, + 0.744603629417383, + 0.8342281434347452, + 0.3440909090909091, + 0.8967762943666558, + 0.5203725261932479, + 0.6477607542722451, + 0.672514619883041, + 0.3801470588235294, + 0.07614607614607614, + 0.8442654890245487, + 0.11476817401259301, + 0.11318795430944964, + 0.3509229098805646, + 0.7492314448836188, + 0.50382096069869, + 0.0013149243918474688, + 0.3077309236947791 + ], + "confusion_matrix": [ + [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + [ + 0, + 14856, + 92, + 55, + 8, + 5, + 12, + 0, + 605, + 0, + 0, + 199, + 71, + 2, + 547, + 14, + 310, + 0, + 4, + 0 + ], + [ + 0, + 187, + 11694, + 117, + 10, + 18, + 65, + 0, + 0, + 12, + 49, + 186, + 16, + 1, + 87, + 0, + 31, + 1, + 3, + 0 + ], + [ + 0, + 145, + 189, + 12586, + 7, + 7, + 2, + 187, + 0, + 30, + 1, + 0, + 1, + 2, + 39, + 218, + 37, + 1, + 416, + 0 + ], + [ + 0, + 43, + 1078, + 54, + 757, + 47, + 0, + 0, + 0, + 0, + 30, + 0, + 10, + 8, + 0, + 3, + 0, + 17, + 0, + 0 + ], + [ + 0, + 103, + 83, + 25, + 19, + 5508, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 19, + 8, + 0, + 24, + 0, + 0 + ], + [ + 0, + 78, + 48, + 21, + 10, + 0, + 1341, + 97, + 398, + 0, + 0, + 148, + 0, + 0, + 84, + 0, + 6, + 177, + 0, + 0 + ], + [ + 0, + 14, + 0, + 21, + 0, + 0, + 6, + 4397, + 389, + 23, + 0, + 30, + 488, + 0, + 8, + 0, + 2, + 0, + 1, + 0 + ], + [ + 0, + 32, + 0, + 0, + 0, + 0, + 1, + 0, + 6555, + 0, + 0, + 8, + 0, + 0, + 0, + 0, + 2, + 0, + 0, + 0 + ], + [ + 0, + 4, + 20, + 21, + 0, + 0, + 6, + 12, + 0, + 2068, + 0, + 0, + 15, + 2, + 15, + 3, + 0, + 0, + 0, + 0 + ], + [ + 0, + 62, + 989, + 0, + 12, + 1, + 0, + 0, + 0, + 3, + 98, + 0, + 0, + 0, + 6, + 1, + 29, + 1, + 0, + 0 + ], + [ + 0, + 16, + 0, + 0, + 59, + 0, + 68, + 2, + 10, + 0, + 0, + 6500, + 0, + 0, + 18, + 0, + 65, + 0, + 4, + 0 + ], + [ + 0, + 153, + 23, + 278, + 0, + 1, + 5, + 699, + 432, + 3085, + 4, + 199, + 802, + 152, + 67, + 83, + 21, + 4, + 38, + 0 + ], + [ + 0, + 2, + 38, + 95, + 0, + 0, + 0, + 190, + 52, + 23, + 0, + 36, + 225, + 109, + 19, + 0, + 7, + 0, + 0, + 0 + ], + [ + 0, + 991, + 16, + 35, + 0, + 0, + 4, + 38, + 456, + 0, + 0, + 115, + 0, + 0, + 1616, + 0, + 232, + 1, + 0, + 0 + ], + [ + 0, + 34, + 6, + 101, + 3, + 4, + 0, + 0, + 0, + 55, + 0, + 0, + 0, + 0, + 0, + 1706, + 0, + 0, + 0, + 0 + ], + [ + 0, + 51, + 0, + 10, + 0, + 0, + 0, + 14, + 789, + 0, + 0, + 20, + 0, + 0, + 99, + 0, + 1846, + 0, + 0, + 0 + ], + [ + 0, + 241, + 646, + 59, + 25, + 270, + 0, + 0, + 0, + 43, + 1, + 0, + 0, + 0, + 0, + 2, + 6, + 2, + 0, + 0 + ], + [ + 0, + 50, + 0, + 327, + 0, + 0, + 0, + 170, + 18, + 0, + 0, + 16, + 116, + 0, + 93, + 36, + 87, + 0, + 613, + 0 + ], + [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ] + ] + } + }, + { + "mode": "add", + "alpha": 0.5, + "metrics": { + "miou": 0.43291494120907553, + "oa": 0.7462645001660222, + "macro_f1": 0.5425354460940128, + "kappa": 0.7170854587652294, + "per_class_iou": [ + 0.7755069791941006, + 0.6734586334094502, + 0.7619539932799173, + 0.12387483926275182, + 0.8899278215223098, + 0.3454828660436137, + 0.629376725265146, + 0.6556703098365587, + 0.3728750923872875, + 0.0022304832713754648, + 0.7618987501578084, + 0.07043863409058437, + 0.07274826789838337, + 0.3341121495327103, + 0.5835777126099707, + 0.46839006910673153, + 0.0, + 0.27094561489465946 + ], + "confusion_matrix": [ + [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + [ + 0, + 14723, + 95, + 63, + 15, + 5, + 21, + 0, + 713, + 0, + 0, + 212, + 56, + 2, + 537, + 9, + 324, + 1, + 4, + 0 + ], + [ + 0, + 203, + 11502, + 152, + 85, + 20, + 64, + 0, + 0, + 7, + 86, + 189, + 19, + 0, + 72, + 1, + 76, + 1, + 0, + 0 + ], + [ + 0, + 187, + 859, + 11792, + 7, + 1, + 3, + 195, + 3, + 26, + 3, + 0, + 3, + 0, + 38, + 270, + 90, + 0, + 391, + 0 + ], + [ + 0, + 58, + 1567, + 86, + 289, + 40, + 0, + 0, + 0, + 0, + 5, + 0, + 2, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + [ + 0, + 121, + 124, + 27, + 54, + 5425, + 1, + 0, + 0, + 0, + 0, + 1, + 0, + 0, + 18, + 9, + 3, + 6, + 0, + 0 + ], + [ + 0, + 65, + 28, + 45, + 53, + 1, + 1109, + 106, + 579, + 0, + 0, + 118, + 9, + 0, + 91, + 59, + 20, + 125, + 0, + 0 + ], + [ + 0, + 14, + 0, + 39, + 0, + 0, + 6, + 4332, + 361, + 9, + 0, + 68, + 491, + 0, + 29, + 24, + 4, + 0, + 2, + 0 + ], + [ + 0, + 44, + 0, + 0, + 0, + 0, + 3, + 4, + 6539, + 0, + 0, + 5, + 1, + 0, + 0, + 0, + 2, + 0, + 0, + 0 + ], + [ + 0, + 6, + 18, + 70, + 0, + 0, + 21, + 0, + 0, + 2018, + 0, + 0, + 12, + 0, + 17, + 3, + 0, + 1, + 0, + 0 + ], + [ + 0, + 96, + 1049, + 1, + 9, + 5, + 0, + 0, + 0, + 0, + 3, + 0, + 0, + 0, + 11, + 7, + 21, + 0, + 0, + 0 + ], + [ + 0, + 14, + 0, + 0, + 0, + 0, + 571, + 5, + 24, + 0, + 0, + 6035, + 0, + 0, + 25, + 0, + 66, + 0, + 2, + 0 + ], + [ + 0, + 283, + 81, + 293, + 6, + 14, + 2, + 825, + 318, + 3083, + 36, + 235, + 493, + 68, + 44, + 76, + 73, + 0, + 116, + 0 + ], + [ + 0, + 8, + 26, + 130, + 0, + 0, + 0, + 154, + 107, + 21, + 1, + 9, + 234, + 63, + 35, + 2, + 6, + 0, + 0, + 0 + ], + [ + 0, + 670, + 17, + 26, + 0, + 0, + 109, + 33, + 533, + 0, + 0, + 260, + 0, + 0, + 1573, + 0, + 283, + 0, + 0, + 0 + ], + [ + 0, + 62, + 0, + 383, + 0, + 0, + 1, + 2, + 0, + 68, + 0, + 0, + 0, + 0, + 0, + 1393, + 0, + 0, + 0, + 0 + ], + [ + 0, + 50, + 0, + 13, + 0, + 0, + 0, + 12, + 679, + 0, + 0, + 52, + 1, + 0, + 192, + 0, + 1830, + 0, + 0, + 0 + ], + [ + 0, + 189, + 736, + 16, + 57, + 221, + 0, + 0, + 0, + 32, + 12, + 0, + 0, + 0, + 32, + 0, + 0, + 0, + 0, + 0 + ], + [ + 0, + 135, + 2, + 264, + 0, + 0, + 0, + 168, + 58, + 0, + 0, + 30, + 125, + 0, + 63, + 18, + 110, + 0, + 553, + 0 + ], + [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ] + ] + } + }, + { + "mode": "replace", + "alpha": 0.1, + "metrics": { + "miou": 0.5167009177958669, + "oa": 0.7871916539025932, + "macro_f1": 0.6303862870867428, + "kappa": 0.7635603406741439, + "per_class_iou": [ + 0.7847292476438954, + 0.794716269038954, + 0.8028045574057844, + 0.5278776978417267, + 0.9012145748987854, + 0.5710403726708074, + 0.6211892544521581, + 0.6878600607520687, + 0.38773975178638587, + 0.15184243964421856, + 0.8522920203735145, + 0.18935488365612374, + 0.1089866156787763, + 0.3318557324199073, + 0.8306976744186046, + 0.5137823245240125, + 0.01694915254237288, + 0.2256838905775076 + ], + "confusion_matrix": [ + [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + [ + 0, + 14738, + 115, + 52, + 56, + 14, + 49, + 4, + 498, + 0, + 3, + 216, + 81, + 3, + 671, + 19, + 252, + 5, + 4, + 0 + ], + [ + 0, + 110, + 11792, + 86, + 5, + 15, + 57, + 3, + 0, + 15, + 64, + 187, + 24, + 2, + 97, + 0, + 8, + 4, + 8, + 0 + ], + [ + 0, + 166, + 129, + 11908, + 19, + 9, + 3, + 210, + 0, + 28, + 0, + 0, + 2, + 5, + 168, + 138, + 39, + 0, + 1044, + 0 + ], + [ + 0, + 27, + 501, + 40, + 1174, + 42, + 3, + 0, + 0, + 0, + 210, + 0, + 9, + 9, + 0, + 0, + 19, + 9, + 4, + 0 + ], + [ + 0, + 73, + 25, + 26, + 0, + 5565, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 18, + 8, + 0, + 74, + 0, + 0 + ], + [ + 0, + 59, + 66, + 5, + 18, + 1, + 1471, + 48, + 268, + 0, + 2, + 199, + 0, + 0, + 89, + 0, + 4, + 178, + 0, + 0 + ], + [ + 0, + 5, + 1, + 10, + 0, + 0, + 15, + 4116, + 336, + 112, + 0, + 12, + 680, + 0, + 69, + 2, + 4, + 0, + 17, + 0 + ], + [ + 0, + 22, + 0, + 0, + 0, + 0, + 1, + 0, + 6567, + 0, + 0, + 7, + 0, + 0, + 0, + 0, + 1, + 0, + 0, + 0 + ], + [ + 0, + 5, + 21, + 5, + 0, + 0, + 0, + 18, + 0, + 2062, + 0, + 0, + 25, + 23, + 7, + 0, + 0, + 0, + 0, + 0 + ], + [ + 0, + 28, + 888, + 0, + 2, + 0, + 0, + 0, + 0, + 5, + 239, + 0, + 0, + 0, + 5, + 0, + 33, + 2, + 0, + 0 + ], + [ + 0, + 8, + 0, + 0, + 66, + 0, + 28, + 4, + 10, + 0, + 0, + 6526, + 0, + 0, + 23, + 0, + 69, + 0, + 8, + 0 + ], + [ + 0, + 120, + 21, + 165, + 1, + 4, + 2, + 468, + 484, + 2880, + 0, + 127, + 1359, + 208, + 151, + 16, + 10, + 9, + 21, + 0 + ], + [ + 0, + 1, + 46, + 52, + 0, + 1, + 0, + 209, + 11, + 31, + 1, + 93, + 213, + 114, + 14, + 4, + 6, + 0, + 0, + 0 + ], + [ + 0, + 1023, + 18, + 37, + 0, + 2, + 9, + 52, + 462, + 0, + 0, + 62, + 5, + 0, + 1647, + 0, + 170, + 17, + 0, + 0 + ], + [ + 0, + 26, + 10, + 33, + 7, + 6, + 0, + 2, + 0, + 38, + 0, + 0, + 0, + 0, + 0, + 1786, + 1, + 0, + 0, + 0 + ], + [ + 0, + 54, + 0, + 6, + 0, + 0, + 0, + 40, + 880, + 0, + 0, + 7, + 0, + 0, + 34, + 0, + 1808, + 0, + 0, + 0 + ], + [ + 0, + 257, + 520, + 31, + 3, + 292, + 0, + 0, + 0, + 43, + 92, + 0, + 0, + 0, + 0, + 4, + 26, + 27, + 0, + 0 + ], + [ + 0, + 17, + 0, + 417, + 0, + 0, + 1, + 189, + 0, + 0, + 0, + 5, + 92, + 0, + 113, + 50, + 48, + 0, + 594, + 0 + ], + [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ] + ] + } + }, + { + "mode": "replace", + "alpha": 0.25, + "metrics": { + "miou": 0.5033289536425035, + "oa": 0.782992898533649, + "macro_f1": 0.6170834757758071, + "kappa": 0.7585346205823219, + "per_class_iou": [ + 0.7869957537154989, + 0.7619479929965631, + 0.8095206257939427, + 0.45619757688723206, + 0.9017114914425428, + 0.5248306997742663, + 0.6307806691449814, + 0.6747173689619733, + 0.3831012070566388, + 0.12672978878368535, + 0.8447625243981782, + 0.15451730931607094, + 0.09753694581280788, + 0.33543373240915775, + 0.8002767527675276, + 0.5162200282087447, + 0.008524590163934427, + 0.24611610793131644 + ], + "confusion_matrix": [ + [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + [ + 0, + 14827, + 108, + 48, + 33, + 8, + 41, + 2, + 559, + 0, + 3, + 206, + 75, + 2, + 575, + 16, + 270, + 4, + 3, + 0 + ], + [ + 0, + 134, + 11750, + 97, + 2, + 17, + 60, + 0, + 0, + 13, + 74, + 188, + 22, + 1, + 91, + 0, + 19, + 3, + 6, + 0 + ], + [ + 0, + 134, + 183, + 12108, + 9, + 8, + 2, + 221, + 0, + 25, + 1, + 0, + 3, + 2, + 96, + 173, + 38, + 0, + 865, + 0 + ], + [ + 0, + 33, + 853, + 57, + 979, + 38, + 0, + 0, + 0, + 0, + 61, + 0, + 8, + 8, + 0, + 0, + 5, + 2, + 3, + 0 + ], + [ + 0, + 96, + 81, + 26, + 5, + 5532, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 17, + 8, + 0, + 24, + 0, + 0 + ], + [ + 0, + 58, + 54, + 18, + 20, + 0, + 1395, + 72, + 381, + 0, + 0, + 143, + 0, + 0, + 87, + 0, + 6, + 174, + 0, + 0 + ], + [ + 0, + 8, + 0, + 18, + 0, + 0, + 8, + 4242, + 329, + 94, + 0, + 25, + 591, + 0, + 52, + 2, + 3, + 0, + 7, + 0 + ], + [ + 0, + 23, + 0, + 0, + 0, + 0, + 2, + 0, + 6565, + 0, + 0, + 7, + 0, + 0, + 0, + 0, + 1, + 0, + 0, + 0 + ], + [ + 0, + 3, + 22, + 15, + 0, + 0, + 4, + 13, + 0, + 2063, + 0, + 0, + 23, + 12, + 11, + 0, + 0, + 0, + 0, + 0 + ], + [ + 0, + 36, + 943, + 1, + 2, + 0, + 0, + 0, + 0, + 5, + 174, + 0, + 0, + 0, + 5, + 2, + 34, + 0, + 0, + 0 + ], + [ + 0, + 11, + 0, + 0, + 12, + 0, + 118, + 2, + 10, + 0, + 0, + 6492, + 0, + 0, + 24, + 0, + 68, + 0, + 5, + 0 + ], + [ + 0, + 143, + 20, + 207, + 0, + 3, + 2, + 589, + 479, + 2980, + 0, + 164, + 1098, + 194, + 108, + 8, + 13, + 7, + 31, + 0 + ], + [ + 0, + 2, + 41, + 82, + 0, + 0, + 0, + 201, + 32, + 23, + 0, + 72, + 226, + 99, + 13, + 0, + 5, + 0, + 0, + 0 + ], + [ + 0, + 988, + 17, + 35, + 0, + 0, + 13, + 40, + 517, + 0, + 0, + 111, + 0, + 0, + 1597, + 0, + 170, + 16, + 0, + 0 + ], + [ + 0, + 29, + 6, + 90, + 6, + 5, + 0, + 0, + 0, + 38, + 0, + 0, + 0, + 0, + 0, + 1735, + 0, + 0, + 0, + 0 + ], + [ + 0, + 54, + 0, + 7, + 0, + 0, + 0, + 27, + 819, + 0, + 0, + 14, + 0, + 0, + 78, + 0, + 1830, + 0, + 0, + 0 + ], + [ + 0, + 270, + 616, + 22, + 10, + 267, + 0, + 0, + 0, + 41, + 32, + 0, + 0, + 0, + 3, + 4, + 17, + 13, + 0, + 0 + ], + [ + 0, + 38, + 0, + 366, + 0, + 0, + 0, + 179, + 6, + 0, + 0, + 13, + 112, + 0, + 97, + 46, + 67, + 0, + 602, + 0 + ], + [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ] + ] + } + }, + { + "mode": "replace", + "alpha": 0.5, + "metrics": { + "miou": 0.4332495930777849, + "oa": 0.7428262336521674, + "macro_f1": 0.5448831552781153, + "kappa": 0.7134735235251789, + "per_class_iou": [ + 0.7769852591535901, + 0.6716800746181648, + 0.7433450201272562, + 0.13846153846153847, + 0.8932325886990802, + 0.33295063145809417, + 0.6267615865175069, + 0.6585783326621023, + 0.37458317895516857, + 0.017937219730941704, + 0.7374032237593603, + 0.08724641793162151, + 0.07386990077177508, + 0.3299914675767918, + 0.6087711680416847, + 0.47658688865764826, + 0.0, + 0.2501081782778018 + ], + "confusion_matrix": [ + [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + [ + 0, + 14706, + 99, + 59, + 22, + 5, + 41, + 1, + 738, + 0, + 0, + 210, + 60, + 2, + 513, + 11, + 312, + 1, + 0, + 0 + ], + [ + 0, + 187, + 11522, + 149, + 74, + 18, + 62, + 0, + 0, + 5, + 102, + 188, + 20, + 1, + 78, + 0, + 69, + 2, + 0, + 0 + ], + [ + 0, + 162, + 960, + 11449, + 6, + 2, + 2, + 211, + 2, + 23, + 4, + 0, + 3, + 0, + 51, + 234, + 75, + 0, + 684, + 0 + ], + [ + 0, + 65, + 1534, + 85, + 324, + 31, + 0, + 0, + 0, + 0, + 6, + 0, + 2, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + [ + 0, + 112, + 127, + 28, + 53, + 5438, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 0, + 14, + 9, + 4, + 3, + 0, + 0 + ], + [ + 0, + 53, + 34, + 43, + 62, + 1, + 1160, + 92, + 573, + 0, + 0, + 94, + 8, + 0, + 90, + 48, + 17, + 133, + 0, + 0 + ], + [ + 0, + 13, + 0, + 34, + 0, + 0, + 7, + 4314, + 294, + 36, + 0, + 70, + 552, + 0, + 27, + 23, + 5, + 0, + 4, + 0 + ], + [ + 0, + 40, + 0, + 0, + 0, + 0, + 5, + 4, + 6541, + 0, + 0, + 5, + 1, + 0, + 0, + 0, + 2, + 0, + 0, + 0 + ], + [ + 0, + 5, + 20, + 64, + 0, + 0, + 23, + 0, + 0, + 2022, + 0, + 0, + 13, + 0, + 19, + 0, + 0, + 0, + 0, + 0 + ], + [ + 0, + 78, + 1047, + 1, + 7, + 4, + 0, + 0, + 0, + 0, + 24, + 0, + 0, + 0, + 8, + 3, + 30, + 0, + 0, + 0 + ], + [ + 0, + 11, + 0, + 0, + 0, + 0, + 804, + 3, + 20, + 0, + 0, + 5810, + 0, + 0, + 22, + 0, + 69, + 0, + 3, + 0 + ], + [ + 0, + 268, + 77, + 255, + 4, + 29, + 0, + 799, + 331, + 3048, + 14, + 239, + 615, + 108, + 55, + 48, + 62, + 0, + 94, + 0 + ], + [ + 0, + 6, + 30, + 123, + 0, + 0, + 0, + 167, + 109, + 19, + 0, + 15, + 227, + 67, + 28, + 0, + 5, + 0, + 0, + 0 + ], + [ + 0, + 692, + 17, + 27, + 0, + 0, + 132, + 35, + 523, + 1, + 0, + 254, + 0, + 0, + 1547, + 0, + 266, + 10, + 0, + 0 + ], + [ + 0, + 53, + 4, + 384, + 3, + 1, + 0, + 0, + 0, + 62, + 0, + 0, + 0, + 0, + 0, + 1402, + 0, + 0, + 0, + 0 + ], + [ + 0, + 52, + 0, + 11, + 0, + 0, + 0, + 18, + 696, + 0, + 0, + 34, + 1, + 0, + 185, + 0, + 1832, + 0, + 0, + 0 + ], + [ + 0, + 219, + 726, + 8, + 62, + 208, + 0, + 0, + 0, + 38, + 10, + 0, + 0, + 0, + 23, + 1, + 0, + 0, + 0, + 0 + ], + [ + 0, + 131, + 2, + 263, + 0, + 0, + 0, + 174, + 48, + 0, + 0, + 27, + 116, + 0, + 71, + 17, + 99, + 0, + 578, + 0 + ], + [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ] + ] + } + } + ], + "reference_val_miou": 0.5256398451814701, + "delta_val_pp": 0.0, + "patch_bootstrap_delta_interval_pp": [ + 0.0, + 0.0 + ], + "bootstrap_caveat": "descriptive, after validation selection; not an independent significance test", + "selection_split": "validation", + "test_used_for_selection": false + }, + "test_policy": "exploratory all-variants sweep explicitly requested by user; no test retuning", + "patches": 482 +} \ No newline at end of file diff --git a/ablations/10_plateau_breakthrough/workspace/convnext_research_20261010/32X32_temporal_cnv2_k15_seed3407/best.tar b/ablations/10_plateau_breakthrough/workspace/convnext_research_20261010/32X32_temporal_cnv2_k15_seed3407/best.tar new file mode 100644 index 0000000000000000000000000000000000000000..27a458f7f92f91855778930c3367316f995a4b99 --- /dev/null +++ b/ablations/10_plateau_breakthrough/workspace/convnext_research_20261010/32X32_temporal_cnv2_k15_seed3407/best.tar @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:20f8cc8906101cbd7ed4fcc5d82b13cec69383b1d7b81141d78319e2190c71f8 +size 610294 diff --git a/ablations/10_plateau_breakthrough/workspace/convnext_research_20261010/32X32_temporal_cnv2_k15_seed3407/config.json b/ablations/10_plateau_breakthrough/workspace/convnext_research_20261010/32X32_temporal_cnv2_k15_seed3407/config.json new file mode 100644 index 0000000000000000000000000000000000000000..7073006209732555ed063d275152d52f03eda4ca --- /dev/null +++ b/ablations/10_plateau_breakthrough/workspace/convnext_research_20261010/32X32_temporal_cnv2_k15_seed3407/config.json @@ -0,0 +1,13 @@ +{ + "kind": "temporal_cnv2_k15", + "seed": 3407, + "epochs": 100, + "parameters": 149138, + "lr": 0.001, + "wd": 0.01, + "warmup_epochs": 3, + "clip": 1.0, + "label_smoothing": 0.05, + "pretrained": false, + "architecture_scope": "custom PASTIS adaptation, not official ImageNet model reproduction" +} \ No newline at end of file diff --git a/ablations/10_plateau_breakthrough/workspace/convnext_research_20261010/32X32_temporal_cnv2_k15_seed3407/history.json b/ablations/10_plateau_breakthrough/workspace/convnext_research_20261010/32X32_temporal_cnv2_k15_seed3407/history.json new file mode 100644 index 0000000000000000000000000000000000000000..5d347100a8303dc0514e2c627a545ef3577182f4 --- /dev/null +++ b/ablations/10_plateau_breakthrough/workspace/convnext_research_20261010/32X32_temporal_cnv2_k15_seed3407/history.json @@ -0,0 +1,802 @@ +[ + { + "epoch": 1, + "loss": 2.8153660077797737, + "val_miou": 0.02258522129318621, + "best_val_miou": 0.02258522129318621, + "seconds": 14.904657275881618, + "peak_allocated_gb": 2.380299264 + }, + { + "epoch": 2, + "loss": 2.483669053567083, + "val_miou": 0.03711366984397993, + "best_val_miou": 0.03711366984397993, + "seconds": 13.440215015783906, + "peak_allocated_gb": 2.380299264 + }, + { + "epoch": 3, + "loss": 2.3789838489733244, + "val_miou": 0.0702170126827178, + "best_val_miou": 0.0702170126827178, + "seconds": 13.354794779326767, + "peak_allocated_gb": 2.380299264 + }, + { + "epoch": 4, + "loss": 2.2061137572715155, + "val_miou": 0.0898530341297285, + "best_val_miou": 0.0898530341297285, + "seconds": 13.121917462907732, + "peak_allocated_gb": 2.380299264 + }, + { + "epoch": 5, + "loss": 2.132760986685753, + "val_miou": 0.13522677751435344, + "best_val_miou": 0.13522677751435344, + "seconds": 13.523022273089737, + "peak_allocated_gb": 2.380299264 + }, + { + "epoch": 6, + "loss": 1.843221396992081, + "val_miou": 0.13795841917788743, + "best_val_miou": 0.13795841917788743, + "seconds": 13.449820163659751, + "peak_allocated_gb": 2.380299264 + }, + { + "epoch": 7, + "loss": 1.754245809818569, + "val_miou": 0.2373752604636958, + "best_val_miou": 0.2373752604636958, + "seconds": 13.672347519081086, + "peak_allocated_gb": 2.380299264 + }, + { + "epoch": 8, + "loss": 1.5612426419791423, + "val_miou": 0.25881146941570843, + "best_val_miou": 0.25881146941570843, + "seconds": 13.394962299149483, + "peak_allocated_gb": 2.380299264 + }, + { + "epoch": 9, + "loss": 1.4783280742795843, + "val_miou": 0.17707967343533018, + "best_val_miou": 0.25881146941570843, + "seconds": 13.26864765305072, + "peak_allocated_gb": 2.380299264 + }, + { + "epoch": 10, + "loss": 1.4195182778333362, + "val_miou": 0.2718065390584175, + "best_val_miou": 0.2718065390584175, + "seconds": 13.22995234420523, + "peak_allocated_gb": 2.380299264 + }, + { + "epoch": 11, + "loss": 1.2379730171278904, + "val_miou": 0.2376600039104961, + "best_val_miou": 0.2718065390584175, + "seconds": 13.518364326562732, + "peak_allocated_gb": 2.380299264 + }, + { + "epoch": 12, + "loss": 1.3735458246971433, + "val_miou": 0.27091193654467616, + "best_val_miou": 0.2718065390584175, + "seconds": 13.401493387296796, + "peak_allocated_gb": 2.380299264 + }, + { + "epoch": 13, + "loss": 1.1846577678071826, + "val_miou": 0.2691136846827493, + "best_val_miou": 0.2718065390584175, + "seconds": 13.72201768308878, + "peak_allocated_gb": 2.380299264 + }, + { + "epoch": 14, + "loss": 1.1195850787978423, + "val_miou": 0.2911678039735388, + "best_val_miou": 0.2911678039735388, + "seconds": 13.768722329754382, + "peak_allocated_gb": 2.380299264 + }, + { + "epoch": 15, + "loss": 1.0043240789520114, + "val_miou": 0.32457155319737535, + "best_val_miou": 0.32457155319737535, + "seconds": 13.54806619277224, + "peak_allocated_gb": 2.380299264 + }, + { + "epoch": 16, + "loss": 0.9554395001185568, + "val_miou": 0.34113119015652854, + "best_val_miou": 0.34113119015652854, + "seconds": 13.592889732681215, + "peak_allocated_gb": 2.380299264 + }, + { + "epoch": 17, + "loss": 0.9589369332319811, + "val_miou": 0.3478037993378089, + "best_val_miou": 0.3478037993378089, + "seconds": 13.435715411789715, + "peak_allocated_gb": 2.380299264 + }, + { + "epoch": 18, + "loss": 0.9091115276280203, + "val_miou": 0.27443236698848206, + "best_val_miou": 0.3478037993378089, + "seconds": 13.463145186658949, + "peak_allocated_gb": 2.380299264 + }, + { + "epoch": 19, + "loss": 0.9122227187219419, + "val_miou": 0.32397407702675945, + "best_val_miou": 0.3478037993378089, + "seconds": 13.571171347051859, + "peak_allocated_gb": 2.380299264 + }, + { + "epoch": 20, + "loss": 0.8159581454176652, + "val_miou": 0.2997674726663574, + "best_val_miou": 0.3478037993378089, + "seconds": 13.682745140977204, + "peak_allocated_gb": 2.380299264 + }, + { + "epoch": 21, + "loss": 0.8918833246356562, + "val_miou": 0.31426130901505656, + "best_val_miou": 0.3478037993378089, + "seconds": 13.42570458073169, + "peak_allocated_gb": 2.380299264 + }, + { + "epoch": 22, + "loss": 0.7663469683182867, + "val_miou": 0.32062376059944503, + "best_val_miou": 0.3478037993378089, + "seconds": 13.40329392394051, + "peak_allocated_gb": 2.380299264 + }, + { + "epoch": 23, + "loss": 0.7591793811634967, + "val_miou": 0.3251628596693987, + "best_val_miou": 0.3478037993378089, + "seconds": 13.266605283133686, + "peak_allocated_gb": 2.380299264 + }, + { + "epoch": 24, + "loss": 0.6999928041508323, + "val_miou": 0.3464909675825952, + "best_val_miou": 0.3478037993378089, + "seconds": 13.784867338836193, + "peak_allocated_gb": 2.380299264 + }, + { + "epoch": 25, + "loss": 0.6837734917276784, + "val_miou": 0.355281891070961, + "best_val_miou": 0.355281891070961, + "seconds": 13.737471902742982, + "peak_allocated_gb": 2.380299264 + }, + { + "epoch": 26, + "loss": 0.7041824840401348, + "val_miou": 0.3385647593198617, + "best_val_miou": 0.355281891070961, + "seconds": 13.421103707049042, + "peak_allocated_gb": 2.380299264 + }, + { + "epoch": 27, + "loss": 0.6147390235411493, + "val_miou": 0.3557103363021264, + "best_val_miou": 0.3557103363021264, + "seconds": 13.460014183074236, + "peak_allocated_gb": 2.380299264 + }, + { + "epoch": 28, + "loss": 0.5957952922112063, + "val_miou": 0.3636887214178109, + "best_val_miou": 0.3636887214178109, + "seconds": 13.808253148104995, + "peak_allocated_gb": 2.380299264 + }, + { + "epoch": 29, + "loss": 0.6143260151147842, + "val_miou": 0.3554105494813238, + "best_val_miou": 0.3636887214178109, + "seconds": 13.896796493791044, + "peak_allocated_gb": 2.380299264 + }, + { + "epoch": 30, + "loss": 0.63715340040232, + "val_miou": 0.33244603943269424, + "best_val_miou": 0.3636887214178109, + "seconds": 13.496294331271201, + "peak_allocated_gb": 2.380299264 + }, + { + "epoch": 31, + "loss": 0.5910815306399998, + "val_miou": 0.3364069306546021, + "best_val_miou": 0.3636887214178109, + "seconds": 13.54855339601636, + "peak_allocated_gb": 2.380299264 + }, + { + "epoch": 32, + "loss": 0.5894613042473793, + "val_miou": 0.3332941545176964, + "best_val_miou": 0.3636887214178109, + "seconds": 13.738263197708875, + "peak_allocated_gb": 2.380299264 + }, + { + "epoch": 33, + "loss": 0.5942099917876092, + "val_miou": 0.3097462087128109, + "best_val_miou": 0.3636887214178109, + "seconds": 13.480893058236688, + "peak_allocated_gb": 2.380299264 + }, + { + "epoch": 34, + "loss": 0.537210248018566, + "val_miou": 0.3504029399308695, + "best_val_miou": 0.3636887214178109, + "seconds": 13.680055906996131, + "peak_allocated_gb": 2.380299264 + }, + { + "epoch": 35, + "loss": 0.5320557399015677, + "val_miou": 0.3685214435968305, + "best_val_miou": 0.3685214435968305, + "seconds": 13.394304508809, + "peak_allocated_gb": 2.380299264 + }, + { + "epoch": 36, + "loss": 0.504530140443852, + "val_miou": 0.3321547460455028, + "best_val_miou": 0.3685214435968305, + "seconds": 13.807785930112004, + "peak_allocated_gb": 2.380299264 + }, + { + "epoch": 37, + "loss": 0.5117940675271185, + "val_miou": 0.35503995129810845, + "best_val_miou": 0.3685214435968305, + "seconds": 13.802551227156073, + "peak_allocated_gb": 2.380299264 + }, + { + "epoch": 38, + "loss": 0.49285261568270233, + "val_miou": 0.38772576227431155, + "best_val_miou": 0.38772576227431155, + "seconds": 13.76472912589088, + "peak_allocated_gb": 2.380299264 + }, + { + "epoch": 39, + "loss": 0.5309431247021023, + "val_miou": 0.3904789990905776, + "best_val_miou": 0.3904789990905776, + "seconds": 13.490491030272096, + "peak_allocated_gb": 2.380299264 + }, + { + "epoch": 40, + "loss": 0.4937930707084505, + "val_miou": 0.36337356866025305, + "best_val_miou": 0.3904789990905776, + "seconds": 13.699826906900853, + "peak_allocated_gb": 2.380299264 + }, + { + "epoch": 41, + "loss": 0.4785242523801954, + "val_miou": 0.37150433722704457, + "best_val_miou": 0.3904789990905776, + "seconds": 13.569665648043156, + "peak_allocated_gb": 2.380299264 + }, + { + "epoch": 42, + "loss": 0.48850055940841375, + "val_miou": 0.36611515436965447, + "best_val_miou": 0.3904789990905776, + "seconds": 13.46619728486985, + "peak_allocated_gb": 2.380299264 + }, + { + "epoch": 43, + "loss": 0.4895680115411156, + "val_miou": 0.3571103078902586, + "best_val_miou": 0.3904789990905776, + "seconds": 13.455441081896424, + "peak_allocated_gb": 2.380299264 + }, + { + "epoch": 44, + "loss": 0.49032218009233475, + "val_miou": 0.38684605271037786, + "best_val_miou": 0.3904789990905776, + "seconds": 13.295657174661756, + "peak_allocated_gb": 2.380299264 + }, + { + "epoch": 45, + "loss": 0.4704850621913609, + "val_miou": 0.35839675687195277, + "best_val_miou": 0.3904789990905776, + "seconds": 13.614564565010369, + "peak_allocated_gb": 2.380299264 + }, + { + "epoch": 46, + "loss": 0.4760184864464559, + "val_miou": 0.371228982071415, + "best_val_miou": 0.3904789990905776, + "seconds": 13.199948779772967, + "peak_allocated_gb": 2.380299264 + }, + { + "epoch": 47, + "loss": 0.44469925839650004, + "val_miou": 0.3567365328779044, + "best_val_miou": 0.3904789990905776, + "seconds": 13.426290418021381, + "peak_allocated_gb": 2.380299264 + }, + { + "epoch": 48, + "loss": 0.45134695854626206, + "val_miou": 0.33764877879576666, + "best_val_miou": 0.3904789990905776, + "seconds": 13.041311986744404, + "peak_allocated_gb": 2.380299264 + }, + { + "epoch": 49, + "loss": 0.4474145679881698, + "val_miou": 0.37232050829954827, + "best_val_miou": 0.3904789990905776, + "seconds": 13.647323960904032, + "peak_allocated_gb": 2.380299264 + }, + { + "epoch": 50, + "loss": 0.41787440329790115, + "val_miou": 0.35020018866166885, + "best_val_miou": 0.3904789990905776, + "seconds": 13.509458124171942, + "peak_allocated_gb": 2.380299264 + }, + { + "epoch": 51, + "loss": 0.45511565828009654, + "val_miou": 0.38212668694696794, + "best_val_miou": 0.3904789990905776, + "seconds": 13.721136487089097, + "peak_allocated_gb": 2.380299264 + }, + { + "epoch": 52, + "loss": 0.43188565263622686, + "val_miou": 0.3791734349540457, + "best_val_miou": 0.3904789990905776, + "seconds": 13.55337383178994, + "peak_allocated_gb": 2.380299264 + }, + { + "epoch": 53, + "loss": 0.42459109190263244, + "val_miou": 0.36354234650448125, + "best_val_miou": 0.3904789990905776, + "seconds": 13.869508224073797, + "peak_allocated_gb": 2.380299264 + }, + { + "epoch": 54, + "loss": 0.43840744032671575, + "val_miou": 0.373501582895148, + "best_val_miou": 0.3904789990905776, + "seconds": 13.082489009015262, + "peak_allocated_gb": 2.380299264 + }, + { + "epoch": 55, + "loss": 0.45804720254320846, + "val_miou": 0.361828981756612, + "best_val_miou": 0.3904789990905776, + "seconds": 13.237542775925249, + "peak_allocated_gb": 2.380299264 + }, + { + "epoch": 56, + "loss": 0.40997366685616343, + "val_miou": 0.3627262333577352, + "best_val_miou": 0.3904789990905776, + "seconds": 13.458268593996763, + "peak_allocated_gb": 2.380299264 + }, + { + "epoch": 57, + "loss": 0.4213717854336688, + "val_miou": 0.3721418660714853, + "best_val_miou": 0.3904789990905776, + "seconds": 13.453416449017823, + "peak_allocated_gb": 2.380299264 + }, + { + "epoch": 58, + "loss": 0.4321957418793126, + "val_miou": 0.35570328656487793, + "best_val_miou": 0.3904789990905776, + "seconds": 13.488824413158, + "peak_allocated_gb": 2.380299264 + }, + { + "epoch": 59, + "loss": 0.4161441749648044, + "val_miou": 0.38901076832492265, + "best_val_miou": 0.3904789990905776, + "seconds": 13.731253016274422, + "peak_allocated_gb": 2.380299264 + }, + { + "epoch": 60, + "loss": 0.4116339479622088, + "val_miou": 0.3669369274361097, + "best_val_miou": 0.3904789990905776, + "seconds": 13.633178167976439, + "peak_allocated_gb": 2.380299264 + }, + { + "epoch": 61, + "loss": 0.42189853599196986, + "val_miou": 0.36931324188933773, + "best_val_miou": 0.3904789990905776, + "seconds": 13.263497231062502, + "peak_allocated_gb": 2.380299264 + }, + { + "epoch": 62, + "loss": 0.39733493563375977, + "val_miou": 0.37813676362668663, + "best_val_miou": 0.3904789990905776, + "seconds": 13.410797784104943, + "peak_allocated_gb": 2.380299264 + }, + { + "epoch": 63, + "loss": 0.3981922484542194, + "val_miou": 0.377168287996325, + "best_val_miou": 0.3904789990905776, + "seconds": 13.692010988947004, + "peak_allocated_gb": 2.380299264 + }, + { + "epoch": 64, + "loss": 0.3889436537497922, + "val_miou": 0.37298377749190215, + "best_val_miou": 0.3904789990905776, + "seconds": 13.712437664158642, + "peak_allocated_gb": 2.380299264 + }, + { + "epoch": 65, + "loss": 0.39861742171802017, + "val_miou": 0.36828312217926495, + "best_val_miou": 0.3904789990905776, + "seconds": 13.56138227507472, + "peak_allocated_gb": 2.380299264 + }, + { + "epoch": 66, + "loss": 0.4068991530098413, + "val_miou": 0.3746344726368832, + "best_val_miou": 0.3904789990905776, + "seconds": 13.324922156054527, + "peak_allocated_gb": 2.380299264 + }, + { + "epoch": 67, + "loss": 0.39717778328217956, + "val_miou": 0.3807232749175299, + "best_val_miou": 0.3904789990905776, + "seconds": 13.54477806808427, + "peak_allocated_gb": 2.380299264 + }, + { + "epoch": 68, + "loss": 0.39698566966935206, + "val_miou": 0.38139357687347364, + "best_val_miou": 0.3904789990905776, + "seconds": 13.517519264947623, + "peak_allocated_gb": 2.380299264 + }, + { + "epoch": 69, + "loss": 0.3937823490092629, + "val_miou": 0.3677975456270326, + "best_val_miou": 0.3904789990905776, + "seconds": 13.700494152028114, + "peak_allocated_gb": 2.380299264 + }, + { + "epoch": 70, + "loss": 0.39668749468891246, + "val_miou": 0.3781573691349325, + "best_val_miou": 0.3904789990905776, + "seconds": 13.231530914083123, + "peak_allocated_gb": 2.380299264 + }, + { + "epoch": 71, + "loss": 0.38498816090194804, + "val_miou": 0.37586762570143684, + "best_val_miou": 0.3904789990905776, + "seconds": 13.436808289960027, + "peak_allocated_gb": 2.380299264 + }, + { + "epoch": 72, + "loss": 0.3998635540667333, + "val_miou": 0.38812421033276023, + "best_val_miou": 0.3904789990905776, + "seconds": 13.471585048828274, + "peak_allocated_gb": 2.380299264 + }, + { + "epoch": 73, + "loss": 0.37507739074920354, + "val_miou": 0.38925616435672356, + "best_val_miou": 0.3904789990905776, + "seconds": 13.69690961111337, + "peak_allocated_gb": 2.380299264 + }, + { + "epoch": 74, + "loss": 0.3839217291066521, + "val_miou": 0.3847998418938976, + "best_val_miou": 0.3904789990905776, + "seconds": 13.739520943723619, + "peak_allocated_gb": 2.380299264 + }, + { + "epoch": 75, + "loss": 0.39123163842841197, + "val_miou": 0.38126704899836, + "best_val_miou": 0.3904789990905776, + "seconds": 13.426217093598098, + "peak_allocated_gb": 2.380299264 + }, + { + "epoch": 76, + "loss": 0.4041018427202576, + "val_miou": 0.3748426498323964, + "best_val_miou": 0.3904789990905776, + "seconds": 13.48181535396725, + "peak_allocated_gb": 2.380299264 + }, + { + "epoch": 77, + "loss": 0.4165370381976429, + "val_miou": 0.3875007719778921, + "best_val_miou": 0.3904789990905776, + "seconds": 13.425363724119961, + "peak_allocated_gb": 2.380299264 + }, + { + "epoch": 78, + "loss": 0.3971339538693428, + "val_miou": 0.3788202357098747, + "best_val_miou": 0.3904789990905776, + "seconds": 13.583844714332372, + "peak_allocated_gb": 2.380299264 + }, + { + "epoch": 79, + "loss": 0.37782529819952815, + "val_miou": 0.3931897486511736, + "best_val_miou": 0.3931897486511736, + "seconds": 13.683531185146421, + "peak_allocated_gb": 2.380299264 + }, + { + "epoch": 80, + "loss": 0.40397434328731735, + "val_miou": 0.38566244733819266, + "best_val_miou": 0.3931897486511736, + "seconds": 13.49851506203413, + "peak_allocated_gb": 2.380299264 + }, + { + "epoch": 81, + "loss": 0.3836075361622007, + "val_miou": 0.3823281255646319, + "best_val_miou": 0.3931897486511736, + "seconds": 13.796386412344873, + "peak_allocated_gb": 2.380299264 + }, + { + "epoch": 82, + "loss": 0.38019135084591416, + "val_miou": 0.3850056346227364, + "best_val_miou": 0.3931897486511736, + "seconds": 13.565624788869172, + "peak_allocated_gb": 2.380299264 + }, + { + "epoch": 83, + "loss": 0.3739825506743632, + "val_miou": 0.3844031282658023, + "best_val_miou": 0.3931897486511736, + "seconds": 13.472486826125532, + "peak_allocated_gb": 2.380299264 + }, + { + "epoch": 84, + "loss": 0.3815853905520941, + "val_miou": 0.383210547056508, + "best_val_miou": 0.3931897486511736, + "seconds": 13.385938701219857, + "peak_allocated_gb": 2.380299264 + }, + { + "epoch": 85, + "loss": 0.3990430914257702, + "val_miou": 0.3823948073086344, + "best_val_miou": 0.3931897486511736, + "seconds": 13.313650181982666, + "peak_allocated_gb": 2.380299264 + }, + { + "epoch": 86, + "loss": 0.39540932641217585, + "val_miou": 0.38725828191017, + "best_val_miou": 0.3931897486511736, + "seconds": 13.662261566147208, + "peak_allocated_gb": 2.380299264 + }, + { + "epoch": 87, + "loss": 0.38467154259744446, + "val_miou": 0.3858316052856192, + "best_val_miou": 0.3931897486511736, + "seconds": 13.503503737971187, + "peak_allocated_gb": 2.380299264 + }, + { + "epoch": 88, + "loss": 0.37987179622838374, + "val_miou": 0.38552097338965213, + "best_val_miou": 0.3931897486511736, + "seconds": 13.079137166030705, + "peak_allocated_gb": 2.380299264 + }, + { + "epoch": 89, + "loss": 0.3930589486109583, + "val_miou": 0.38746097147777125, + "best_val_miou": 0.3931897486511736, + "seconds": 13.28481767931953, + "peak_allocated_gb": 2.380299264 + }, + { + "epoch": 90, + "loss": 0.3799683083044855, + "val_miou": 0.3842392375588758, + "best_val_miou": 0.3931897486511736, + "seconds": 13.37459956901148, + "peak_allocated_gb": 2.380299264 + }, + { + "epoch": 91, + "loss": 0.3764655452809836, + "val_miou": 0.38725850973236886, + "best_val_miou": 0.3931897486511736, + "seconds": 13.431813031900674, + "peak_allocated_gb": 2.380299264 + }, + { + "epoch": 92, + "loss": 0.3848059577377219, + "val_miou": 0.38704604852032487, + "best_val_miou": 0.3931897486511736, + "seconds": 13.245288117788732, + "peak_allocated_gb": 2.380299264 + }, + { + "epoch": 93, + "loss": 0.3845237724875149, + "val_miou": 0.3883717228378629, + "best_val_miou": 0.3931897486511736, + "seconds": 13.039657267741859, + "peak_allocated_gb": 2.380299264 + }, + { + "epoch": 94, + "loss": 0.3885929827627383, + "val_miou": 0.39076033942341015, + "best_val_miou": 0.3931897486511736, + "seconds": 13.532367954961956, + "peak_allocated_gb": 2.380299264 + }, + { + "epoch": 95, + "loss": 0.3903474360704422, + "val_miou": 0.3892590316062968, + "best_val_miou": 0.3931897486511736, + "seconds": 13.379086460918188, + "peak_allocated_gb": 2.380299264 + }, + { + "epoch": 96, + "loss": 0.3759121353688993, + "val_miou": 0.3904534534394684, + "best_val_miou": 0.3931897486511736, + "seconds": 13.389318344183266, + "peak_allocated_gb": 2.380299264 + }, + { + "epoch": 97, + "loss": 0.3701847772064962, + "val_miou": 0.3904292847608785, + "best_val_miou": 0.3931897486511736, + "seconds": 13.476439537014812, + "peak_allocated_gb": 2.380299264 + }, + { + "epoch": 98, + "loss": 0.36717589277970164, + "val_miou": 0.3913449735773509, + "best_val_miou": 0.3931897486511736, + "seconds": 13.505879892967641, + "peak_allocated_gb": 2.380299264 + }, + { + "epoch": 99, + "loss": 0.36510542348811503, + "val_miou": 0.3904532880780383, + "best_val_miou": 0.3931897486511736, + "seconds": 13.800404052715749, + "peak_allocated_gb": 2.380299264 + }, + { + "epoch": 100, + "loss": 0.3734886269820364, + "val_miou": 0.3901915827608437, + "best_val_miou": 0.3931897486511736, + "seconds": 13.527518101967871, + "peak_allocated_gb": 2.380299264 + } +] \ No newline at end of file diff --git a/ablations/10_plateau_breakthrough/workspace/convnext_research_20261010/32X32_temporal_cnv2_k15_seed3407/latest.tar b/ablations/10_plateau_breakthrough/workspace/convnext_research_20261010/32X32_temporal_cnv2_k15_seed3407/latest.tar new file mode 100644 index 0000000000000000000000000000000000000000..5fc5f25356c879138b966eff17c46a3df501f449 --- /dev/null +++ b/ablations/10_plateau_breakthrough/workspace/convnext_research_20261010/32X32_temporal_cnv2_k15_seed3407/latest.tar @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:6a437545955e82d8c6e0117949e0a2523eae2be3f42cc466993cd3ad733d7948 +size 1860864 diff --git a/ablations/10_plateau_breakthrough/workspace/convnext_research_20261010/32X32_temporal_cnv2_k15_seed3407/progress.json b/ablations/10_plateau_breakthrough/workspace/convnext_research_20261010/32X32_temporal_cnv2_k15_seed3407/progress.json new file mode 100644 index 0000000000000000000000000000000000000000..5a4de3b905052eca9d1db2ab4b706e2a20e0e3ab --- /dev/null +++ b/ablations/10_plateau_breakthrough/workspace/convnext_research_20261010/32X32_temporal_cnv2_k15_seed3407/progress.json @@ -0,0 +1,8 @@ +{ + "epoch": 100, + "loss": 0.3734886269820364, + "val_miou": 0.3901915827608437, + "best_val_miou": 0.3931897486511736, + "seconds": 13.527518101967871, + "peak_allocated_gb": 2.380299264 +} \ No newline at end of file diff --git a/ablations/10_plateau_breakthrough/workspace/convnext_research_20261010/32X32_temporal_cnv2_k15_seed3407/selection.json b/ablations/10_plateau_breakthrough/workspace/convnext_research_20261010/32X32_temporal_cnv2_k15_seed3407/selection.json new file mode 100644 index 0000000000000000000000000000000000000000..ddff0c37742e3a6a596707c1ed9acffd4a338321 --- /dev/null +++ b/ablations/10_plateau_breakthrough/workspace/convnext_research_20261010/32X32_temporal_cnv2_k15_seed3407/selection.json @@ -0,0 +1,4260 @@ +{ + "kind": "temporal_cnv2_k15", + "seed": 3407, + "checkpoint_epoch": 79, + "standalone": { + "miou": 0.3931897486511736, + "oa": 0.7162733903878493, + "macro_f1": 0.5039312548702903, + "kappa": 0.6838173350265685, + "per_class_iou": [ + 0.7241650500707807, + 0.6381049529638445, + 0.7096327513546057, + 0.2152230971128609, + 0.8550588235294118, + 0.38052095130237823, + 0.5012943308309604, + 0.7191110133127957, + 0.39487179487179486, + 0.0, + 0.6215610606249222, + 0.03739967897271268, + 0.001183431952662722, + 0.322484577749415, + 0.4317226890756303, + 0.40367393800229623, + 0.0, + 0.12140733399405351 + ], + "confusion_matrix": [ + [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + [ + 0, + 13812, + 441, + 335, + 6, + 57, + 321, + 14, + 318, + 1, + 1, + 233, + 15, + 0, + 794, + 76, + 335, + 8, + 13, + 0 + ], + [ + 0, + 417, + 11260, + 114, + 210, + 52, + 149, + 3, + 4, + 8, + 10, + 227, + 8, + 0, + 3, + 1, + 10, + 1, + 0, + 0 + ], + [ + 0, + 144, + 303, + 11787, + 1, + 3, + 8, + 596, + 6, + 3, + 0, + 1, + 16, + 0, + 30, + 573, + 127, + 0, + 270, + 0 + ], + [ + 0, + 58, + 1403, + 47, + 492, + 38, + 0, + 0, + 0, + 0, + 1, + 1, + 7, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + [ + 0, + 102, + 141, + 75, + 0, + 5451, + 0, + 0, + 0, + 0, + 0, + 18, + 0, + 0, + 0, + 0, + 2, + 0, + 0, + 0 + ], + [ + 0, + 87, + 106, + 4, + 11, + 148, + 1680, + 194, + 25, + 0, + 4, + 136, + 0, + 0, + 5, + 0, + 8, + 0, + 0, + 0 + ], + [ + 0, + 9, + 322, + 230, + 0, + 0, + 18, + 3873, + 316, + 0, + 0, + 14, + 28, + 0, + 1, + 4, + 563, + 0, + 1, + 0 + ], + [ + 0, + 18, + 2, + 0, + 0, + 0, + 3, + 5, + 6536, + 0, + 0, + 27, + 0, + 0, + 7, + 0, + 0, + 0, + 0, + 0 + ], + [ + 0, + 19, + 13, + 76, + 0, + 30, + 0, + 0, + 0, + 2002, + 0, + 0, + 1, + 0, + 0, + 25, + 0, + 0, + 0, + 0 + ], + [ + 0, + 90, + 1087, + 21, + 0, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 3, + 0, + 0, + 0 + ], + [ + 0, + 29, + 42, + 0, + 0, + 0, + 1333, + 6, + 199, + 0, + 0, + 4993, + 0, + 49, + 7, + 0, + 84, + 0, + 0, + 0 + ], + [ + 0, + 253, + 222, + 632, + 0, + 52, + 0, + 681, + 386, + 2864, + 0, + 275, + 233, + 0, + 45, + 253, + 5, + 0, + 145, + 0 + ], + [ + 0, + 12, + 129, + 211, + 10, + 0, + 1, + 25, + 87, + 26, + 0, + 7, + 103, + 1, + 163, + 12, + 9, + 0, + 0, + 0 + ], + [ + 0, + 843, + 23, + 18, + 1, + 0, + 172, + 89, + 350, + 0, + 0, + 207, + 0, + 0, + 1516, + 0, + 281, + 0, + 4, + 0 + ], + [ + 0, + 70, + 1, + 470, + 0, + 87, + 0, + 0, + 0, + 2, + 0, + 0, + 0, + 0, + 2, + 1233, + 10, + 0, + 34, + 0 + ], + [ + 0, + 28, + 1, + 31, + 0, + 0, + 2, + 67, + 723, + 0, + 0, + 126, + 0, + 0, + 68, + 0, + 1758, + 0, + 25, + 0 + ], + [ + 0, + 101, + 933, + 143, + 0, + 118, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + [ + 0, + 13, + 0, + 335, + 0, + 0, + 0, + 667, + 77, + 0, + 0, + 19, + 6, + 0, + 72, + 3, + 89, + 0, + 245, + 0 + ], + [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ] + ] + }, + "chosen": { + "mode": "add", + "alpha": 0.1, + "metrics": { + "miou": 0.5259525387134086, + "oa": 0.7969708979124045, + "macro_f1": 0.6390991114711666, + "kappa": 0.7740240995256192, + "per_class_iou": [ + 0.7918943292133044, + 0.7796137766275134, + 0.8439109208854411, + 0.503158844765343, + 0.8964626070101761, + 0.6240601503759399, + 0.6614850588590402, + 0.6899053627760252, + 0.3884945834889802, + 0.1364329268292683, + 0.8610781600105444, + 0.1527777777777778, + 0.1535393818544367, + 0.3614328614328614, + 0.8037087290818634, + 0.507803790412486, + 0.006532066508313539, + 0.3048543689320388 + ], + "confusion_matrix": [ + [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + [ + 0, + 14928, + 103, + 52, + 4, + 11, + 22, + 0, + 476, + 0, + 3, + 205, + 70, + 2, + 589, + 20, + 286, + 4, + 5, + 0 + ], + [ + 0, + 185, + 11748, + 88, + 26, + 17, + 58, + 3, + 0, + 19, + 20, + 186, + 12, + 1, + 97, + 0, + 8, + 1, + 8, + 0 + ], + [ + 0, + 154, + 137, + 12619, + 9, + 9, + 2, + 227, + 0, + 29, + 0, + 0, + 2, + 5, + 61, + 145, + 34, + 10, + 425, + 0 + ], + [ + 0, + 22, + 635, + 27, + 1115, + 51, + 0, + 0, + 0, + 0, + 67, + 0, + 19, + 9, + 0, + 0, + 5, + 94, + 3, + 0 + ], + [ + 0, + 86, + 11, + 25, + 0, + 5550, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 19, + 7, + 0, + 91, + 0, + 0 + ], + [ + 0, + 86, + 67, + 4, + 5, + 0, + 1577, + 87, + 198, + 0, + 0, + 134, + 0, + 0, + 72, + 0, + 4, + 174, + 0, + 0 + ], + [ + 0, + 7, + 0, + 20, + 0, + 0, + 13, + 4383, + 415, + 54, + 0, + 6, + 447, + 0, + 27, + 1, + 4, + 0, + 2, + 0 + ], + [ + 0, + 28, + 0, + 0, + 0, + 0, + 0, + 0, + 6561, + 0, + 0, + 9, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + [ + 0, + 5, + 20, + 7, + 0, + 0, + 0, + 22, + 0, + 2080, + 0, + 0, + 17, + 10, + 3, + 2, + 0, + 0, + 0, + 0 + ], + [ + 0, + 38, + 934, + 0, + 12, + 0, + 0, + 0, + 0, + 2, + 179, + 0, + 0, + 0, + 5, + 0, + 30, + 2, + 0, + 0 + ], + [ + 0, + 14, + 0, + 0, + 88, + 0, + 12, + 6, + 11, + 0, + 0, + 6533, + 0, + 0, + 11, + 0, + 62, + 0, + 5, + 0 + ], + [ + 0, + 107, + 22, + 248, + 0, + 3, + 6, + 474, + 525, + 2970, + 6, + 154, + 1056, + 180, + 114, + 78, + 9, + 8, + 86, + 0 + ], + [ + 0, + 1, + 53, + 64, + 0, + 0, + 0, + 177, + 10, + 37, + 1, + 67, + 208, + 154, + 14, + 2, + 8, + 0, + 0, + 0 + ], + [ + 0, + 1034, + 18, + 36, + 0, + 0, + 6, + 44, + 395, + 0, + 0, + 60, + 0, + 0, + 1685, + 0, + 221, + 5, + 0, + 0 + ], + [ + 0, + 30, + 6, + 47, + 4, + 5, + 0, + 0, + 0, + 40, + 0, + 0, + 0, + 0, + 0, + 1777, + 0, + 0, + 0, + 0 + ], + [ + 0, + 51, + 0, + 8, + 0, + 0, + 0, + 17, + 875, + 0, + 0, + 15, + 0, + 0, + 41, + 0, + 1822, + 0, + 0, + 0 + ], + [ + 0, + 215, + 586, + 94, + 21, + 306, + 0, + 0, + 0, + 37, + 13, + 0, + 0, + 0, + 0, + 2, + 10, + 11, + 0, + 0 + ], + [ + 0, + 8, + 0, + 365, + 0, + 0, + 0, + 190, + 7, + 0, + 0, + 9, + 91, + 0, + 105, + 45, + 78, + 0, + 628, + 0 + ], + [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ] + ] + } + }, + "records": [ + { + "mode": "add", + "alpha": 0.0, + "metrics": { + "miou": 0.5256398451814701, + "oa": 0.7954606313128608, + "macro_f1": 0.6400266863319044, + "kappa": 0.7725060156424988, + "per_class_iou": [ + 0.7863696632193052, + 0.7940560621411685, + 0.8422681105804802, + 0.5216035634743875, + 0.8953563366655918, + 0.5666403785488959, + 0.6681021224238696, + 0.6854425749817118, + 0.3865969759193579, + 0.15913978494623657, + 0.8521227955584585, + 0.16817463736895016, + 0.15324165029469547, + 0.3526720731960907, + 0.8232323232323232, + 0.5073836723321259, + 0.010297482837528604, + 0.2888170055452865 + ], + "confusion_matrix": [ + [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + [ + 0, + 14827, + 104, + 46, + 8, + 16, + 20, + 1, + 480, + 0, + 3, + 211, + 80, + 3, + 659, + 16, + 296, + 4, + 6, + 0 + ], + [ + 0, + 160, + 11756, + 93, + 27, + 17, + 59, + 3, + 0, + 18, + 25, + 184, + 13, + 1, + 99, + 0, + 10, + 4, + 8, + 0 + ], + [ + 0, + 165, + 132, + 12522, + 19, + 10, + 2, + 144, + 0, + 31, + 1, + 0, + 2, + 6, + 113, + 137, + 34, + 11, + 539, + 0 + ], + [ + 0, + 23, + 477, + 28, + 1171, + 50, + 1, + 0, + 0, + 0, + 130, + 0, + 18, + 10, + 0, + 2, + 6, + 128, + 3, + 0 + ], + [ + 0, + 83, + 1, + 23, + 0, + 5553, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 19, + 8, + 1, + 101, + 0, + 0 + ], + [ + 0, + 96, + 76, + 5, + 7, + 0, + 1437, + 49, + 253, + 0, + 0, + 217, + 0, + 0, + 77, + 0, + 5, + 186, + 0, + 0 + ], + [ + 0, + 7, + 0, + 14, + 0, + 0, + 10, + 4344, + 415, + 65, + 0, + 10, + 472, + 0, + 33, + 1, + 4, + 0, + 4, + 0 + ], + [ + 0, + 29, + 0, + 0, + 0, + 0, + 0, + 0, + 6559, + 0, + 0, + 9, + 0, + 0, + 0, + 0, + 1, + 0, + 0, + 0 + ], + [ + 0, + 6, + 20, + 6, + 0, + 1, + 0, + 26, + 0, + 2071, + 0, + 0, + 16, + 14, + 5, + 1, + 0, + 0, + 0, + 0 + ], + [ + 0, + 34, + 886, + 0, + 14, + 0, + 2, + 0, + 0, + 5, + 222, + 0, + 0, + 0, + 5, + 0, + 30, + 4, + 0, + 0 + ], + [ + 0, + 17, + 0, + 0, + 91, + 0, + 14, + 5, + 10, + 0, + 0, + 6523, + 0, + 0, + 13, + 0, + 63, + 0, + 6, + 0 + ], + [ + 0, + 107, + 18, + 205, + 0, + 3, + 10, + 473, + 524, + 2954, + 6, + 129, + 1171, + 188, + 120, + 47, + 11, + 8, + 72, + 0 + ], + [ + 0, + 1, + 44, + 53, + 0, + 0, + 0, + 189, + 8, + 36, + 1, + 71, + 216, + 156, + 12, + 2, + 7, + 0, + 0, + 0 + ], + [ + 0, + 1027, + 18, + 38, + 0, + 0, + 10, + 43, + 402, + 0, + 0, + 58, + 0, + 0, + 1696, + 0, + 205, + 7, + 0, + 0 + ], + [ + 0, + 28, + 6, + 32, + 4, + 6, + 0, + 0, + 0, + 40, + 0, + 0, + 0, + 0, + 0, + 1793, + 0, + 0, + 0, + 0 + ], + [ + 0, + 51, + 0, + 8, + 0, + 0, + 0, + 19, + 875, + 0, + 0, + 14, + 0, + 0, + 41, + 0, + 1821, + 0, + 0, + 0 + ], + [ + 0, + 230, + 546, + 75, + 28, + 310, + 0, + 0, + 0, + 42, + 27, + 0, + 0, + 0, + 0, + 4, + 15, + 18, + 0, + 0 + ], + [ + 0, + 11, + 0, + 373, + 0, + 0, + 0, + 171, + 4, + 0, + 0, + 10, + 100, + 0, + 109, + 51, + 72, + 0, + 625, + 0 + ], + [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ] + ] + } + }, + { + "mode": "add", + "alpha": 0.1, + "metrics": { + "miou": 0.5259525387134086, + "oa": 0.7969708979124045, + "macro_f1": 0.6390991114711666, + "kappa": 0.7740240995256192, + "per_class_iou": [ + 0.7918943292133044, + 0.7796137766275134, + 0.8439109208854411, + 0.503158844765343, + 0.8964626070101761, + 0.6240601503759399, + 0.6614850588590402, + 0.6899053627760252, + 0.3884945834889802, + 0.1364329268292683, + 0.8610781600105444, + 0.1527777777777778, + 0.1535393818544367, + 0.3614328614328614, + 0.8037087290818634, + 0.507803790412486, + 0.006532066508313539, + 0.3048543689320388 + ], + "confusion_matrix": [ + [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + [ + 0, + 14928, + 103, + 52, + 4, + 11, + 22, + 0, + 476, + 0, + 3, + 205, + 70, + 2, + 589, + 20, + 286, + 4, + 5, + 0 + ], + [ + 0, + 185, + 11748, + 88, + 26, + 17, + 58, + 3, + 0, + 19, + 20, + 186, + 12, + 1, + 97, + 0, + 8, + 1, + 8, + 0 + ], + [ + 0, + 154, + 137, + 12619, + 9, + 9, + 2, + 227, + 0, + 29, + 0, + 0, + 2, + 5, + 61, + 145, + 34, + 10, + 425, + 0 + ], + [ + 0, + 22, + 635, + 27, + 1115, + 51, + 0, + 0, + 0, + 0, + 67, + 0, + 19, + 9, + 0, + 0, + 5, + 94, + 3, + 0 + ], + [ + 0, + 86, + 11, + 25, + 0, + 5550, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 19, + 7, + 0, + 91, + 0, + 0 + ], + [ + 0, + 86, + 67, + 4, + 5, + 0, + 1577, + 87, + 198, + 0, + 0, + 134, + 0, + 0, + 72, + 0, + 4, + 174, + 0, + 0 + ], + [ + 0, + 7, + 0, + 20, + 0, + 0, + 13, + 4383, + 415, + 54, + 0, + 6, + 447, + 0, + 27, + 1, + 4, + 0, + 2, + 0 + ], + [ + 0, + 28, + 0, + 0, + 0, + 0, + 0, + 0, + 6561, + 0, + 0, + 9, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + [ + 0, + 5, + 20, + 7, + 0, + 0, + 0, + 22, + 0, + 2080, + 0, + 0, + 17, + 10, + 3, + 2, + 0, + 0, + 0, + 0 + ], + [ + 0, + 38, + 934, + 0, + 12, + 0, + 0, + 0, + 0, + 2, + 179, + 0, + 0, + 0, + 5, + 0, + 30, + 2, + 0, + 0 + ], + [ + 0, + 14, + 0, + 0, + 88, + 0, + 12, + 6, + 11, + 0, + 0, + 6533, + 0, + 0, + 11, + 0, + 62, + 0, + 5, + 0 + ], + [ + 0, + 107, + 22, + 248, + 0, + 3, + 6, + 474, + 525, + 2970, + 6, + 154, + 1056, + 180, + 114, + 78, + 9, + 8, + 86, + 0 + ], + [ + 0, + 1, + 53, + 64, + 0, + 0, + 0, + 177, + 10, + 37, + 1, + 67, + 208, + 154, + 14, + 2, + 8, + 0, + 0, + 0 + ], + [ + 0, + 1034, + 18, + 36, + 0, + 0, + 6, + 44, + 395, + 0, + 0, + 60, + 0, + 0, + 1685, + 0, + 221, + 5, + 0, + 0 + ], + [ + 0, + 30, + 6, + 47, + 4, + 5, + 0, + 0, + 0, + 40, + 0, + 0, + 0, + 0, + 0, + 1777, + 0, + 0, + 0, + 0 + ], + [ + 0, + 51, + 0, + 8, + 0, + 0, + 0, + 17, + 875, + 0, + 0, + 15, + 0, + 0, + 41, + 0, + 1822, + 0, + 0, + 0 + ], + [ + 0, + 215, + 586, + 94, + 21, + 306, + 0, + 0, + 0, + 37, + 13, + 0, + 0, + 0, + 0, + 2, + 10, + 11, + 0, + 0 + ], + [ + 0, + 8, + 0, + 365, + 0, + 0, + 0, + 190, + 7, + 0, + 0, + 9, + 91, + 0, + 105, + 45, + 78, + 0, + 628, + 0 + ], + [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ] + ] + } + }, + { + "mode": "add", + "alpha": 0.25, + "metrics": { + "miou": 0.5121024916484683, + "oa": 0.7932434314114031, + "macro_f1": 0.621756895324494, + "kappa": 0.7695318237039902, + "per_class_iou": [ + 0.7963827304550758, + 0.7460549758208196, + 0.8307601727070522, + 0.43091655266757867, + 0.8977640959170448, + 0.664450527962456, + 0.6573167111902641, + 0.6998827667057445, + 0.3906689151208544, + 0.045746388443017656, + 0.8572740390922209, + 0.12222058606979826, + 0.13199577613516367, + 0.36880530973451325, + 0.7473498233215548, + 0.5065441381230855, + 0.0, + 0.3237113402061856 + ], + "confusion_matrix": [ + [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + [ + 0, + 15015, + 98, + 53, + 1, + 10, + 35, + 0, + 457, + 0, + 3, + 201, + 64, + 2, + 540, + 22, + 275, + 0, + 4, + 0 + ], + [ + 0, + 209, + 11725, + 90, + 31, + 16, + 64, + 3, + 0, + 18, + 10, + 190, + 13, + 1, + 93, + 0, + 8, + 1, + 5, + 0 + ], + [ + 0, + 138, + 166, + 12699, + 8, + 8, + 3, + 302, + 0, + 21, + 0, + 0, + 1, + 3, + 33, + 152, + 34, + 1, + 299, + 0 + ], + [ + 0, + 31, + 941, + 34, + 945, + 43, + 0, + 0, + 0, + 0, + 22, + 0, + 5, + 10, + 0, + 0, + 0, + 16, + 0, + 0 + ], + [ + 0, + 84, + 67, + 39, + 0, + 5541, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 19, + 3, + 0, + 36, + 0, + 0 + ], + [ + 0, + 85, + 61, + 2, + 4, + 1, + 1699, + 122, + 114, + 0, + 0, + 112, + 0, + 0, + 55, + 0, + 4, + 149, + 0, + 0 + ], + [ + 0, + 11, + 0, + 45, + 0, + 1, + 19, + 4429, + 408, + 34, + 0, + 5, + 396, + 0, + 20, + 1, + 8, + 0, + 2, + 0 + ], + [ + 0, + 21, + 0, + 0, + 0, + 0, + 0, + 1, + 6567, + 0, + 0, + 9, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + [ + 0, + 4, + 19, + 19, + 0, + 0, + 0, + 11, + 0, + 2085, + 0, + 0, + 17, + 7, + 1, + 3, + 0, + 0, + 0, + 0 + ], + [ + 0, + 53, + 1045, + 5, + 7, + 1, + 0, + 0, + 0, + 0, + 57, + 0, + 0, + 0, + 2, + 0, + 30, + 2, + 0, + 0 + ], + [ + 0, + 12, + 0, + 0, + 80, + 0, + 25, + 5, + 13, + 0, + 0, + 6535, + 0, + 0, + 10, + 0, + 58, + 0, + 4, + 0 + ], + [ + 0, + 132, + 34, + 340, + 0, + 2, + 2, + 513, + 495, + 3008, + 4, + 215, + 830, + 128, + 94, + 139, + 5, + 6, + 99, + 0 + ], + [ + 0, + 4, + 81, + 156, + 0, + 0, + 0, + 98, + 19, + 32, + 0, + 61, + 188, + 125, + 25, + 0, + 7, + 0, + 0, + 0 + ], + [ + 0, + 1053, + 19, + 32, + 0, + 0, + 1, + 46, + 387, + 0, + 0, + 58, + 0, + 0, + 1667, + 0, + 241, + 0, + 0, + 0 + ], + [ + 0, + 42, + 4, + 130, + 0, + 5, + 0, + 0, + 0, + 36, + 0, + 0, + 0, + 0, + 0, + 1692, + 0, + 0, + 0, + 0 + ], + [ + 0, + 47, + 0, + 13, + 0, + 0, + 0, + 16, + 880, + 0, + 0, + 17, + 0, + 0, + 36, + 0, + 1819, + 0, + 1, + 0 + ], + [ + 0, + 140, + 704, + 107, + 15, + 296, + 0, + 0, + 0, + 22, + 5, + 0, + 0, + 0, + 0, + 0, + 6, + 0, + 0, + 0 + ], + [ + 0, + 8, + 0, + 353, + 0, + 0, + 0, + 242, + 12, + 0, + 0, + 13, + 61, + 0, + 88, + 35, + 86, + 0, + 628, + 0 + ], + [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ] + ] + } + }, + { + "mode": "add", + "alpha": 0.5, + "metrics": { + "miou": 0.47879795955305693, + "oa": 0.7761377877272094, + "macro_f1": 0.5885884799695399, + "kappa": 0.7501747397027639, + "per_class_iou": [ + 0.7826931150293871, + 0.7103363914373089, + 0.7896527821538849, + 0.3770491803278688, + 0.8964564369310793, + 0.5934767989240081, + 0.6146362098138748, + 0.7097576806577239, + 0.3951321544019776, + 0.0024630541871921183, + 0.8289234760051881, + 0.056769230769230766, + 0.10692588092345079, + 0.35865075722808626, + 0.6246453182002432, + 0.4823125659978881, + 0.0, + 0.2884822389666308 + ], + "confusion_matrix": [ + [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + [ + 0, + 14915, + 200, + 80, + 0, + 14, + 173, + 1, + 400, + 1, + 0, + 145, + 47, + 2, + 489, + 25, + 282, + 4, + 2, + 0 + ], + [ + 0, + 295, + 11614, + 100, + 68, + 19, + 76, + 1, + 3, + 14, + 6, + 207, + 10, + 0, + 52, + 0, + 9, + 0, + 3, + 0 + ], + [ + 0, + 136, + 210, + 12531, + 7, + 3, + 3, + 428, + 2, + 15, + 0, + 0, + 2, + 0, + 20, + 298, + 58, + 0, + 155, + 0 + ], + [ + 0, + 40, + 1099, + 32, + 805, + 40, + 0, + 0, + 0, + 0, + 10, + 0, + 12, + 4, + 0, + 0, + 0, + 5, + 0, + 0 + ], + [ + 0, + 74, + 121, + 59, + 0, + 5515, + 0, + 0, + 0, + 0, + 0, + 14, + 0, + 0, + 2, + 1, + 2, + 1, + 0, + 0 + ], + [ + 0, + 84, + 61, + 4, + 2, + 14, + 1765, + 161, + 40, + 0, + 0, + 128, + 0, + 0, + 41, + 0, + 5, + 103, + 0, + 0 + ], + [ + 0, + 10, + 15, + 191, + 0, + 0, + 16, + 4359, + 400, + 0, + 0, + 11, + 201, + 0, + 1, + 0, + 174, + 0, + 1, + 0 + ], + [ + 0, + 13, + 0, + 0, + 0, + 0, + 1, + 3, + 6561, + 0, + 0, + 18, + 0, + 0, + 2, + 0, + 0, + 0, + 0, + 0 + ], + [ + 0, + 11, + 19, + 39, + 0, + 0, + 0, + 0, + 0, + 2078, + 0, + 0, + 9, + 1, + 0, + 9, + 0, + 0, + 0, + 0 + ], + [ + 0, + 86, + 1082, + 17, + 0, + 0, + 0, + 0, + 0, + 0, + 3, + 0, + 0, + 0, + 0, + 0, + 14, + 0, + 0, + 0 + ], + [ + 0, + 13, + 1, + 0, + 10, + 0, + 239, + 8, + 17, + 0, + 0, + 6391, + 0, + 0, + 7, + 0, + 56, + 0, + 0, + 0 + ], + [ + 0, + 245, + 137, + 475, + 0, + 2, + 1, + 628, + 489, + 3014, + 0, + 253, + 369, + 20, + 58, + 189, + 4, + 0, + 162, + 0 + ], + [ + 0, + 8, + 112, + 211, + 0, + 0, + 0, + 32, + 51, + 26, + 0, + 33, + 153, + 88, + 60, + 12, + 10, + 0, + 0, + 0 + ], + [ + 0, + 1041, + 21, + 26, + 0, + 0, + 57, + 55, + 370, + 0, + 0, + 122, + 0, + 0, + 1563, + 0, + 249, + 0, + 0, + 0 + ], + [ + 0, + 63, + 0, + 276, + 0, + 7, + 0, + 0, + 0, + 22, + 0, + 0, + 0, + 0, + 0, + 1541, + 0, + 0, + 0, + 0 + ], + [ + 0, + 34, + 0, + 25, + 0, + 0, + 0, + 21, + 843, + 0, + 0, + 24, + 0, + 0, + 46, + 0, + 1827, + 0, + 9, + 0 + ], + [ + 0, + 114, + 795, + 120, + 1, + 264, + 0, + 0, + 0, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + [ + 0, + 9, + 0, + 346, + 0, + 0, + 0, + 375, + 31, + 0, + 0, + 13, + 20, + 0, + 76, + 24, + 96, + 0, + 536, + 0 + ], + [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ] + ] + } + }, + { + "mode": "replace", + "alpha": 0.1, + "metrics": { + "miou": 0.5213330479464527, + "oa": 0.7902336093229507, + "macro_f1": 0.6340367648422165, + "kappa": 0.7669074287926599, + "per_class_iou": [ + 0.7871194753958523, + 0.7941810344827587, + 0.809841141626279, + 0.5288028802880288, + 0.9014084507042254, + 0.6280606296152351, + 0.6194052267948332, + 0.6937783880849265, + 0.38979860718991155, + 0.1461877756773787, + 0.8618143459915611, + 0.18828980623420388, + 0.11239193083573487, + 0.3337386018237082, + 0.8287575616565844, + 0.507959067652075, + 0.016981132075471698, + 0.23547880690737832 + ], + "confusion_matrix": [ + [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + [ + 0, + 14764, + 117, + 51, + 53, + 14, + 51, + 3, + 480, + 0, + 3, + 197, + 82, + 3, + 681, + 24, + 248, + 5, + 4, + 0 + ], + [ + 0, + 115, + 11792, + 78, + 11, + 16, + 56, + 3, + 0, + 20, + 56, + 188, + 22, + 5, + 96, + 0, + 7, + 4, + 8, + 0 + ], + [ + 0, + 155, + 129, + 12031, + 17, + 10, + 4, + 250, + 0, + 26, + 0, + 0, + 2, + 5, + 137, + 127, + 38, + 0, + 937, + 0 + ], + [ + 0, + 23, + 484, + 30, + 1175, + 42, + 5, + 0, + 0, + 0, + 234, + 0, + 10, + 7, + 0, + 0, + 21, + 12, + 4, + 0 + ], + [ + 0, + 68, + 22, + 27, + 0, + 5568, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 18, + 7, + 2, + 77, + 0, + 0 + ], + [ + 0, + 62, + 71, + 3, + 16, + 0, + 1616, + 48, + 189, + 0, + 3, + 146, + 0, + 0, + 81, + 0, + 4, + 169, + 0, + 0 + ], + [ + 0, + 5, + 1, + 14, + 0, + 0, + 15, + 4124, + 334, + 110, + 0, + 9, + 663, + 1, + 75, + 4, + 8, + 0, + 16, + 0 + ], + [ + 0, + 19, + 0, + 0, + 0, + 0, + 1, + 0, + 6568, + 0, + 0, + 9, + 0, + 0, + 0, + 0, + 1, + 0, + 0, + 0 + ], + [ + 0, + 5, + 21, + 5, + 0, + 0, + 0, + 16, + 0, + 2071, + 0, + 0, + 24, + 21, + 3, + 0, + 0, + 0, + 0, + 0 + ], + [ + 0, + 26, + 900, + 0, + 2, + 0, + 0, + 0, + 0, + 2, + 232, + 0, + 0, + 0, + 5, + 0, + 32, + 3, + 0, + 0 + ], + [ + 0, + 7, + 1, + 0, + 66, + 0, + 24, + 4, + 11, + 0, + 0, + 6536, + 0, + 0, + 19, + 0, + 66, + 0, + 8, + 0 + ], + [ + 0, + 114, + 22, + 166, + 0, + 4, + 1, + 466, + 494, + 2872, + 0, + 123, + 1341, + 203, + 155, + 24, + 8, + 9, + 44, + 0 + ], + [ + 0, + 2, + 54, + 60, + 0, + 0, + 0, + 180, + 9, + 40, + 1, + 97, + 210, + 117, + 15, + 4, + 6, + 0, + 1, + 0 + ], + [ + 0, + 1038, + 18, + 37, + 0, + 2, + 7, + 53, + 450, + 0, + 0, + 60, + 0, + 0, + 1647, + 0, + 176, + 16, + 0, + 0 + ], + [ + 0, + 26, + 10, + 43, + 7, + 6, + 0, + 0, + 0, + 36, + 0, + 0, + 0, + 0, + 0, + 1781, + 0, + 0, + 0, + 0 + ], + [ + 0, + 53, + 0, + 6, + 0, + 0, + 0, + 39, + 902, + 0, + 0, + 8, + 0, + 0, + 34, + 0, + 1787, + 0, + 0, + 0 + ], + [ + 0, + 246, + 521, + 45, + 3, + 294, + 0, + 0, + 0, + 41, + 88, + 0, + 0, + 0, + 0, + 2, + 28, + 27, + 0, + 0 + ], + [ + 0, + 13, + 0, + 423, + 0, + 0, + 1, + 217, + 0, + 0, + 0, + 5, + 63, + 0, + 112, + 48, + 44, + 0, + 600, + 0 + ], + [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ] + ] + } + }, + { + "mode": "replace", + "alpha": 0.25, + "metrics": { + "miou": 0.5141071221282871, + "oa": 0.7903835648718416, + "macro_f1": 0.6257550803566504, + "kappa": 0.7666269632266423, + "per_class_iou": [ + 0.7922733552981188, + 0.7576910673976137, + 0.8142658638258453, + 0.445777572681126, + 0.9018335226350803, + 0.6722007722007722, + 0.6265505020673361, + 0.6983418367346939, + 0.39612976664769495, + 0.09333333333333334, + 0.8617554032683183, + 0.16498993963782696, + 0.11546184738955824, + 0.33734177215189876, + 0.7878228782287823, + 0.5093325791855203, + 0.00922266139657444, + 0.2696035242290749 + ], + "confusion_matrix": [ + [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + [ + 0, + 14909, + 112, + 49, + 35, + 15, + 56, + 2, + 461, + 0, + 3, + 178, + 70, + 2, + 607, + 28, + 244, + 5, + 4, + 0 + ], + [ + 0, + 161, + 11748, + 88, + 11, + 15, + 60, + 3, + 0, + 19, + 47, + 191, + 20, + 2, + 94, + 0, + 6, + 4, + 8, + 0 + ], + [ + 0, + 126, + 147, + 12306, + 8, + 9, + 2, + 331, + 0, + 21, + 0, + 0, + 0, + 4, + 73, + 135, + 35, + 0, + 671, + 0 + ], + [ + 0, + 34, + 905, + 35, + 966, + 35, + 0, + 0, + 0, + 0, + 47, + 0, + 3, + 6, + 0, + 0, + 8, + 8, + 0, + 0 + ], + [ + 0, + 73, + 61, + 32, + 0, + 5558, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 18, + 7, + 1, + 39, + 0, + 0 + ], + [ + 0, + 67, + 69, + 1, + 11, + 1, + 1741, + 91, + 102, + 0, + 1, + 109, + 0, + 0, + 65, + 0, + 4, + 146, + 0, + 0 + ], + [ + 0, + 6, + 0, + 36, + 0, + 1, + 16, + 4243, + 334, + 88, + 0, + 7, + 555, + 0, + 70, + 2, + 13, + 0, + 8, + 0 + ], + [ + 0, + 15, + 0, + 0, + 0, + 0, + 2, + 1, + 6570, + 0, + 0, + 10, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + [ + 0, + 4, + 20, + 9, + 0, + 0, + 0, + 12, + 0, + 2088, + 0, + 0, + 22, + 10, + 1, + 0, + 0, + 0, + 0, + 0 + ], + [ + 0, + 31, + 1007, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 126, + 0, + 0, + 0, + 5, + 0, + 32, + 1, + 0, + 0 + ], + [ + 0, + 11, + 0, + 0, + 51, + 0, + 41, + 5, + 10, + 0, + 0, + 6539, + 0, + 0, + 15, + 0, + 64, + 0, + 6, + 0 + ], + [ + 0, + 122, + 26, + 257, + 0, + 4, + 1, + 492, + 529, + 2873, + 0, + 181, + 1148, + 176, + 130, + 45, + 7, + 8, + 47, + 0 + ], + [ + 0, + 1, + 69, + 122, + 0, + 0, + 0, + 116, + 18, + 35, + 0, + 86, + 197, + 115, + 27, + 4, + 6, + 0, + 0, + 0 + ], + [ + 0, + 1055, + 19, + 33, + 0, + 0, + 4, + 52, + 455, + 0, + 0, + 67, + 0, + 0, + 1599, + 0, + 208, + 12, + 0, + 0 + ], + [ + 0, + 29, + 6, + 124, + 4, + 6, + 0, + 0, + 0, + 32, + 0, + 0, + 0, + 0, + 0, + 1708, + 0, + 0, + 0, + 0 + ], + [ + 0, + 52, + 0, + 7, + 0, + 0, + 0, + 27, + 898, + 0, + 0, + 8, + 0, + 0, + 36, + 0, + 1801, + 0, + 0, + 0 + ], + [ + 0, + 240, + 587, + 62, + 0, + 288, + 0, + 0, + 0, + 37, + 50, + 0, + 0, + 0, + 0, + 0, + 17, + 14, + 0, + 0 + ], + [ + 0, + 11, + 0, + 390, + 0, + 0, + 0, + 261, + 3, + 0, + 0, + 9, + 45, + 0, + 95, + 38, + 62, + 0, + 612, + 0 + ], + [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ] + ] + } + }, + { + "mode": "replace", + "alpha": 0.5, + "metrics": { + "miou": 0.4846937000291392, + "oa": 0.7792547209220124, + "macro_f1": 0.5955672275606292, + "kappa": 0.7537344299687712, + "per_class_iou": [ + 0.787392037076048, + 0.7167466469792051, + 0.7873257287705957, + 0.4039829302987198, + 0.9017142857142857, + 0.6008064516129032, + 0.6165434906196703, + 0.7163902226102139, + 0.4065183450429352, + 0.008025682182985553, + 0.833052495139339, + 0.09134687735139202, + 0.10574712643678161, + 0.34994285714285717, + 0.6304523424878837, + 0.4753053637812002, + 0.0, + 0.2931937172774869 + ], + "confusion_matrix": [ + [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + [ + 0, + 14951, + 177, + 80, + 2, + 15, + 178, + 1, + 386, + 1, + 0, + 162, + 51, + 2, + 478, + 29, + 262, + 5, + 0, + 0 + ], + [ + 0, + 254, + 11650, + 95, + 47, + 15, + 76, + 1, + 2, + 14, + 28, + 197, + 17, + 1, + 68, + 0, + 7, + 0, + 5, + 0 + ], + [ + 0, + 124, + 212, + 12424, + 7, + 3, + 3, + 438, + 2, + 11, + 0, + 0, + 1, + 0, + 15, + 329, + 57, + 0, + 242, + 0 + ], + [ + 0, + 39, + 1051, + 41, + 852, + 38, + 0, + 0, + 0, + 0, + 14, + 0, + 7, + 1, + 0, + 0, + 0, + 4, + 0, + 0 + ], + [ + 0, + 73, + 121, + 50, + 0, + 5523, + 0, + 0, + 0, + 0, + 0, + 15, + 0, + 0, + 2, + 2, + 3, + 0, + 0, + 0 + ], + [ + 0, + 75, + 71, + 2, + 5, + 13, + 1788, + 139, + 42, + 0, + 0, + 119, + 0, + 0, + 44, + 0, + 4, + 106, + 0, + 0 + ], + [ + 0, + 7, + 11, + 192, + 0, + 0, + 16, + 4338, + 264, + 4, + 0, + 12, + 346, + 0, + 3, + 1, + 180, + 0, + 5, + 0 + ], + [ + 0, + 10, + 0, + 0, + 0, + 0, + 1, + 3, + 6565, + 0, + 0, + 17, + 0, + 0, + 2, + 0, + 0, + 0, + 0, + 0 + ], + [ + 0, + 7, + 19, + 35, + 0, + 0, + 0, + 0, + 0, + 2083, + 0, + 0, + 13, + 6, + 0, + 3, + 0, + 0, + 0, + 0 + ], + [ + 0, + 69, + 1083, + 12, + 0, + 0, + 0, + 0, + 0, + 0, + 10, + 0, + 0, + 0, + 2, + 0, + 26, + 0, + 0, + 0 + ], + [ + 0, + 10, + 0, + 0, + 1, + 0, + 217, + 8, + 19, + 0, + 0, + 6427, + 0, + 0, + 4, + 0, + 56, + 0, + 0, + 0 + ], + [ + 0, + 236, + 98, + 443, + 0, + 0, + 1, + 602, + 521, + 2869, + 0, + 240, + 607, + 64, + 70, + 166, + 3, + 1, + 125, + 0 + ], + [ + 0, + 7, + 115, + 209, + 0, + 0, + 0, + 8, + 47, + 27, + 0, + 54, + 154, + 92, + 62, + 12, + 9, + 0, + 0, + 0 + ], + [ + 0, + 1051, + 21, + 28, + 0, + 0, + 76, + 58, + 365, + 0, + 0, + 131, + 0, + 0, + 1531, + 0, + 241, + 0, + 2, + 0 + ], + [ + 0, + 56, + 2, + 262, + 0, + 7, + 0, + 0, + 0, + 20, + 0, + 0, + 0, + 0, + 0, + 1561, + 1, + 0, + 0, + 0 + ], + [ + 0, + 44, + 0, + 16, + 0, + 0, + 0, + 22, + 894, + 0, + 0, + 14, + 1, + 0, + 43, + 0, + 1790, + 0, + 5, + 0 + ], + [ + 0, + 136, + 796, + 104, + 0, + 245, + 0, + 0, + 0, + 12, + 2, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + [ + 0, + 10, + 0, + 343, + 0, + 0, + 0, + 377, + 24, + 0, + 0, + 12, + 9, + 0, + 78, + 25, + 88, + 0, + 560, + 0 + ], + [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ] + ] + } + } + ], + "reference_val_miou": 0.5256398451814701, + "delta_val_pp": 0.03126935319385238, + "patch_bootstrap_delta_interval_pp": [ + -0.6300265253503862, + 0.811474272092648 + ], + "bootstrap_caveat": "descriptive, after validation selection; not an independent significance test", + "selection_split": "validation", + "test_used_for_selection": false +} \ No newline at end of file diff --git a/ablations/10_plateau_breakthrough/workspace/convnext_research_20261010/32X32_temporal_cnv2_k15_seed3407/test_results.json b/ablations/10_plateau_breakthrough/workspace/convnext_research_20261010/32X32_temporal_cnv2_k15_seed3407/test_results.json new file mode 100644 index 0000000000000000000000000000000000000000..81733e3de0b2642b061e6b0ead9eb30a25c5170b --- /dev/null +++ b/ablations/10_plateau_breakthrough/workspace/convnext_research_20261010/32X32_temporal_cnv2_k15_seed3407/test_results.json @@ -0,0 +1,5672 @@ +{ + "kind": "temporal_cnv2_k15", + "metrics": { + "miou": 0.49128209280490176, + "oa": 0.8100923124151438, + "macro_f1": 0.6196963941748813, + "kappa": 0.762845594592004, + "per_class_iou": [ + 0.8035495869563755, + 0.7165434811127498, + 0.8739399361752177, + 0.44392131243558625, + 0.8659069284663956, + 0.37861213646964337, + 0.45379466796655293, + 0.619040791160891, + 0.793483745404743, + 0.0634838765137595, + 0.5522520139034603, + 0.3219405605446301, + 0.4398155036452909, + 0.2570005728643786, + 0.6159594372964358, + 0.28549862252480335, + 0.08361236758111575, + 0.27472212946620234 + ], + "confusion_matrix": [ + [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + [ + 0, + 1313266, + 6858, + 9002, + 710, + 770, + 790, + 2286, + 18766, + 564, + 303, + 4220, + 5896, + 364, + 28272, + 1177, + 71276, + 884, + 599, + 0 + ], + [ + 0, + 13918, + 497044, + 5023, + 3582, + 1218, + 1533, + 165, + 711, + 518, + 17451, + 15176, + 410, + 119, + 962, + 177, + 653, + 1985, + 35, + 0 + ], + [ + 0, + 18634, + 2876, + 642740, + 238, + 960, + 151, + 3094, + 886, + 3534, + 144, + 18, + 1849, + 157, + 2649, + 4974, + 536, + 106, + 4743, + 0 + ], + [ + 0, + 10215, + 50536, + 1894, + 78824, + 1654, + 4027, + 54, + 197, + 59, + 6814, + 4540, + 276, + 374, + 493, + 87, + 239, + 3106, + 3, + 0 + ], + [ + 0, + 2896, + 1272, + 872, + 327, + 120129, + 228, + 100, + 17, + 212, + 587, + 196, + 19, + 31, + 1446, + 35, + 85, + 667, + 0, + 0 + ], + [ + 0, + 4143, + 8284, + 694, + 3203, + 338, + 24514, + 168, + 884, + 120, + 2427, + 5503, + 132, + 463, + 1850, + 345, + 177, + 517, + 0, + 0 + ], + [ + 0, + 1640, + 166, + 4210, + 18, + 251, + 103, + 48409, + 7590, + 3676, + 54, + 364, + 1015, + 1181, + 2360, + 9230, + 595, + 120, + 951, + 0 + ], + [ + 0, + 19671, + 119, + 4656, + 0, + 0, + 13, + 1279, + 151106, + 0, + 1, + 345, + 728, + 18, + 375, + 262, + 8801, + 0, + 103, + 0 + ], + [ + 0, + 677, + 209, + 1255, + 29, + 133, + 377, + 558, + 117, + 66048, + 1, + 30, + 738, + 20, + 420, + 357, + 68, + 1, + 9, + 0 + ], + [ + 0, + 3257, + 45938, + 414, + 1614, + 280, + 153, + 7, + 11, + 1, + 5908, + 9, + 5, + 0, + 273, + 9, + 76, + 407, + 0, + 0 + ], + [ + 0, + 1356, + 2451, + 19, + 0, + 1, + 1721, + 194, + 1313, + 0, + 97, + 60534, + 31, + 0, + 1427, + 0, + 706, + 3, + 107, + 0 + ], + [ + 0, + 3300, + 123, + 5145, + 42, + 7, + 592, + 10001, + 4048, + 1883, + 61, + 4049, + 25489, + 599, + 1359, + 594, + 2103, + 172, + 1148, + 0 + ], + [ + 0, + 636, + 173, + 1475, + 6, + 45, + 100, + 3044, + 586, + 660, + 5, + 424, + 2405, + 11824, + 351, + 393, + 431, + 6, + 49, + 0 + ], + [ + 0, + 60037, + 1053, + 1219, + 687, + 325, + 871, + 1092, + 7323, + 384, + 613, + 1164, + 441, + 190, + 45311, + 322, + 6349, + 306, + 107, + 0 + ], + [ + 0, + 1482, + 160, + 6926, + 71, + 132, + 2, + 647, + 13, + 400, + 6, + 2186, + 291, + 3, + 589, + 53331, + 52, + 11, + 2014, + 0 + ], + [ + 0, + 12879, + 318, + 790, + 1, + 0, + 41, + 439, + 10525, + 48, + 29, + 1318, + 889, + 77, + 848, + 18, + 48603, + 3, + 33, + 0 + ], + [ + 0, + 8930, + 12411, + 1238, + 3416, + 3499, + 248, + 33, + 18, + 18, + 6107, + 1, + 603, + 643, + 1237, + 63, + 33, + 4270, + 1, + 0 + ], + [ + 0, + 4657, + 42, + 2330, + 227, + 0, + 35, + 1582, + 3615, + 114, + 1, + 110, + 2730, + 32, + 3602, + 223, + 1200, + 6, + 11518, + 0 + ], + [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ] + ] + }, + "baseline": { + "miou": 0.49455547330691263, + "oa": 0.8109266736579659, + "macro_f1": 0.6234136021853756, + "kappa": 0.7642966739749818, + "per_class_iou": [ + 0.8061330522981268, + 0.7198486670090578, + 0.8757351877577422, + 0.46213693236161063, + 0.8703389461776095, + 0.38416520104311963, + 0.4490553274645572, + 0.6216216216216216, + 0.7901944411308601, + 0.07114146695276376, + 0.5587868716244287, + 0.3175281724644782, + 0.4373326486446833, + 0.2655897022970766, + 0.6168043633350977, + 0.28662647573048294, + 0.0918118400487935, + 0.27714760156231727 + ], + "confusion_matrix": [ + [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + [ + 0, + 1311069, + 6756, + 8420, + 815, + 744, + 883, + 2246, + 19285, + 602, + 381, + 3742, + 6998, + 405, + 29504, + 1126, + 71312, + 1029, + 686, + 0 + ], + [ + 0, + 12671, + 493367, + 5115, + 3930, + 1130, + 1764, + 172, + 746, + 546, + 21217, + 15339, + 437, + 131, + 1045, + 166, + 699, + 2161, + 44, + 0 + ], + [ + 0, + 17785, + 2752, + 641744, + 302, + 960, + 172, + 3539, + 862, + 3810, + 169, + 19, + 2132, + 202, + 3012, + 4846, + 607, + 129, + 5247, + 0 + ], + [ + 0, + 9412, + 46049, + 1786, + 82625, + 1310, + 4247, + 55, + 196, + 62, + 7994, + 4414, + 287, + 376, + 482, + 80, + 252, + 3761, + 4, + 0 + ], + [ + 0, + 2675, + 1166, + 868, + 380, + 120018, + 262, + 124, + 19, + 220, + 688, + 194, + 22, + 35, + 1476, + 29, + 106, + 837, + 0, + 0 + ], + [ + 0, + 4040, + 7283, + 711, + 3621, + 289, + 25338, + 175, + 883, + 118, + 2677, + 5012, + 146, + 454, + 1986, + 330, + 163, + 536, + 0, + 0 + ], + [ + 0, + 1538, + 141, + 3611, + 17, + 249, + 89, + 47797, + 7620, + 3775, + 49, + 378, + 1239, + 1298, + 2624, + 9685, + 632, + 168, + 1023, + 0 + ], + [ + 0, + 18456, + 124, + 4622, + 0, + 0, + 17, + 1317, + 151754, + 0, + 1, + 338, + 854, + 23, + 403, + 328, + 9076, + 0, + 164, + 0 + ], + [ + 0, + 482, + 193, + 1058, + 35, + 123, + 379, + 620, + 116, + 66242, + 0, + 28, + 795, + 26, + 446, + 416, + 71, + 2, + 15, + 0 + ], + [ + 0, + 3092, + 44739, + 412, + 1763, + 216, + 156, + 5, + 11, + 5, + 7062, + 21, + 6, + 0, + 299, + 8, + 83, + 484, + 0, + 0 + ], + [ + 0, + 1322, + 2401, + 20, + 0, + 0, + 1773, + 184, + 1235, + 0, + 143, + 60525, + 38, + 0, + 1508, + 0, + 693, + 4, + 114, + 0 + ], + [ + 0, + 3196, + 123, + 4634, + 46, + 7, + 910, + 9697, + 3978, + 1955, + 63, + 3941, + 25923, + 639, + 1593, + 517, + 2180, + 171, + 1142, + 0 + ], + [ + 0, + 589, + 140, + 1406, + 6, + 31, + 92, + 2996, + 519, + 719, + 7, + 314, + 2523, + 11923, + 406, + 408, + 473, + 9, + 52, + 0 + ], + [ + 0, + 57524, + 1032, + 1194, + 723, + 333, + 1050, + 1045, + 7046, + 405, + 646, + 1114, + 551, + 254, + 47497, + 318, + 6554, + 377, + 131, + 0 + ], + [ + 0, + 1525, + 170, + 6485, + 90, + 129, + 5, + 653, + 17, + 376, + 8, + 2255, + 478, + 3, + 400, + 53604, + 52, + 13, + 2053, + 0 + ], + [ + 0, + 12728, + 331, + 778, + 2, + 0, + 34, + 422, + 10506, + 48, + 33, + 1127, + 965, + 73, + 710, + 23, + 49018, + 5, + 56, + 0 + ], + [ + 0, + 8636, + 11253, + 1214, + 3447, + 3258, + 322, + 34, + 20, + 20, + 6827, + 1, + 610, + 689, + 1495, + 80, + 44, + 4817, + 2, + 0 + ], + [ + 0, + 4694, + 43, + 2183, + 220, + 0, + 39, + 1222, + 3590, + 122, + 2, + 118, + 2844, + 42, + 3653, + 230, + 1161, + 11, + 11850, + 0 + ], + [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ] + ] + }, + "standalone": { + "miou": 0.36674044182479976, + "oa": 0.7284789077012174, + "macro_f1": 0.4932786450060771, + "kappa": 0.6598032103400558, + "per_class_iou": [ + 0.7226189005846863, + 0.6066836848291539, + 0.7223382537883204, + 0.14709871975964664, + 0.6186341500245385, + 0.18467326063065348, + 0.3961474319020265, + 0.546115537447612, + 0.680385343111188, + 0.024946767324816106, + 0.41277388010803384, + 0.24034106431621782, + 0.2981601947559564, + 0.16112973419566692, + 0.45261058493674666, + 0.2374342993785116, + 0.012619495220191193, + 0.13661665053242983 + ], + "confusion_matrix": [ + [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + [ + 0, + 1240358, + 21019, + 44275, + 1899, + 9652, + 2145, + 4161, + 18600, + 960, + 701, + 10199, + 1256, + 191, + 35811, + 3395, + 69246, + 1421, + 714, + 0 + ], + [ + 0, + 35977, + 468668, + 5146, + 6505, + 10034, + 2757, + 410, + 761, + 226, + 13780, + 12342, + 122, + 495, + 699, + 978, + 1062, + 695, + 23, + 0 + ], + [ + 0, + 44478, + 12442, + 582417, + 208, + 2966, + 175, + 4744, + 1709, + 5734, + 369, + 77, + 1772, + 105, + 4987, + 21325, + 1295, + 568, + 2918, + 0 + ], + [ + 0, + 20333, + 80718, + 2791, + 26243, + 15741, + 2411, + 59, + 269, + 46, + 4149, + 6779, + 176, + 59, + 1324, + 909, + 488, + 895, + 2, + 0 + ], + [ + 0, + 6029, + 3590, + 1312, + 265, + 114709, + 147, + 78, + 83, + 177, + 518, + 329, + 0, + 64, + 938, + 441, + 25, + 414, + 0, + 0 + ], + [ + 0, + 4584, + 16444, + 775, + 1626, + 2769, + 13107, + 565, + 507, + 371, + 1330, + 7554, + 254, + 435, + 1290, + 191, + 524, + 1436, + 0, + 0 + ], + [ + 0, + 3073, + 2481, + 13178, + 62, + 1023, + 240, + 47033, + 6568, + 1092, + 269, + 430, + 980, + 255, + 1197, + 2475, + 430, + 536, + 611, + 0 + ], + [ + 0, + 26837, + 635, + 8629, + 1, + 5, + 57, + 2364, + 135648, + 4, + 6, + 1097, + 327, + 5, + 2478, + 217, + 7923, + 0, + 1244, + 0 + ], + [ + 0, + 5502, + 328, + 5420, + 34, + 1863, + 9, + 375, + 171, + 55018, + 12, + 118, + 686, + 86, + 341, + 471, + 406, + 202, + 5, + 0 + ], + [ + 0, + 6100, + 44064, + 557, + 1062, + 2924, + 434, + 48, + 34, + 0, + 2062, + 356, + 9, + 8, + 182, + 266, + 43, + 213, + 0, + 0 + ], + [ + 0, + 1483, + 3749, + 115, + 118, + 31, + 6898, + 292, + 2306, + 0, + 344, + 51657, + 126, + 295, + 1133, + 3, + 1373, + 4, + 33, + 0 + ], + [ + 0, + 4221, + 738, + 9422, + 18, + 690, + 158, + 11418, + 4632, + 591, + 139, + 3900, + 16715, + 254, + 2122, + 2502, + 1263, + 133, + 1799, + 0 + ], + [ + 0, + 1717, + 3130, + 2446, + 57, + 432, + 586, + 1295, + 900, + 202, + 87, + 1641, + 1242, + 7471, + 390, + 400, + 213, + 385, + 19, + 0 + ], + [ + 0, + 64410, + 2258, + 2319, + 415, + 971, + 877, + 1350, + 10261, + 209, + 351, + 3599, + 279, + 105, + 30619, + 1210, + 8155, + 222, + 184, + 0 + ], + [ + 0, + 1246, + 309, + 13348, + 1, + 487, + 2, + 1054, + 64, + 61, + 12, + 288, + 168, + 12, + 2523, + 46976, + 224, + 109, + 1432, + 0 + ], + [ + 0, + 12702, + 354, + 3073, + 55, + 40, + 220, + 1407, + 9427, + 48, + 21, + 6030, + 340, + 47, + 2086, + 86, + 40611, + 0, + 312, + 0 + ], + [ + 0, + 8516, + 19469, + 1642, + 2648, + 6161, + 78, + 72, + 76, + 87, + 2199, + 8, + 228, + 28, + 866, + 23, + 37, + 631, + 0, + 0 + ], + [ + 0, + 3265, + 100, + 3557, + 38, + 515, + 18, + 7101, + 4542, + 8, + 7, + 439, + 867, + 0, + 3866, + 581, + 1475, + 0, + 5645, + 0 + ], + [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ] + ] + }, + "delta_test_pp": -0.32733805020108697, + "standalone_delta_test_pp": -12.781503148211288, + "seconds": 134.20679651293904, + "validation_selection": { + "kind": "temporal_cnv2_k15", + "seed": 3407, + "checkpoint_epoch": 79, + "standalone": { + "miou": 0.3931897486511736, + "oa": 0.7162733903878493, + "macro_f1": 0.5039312548702903, + "kappa": 0.6838173350265685, + "per_class_iou": [ + 0.7241650500707807, + 0.6381049529638445, + 0.7096327513546057, + 0.2152230971128609, + 0.8550588235294118, + 0.38052095130237823, + 0.5012943308309604, + 0.7191110133127957, + 0.39487179487179486, + 0.0, + 0.6215610606249222, + 0.03739967897271268, + 0.001183431952662722, + 0.322484577749415, + 0.4317226890756303, + 0.40367393800229623, + 0.0, + 0.12140733399405351 + ], + "confusion_matrix": [ + [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + [ + 0, + 13812, + 441, + 335, + 6, + 57, + 321, + 14, + 318, + 1, + 1, + 233, + 15, + 0, + 794, + 76, + 335, + 8, + 13, + 0 + ], + [ + 0, + 417, + 11260, + 114, + 210, + 52, + 149, + 3, + 4, + 8, + 10, + 227, + 8, + 0, + 3, + 1, + 10, + 1, + 0, + 0 + ], + [ + 0, + 144, + 303, + 11787, + 1, + 3, + 8, + 596, + 6, + 3, + 0, + 1, + 16, + 0, + 30, + 573, + 127, + 0, + 270, + 0 + ], + [ + 0, + 58, + 1403, + 47, + 492, + 38, + 0, + 0, + 0, + 0, + 1, + 1, + 7, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + [ + 0, + 102, + 141, + 75, + 0, + 5451, + 0, + 0, + 0, + 0, + 0, + 18, + 0, + 0, + 0, + 0, + 2, + 0, + 0, + 0 + ], + [ + 0, + 87, + 106, + 4, + 11, + 148, + 1680, + 194, + 25, + 0, + 4, + 136, + 0, + 0, + 5, + 0, + 8, + 0, + 0, + 0 + ], + [ + 0, + 9, + 322, + 230, + 0, + 0, + 18, + 3873, + 316, + 0, + 0, + 14, + 28, + 0, + 1, + 4, + 563, + 0, + 1, + 0 + ], + [ + 0, + 18, + 2, + 0, + 0, + 0, + 3, + 5, + 6536, + 0, + 0, + 27, + 0, + 0, + 7, + 0, + 0, + 0, + 0, + 0 + ], + [ + 0, + 19, + 13, + 76, + 0, + 30, + 0, + 0, + 0, + 2002, + 0, + 0, + 1, + 0, + 0, + 25, + 0, + 0, + 0, + 0 + ], + [ + 0, + 90, + 1087, + 21, + 0, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 3, + 0, + 0, + 0 + ], + [ + 0, + 29, + 42, + 0, + 0, + 0, + 1333, + 6, + 199, + 0, + 0, + 4993, + 0, + 49, + 7, + 0, + 84, + 0, + 0, + 0 + ], + [ + 0, + 253, + 222, + 632, + 0, + 52, + 0, + 681, + 386, + 2864, + 0, + 275, + 233, + 0, + 45, + 253, + 5, + 0, + 145, + 0 + ], + [ + 0, + 12, + 129, + 211, + 10, + 0, + 1, + 25, + 87, + 26, + 0, + 7, + 103, + 1, + 163, + 12, + 9, + 0, + 0, + 0 + ], + [ + 0, + 843, + 23, + 18, + 1, + 0, + 172, + 89, + 350, + 0, + 0, + 207, + 0, + 0, + 1516, + 0, + 281, + 0, + 4, + 0 + ], + [ + 0, + 70, + 1, + 470, + 0, + 87, + 0, + 0, + 0, + 2, + 0, + 0, + 0, + 0, + 2, + 1233, + 10, + 0, + 34, + 0 + ], + [ + 0, + 28, + 1, + 31, + 0, + 0, + 2, + 67, + 723, + 0, + 0, + 126, + 0, + 0, + 68, + 0, + 1758, + 0, + 25, + 0 + ], + [ + 0, + 101, + 933, + 143, + 0, + 118, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + [ + 0, + 13, + 0, + 335, + 0, + 0, + 0, + 667, + 77, + 0, + 0, + 19, + 6, + 0, + 72, + 3, + 89, + 0, + 245, + 0 + ], + [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ] + ] + }, + "chosen": { + "mode": "add", + "alpha": 0.1, + "metrics": { + "miou": 0.5259525387134086, + "oa": 0.7969708979124045, + "macro_f1": 0.6390991114711666, + "kappa": 0.7740240995256192, + "per_class_iou": [ + 0.7918943292133044, + 0.7796137766275134, + 0.8439109208854411, + 0.503158844765343, + 0.8964626070101761, + 0.6240601503759399, + 0.6614850588590402, + 0.6899053627760252, + 0.3884945834889802, + 0.1364329268292683, + 0.8610781600105444, + 0.1527777777777778, + 0.1535393818544367, + 0.3614328614328614, + 0.8037087290818634, + 0.507803790412486, + 0.006532066508313539, + 0.3048543689320388 + ], + "confusion_matrix": [ + [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + [ + 0, + 14928, + 103, + 52, + 4, + 11, + 22, + 0, + 476, + 0, + 3, + 205, + 70, + 2, + 589, + 20, + 286, + 4, + 5, + 0 + ], + [ + 0, + 185, + 11748, + 88, + 26, + 17, + 58, + 3, + 0, + 19, + 20, + 186, + 12, + 1, + 97, + 0, + 8, + 1, + 8, + 0 + ], + [ + 0, + 154, + 137, + 12619, + 9, + 9, + 2, + 227, + 0, + 29, + 0, + 0, + 2, + 5, + 61, + 145, + 34, + 10, + 425, + 0 + ], + [ + 0, + 22, + 635, + 27, + 1115, + 51, + 0, + 0, + 0, + 0, + 67, + 0, + 19, + 9, + 0, + 0, + 5, + 94, + 3, + 0 + ], + [ + 0, + 86, + 11, + 25, + 0, + 5550, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 19, + 7, + 0, + 91, + 0, + 0 + ], + [ + 0, + 86, + 67, + 4, + 5, + 0, + 1577, + 87, + 198, + 0, + 0, + 134, + 0, + 0, + 72, + 0, + 4, + 174, + 0, + 0 + ], + [ + 0, + 7, + 0, + 20, + 0, + 0, + 13, + 4383, + 415, + 54, + 0, + 6, + 447, + 0, + 27, + 1, + 4, + 0, + 2, + 0 + ], + [ + 0, + 28, + 0, + 0, + 0, + 0, + 0, + 0, + 6561, + 0, + 0, + 9, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + [ + 0, + 5, + 20, + 7, + 0, + 0, + 0, + 22, + 0, + 2080, + 0, + 0, + 17, + 10, + 3, + 2, + 0, + 0, + 0, + 0 + ], + [ + 0, + 38, + 934, + 0, + 12, + 0, + 0, + 0, + 0, + 2, + 179, + 0, + 0, + 0, + 5, + 0, + 30, + 2, + 0, + 0 + ], + [ + 0, + 14, + 0, + 0, + 88, + 0, + 12, + 6, + 11, + 0, + 0, + 6533, + 0, + 0, + 11, + 0, + 62, + 0, + 5, + 0 + ], + [ + 0, + 107, + 22, + 248, + 0, + 3, + 6, + 474, + 525, + 2970, + 6, + 154, + 1056, + 180, + 114, + 78, + 9, + 8, + 86, + 0 + ], + [ + 0, + 1, + 53, + 64, + 0, + 0, + 0, + 177, + 10, + 37, + 1, + 67, + 208, + 154, + 14, + 2, + 8, + 0, + 0, + 0 + ], + [ + 0, + 1034, + 18, + 36, + 0, + 0, + 6, + 44, + 395, + 0, + 0, + 60, + 0, + 0, + 1685, + 0, + 221, + 5, + 0, + 0 + ], + [ + 0, + 30, + 6, + 47, + 4, + 5, + 0, + 0, + 0, + 40, + 0, + 0, + 0, + 0, + 0, + 1777, + 0, + 0, + 0, + 0 + ], + [ + 0, + 51, + 0, + 8, + 0, + 0, + 0, + 17, + 875, + 0, + 0, + 15, + 0, + 0, + 41, + 0, + 1822, + 0, + 0, + 0 + ], + [ + 0, + 215, + 586, + 94, + 21, + 306, + 0, + 0, + 0, + 37, + 13, + 0, + 0, + 0, + 0, + 2, + 10, + 11, + 0, + 0 + ], + [ + 0, + 8, + 0, + 365, + 0, + 0, + 0, + 190, + 7, + 0, + 0, + 9, + 91, + 0, + 105, + 45, + 78, + 0, + 628, + 0 + ], + [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ] + ] + } + }, + "records": [ + { + "mode": "add", + "alpha": 0.0, + "metrics": { + "miou": 0.5256398451814701, + "oa": 0.7954606313128608, + "macro_f1": 0.6400266863319044, + "kappa": 0.7725060156424988, + "per_class_iou": [ + 0.7863696632193052, + 0.7940560621411685, + 0.8422681105804802, + 0.5216035634743875, + 0.8953563366655918, + 0.5666403785488959, + 0.6681021224238696, + 0.6854425749817118, + 0.3865969759193579, + 0.15913978494623657, + 0.8521227955584585, + 0.16817463736895016, + 0.15324165029469547, + 0.3526720731960907, + 0.8232323232323232, + 0.5073836723321259, + 0.010297482837528604, + 0.2888170055452865 + ], + "confusion_matrix": [ + [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + [ + 0, + 14827, + 104, + 46, + 8, + 16, + 20, + 1, + 480, + 0, + 3, + 211, + 80, + 3, + 659, + 16, + 296, + 4, + 6, + 0 + ], + [ + 0, + 160, + 11756, + 93, + 27, + 17, + 59, + 3, + 0, + 18, + 25, + 184, + 13, + 1, + 99, + 0, + 10, + 4, + 8, + 0 + ], + [ + 0, + 165, + 132, + 12522, + 19, + 10, + 2, + 144, + 0, + 31, + 1, + 0, + 2, + 6, + 113, + 137, + 34, + 11, + 539, + 0 + ], + [ + 0, + 23, + 477, + 28, + 1171, + 50, + 1, + 0, + 0, + 0, + 130, + 0, + 18, + 10, + 0, + 2, + 6, + 128, + 3, + 0 + ], + [ + 0, + 83, + 1, + 23, + 0, + 5553, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 19, + 8, + 1, + 101, + 0, + 0 + ], + [ + 0, + 96, + 76, + 5, + 7, + 0, + 1437, + 49, + 253, + 0, + 0, + 217, + 0, + 0, + 77, + 0, + 5, + 186, + 0, + 0 + ], + [ + 0, + 7, + 0, + 14, + 0, + 0, + 10, + 4344, + 415, + 65, + 0, + 10, + 472, + 0, + 33, + 1, + 4, + 0, + 4, + 0 + ], + [ + 0, + 29, + 0, + 0, + 0, + 0, + 0, + 0, + 6559, + 0, + 0, + 9, + 0, + 0, + 0, + 0, + 1, + 0, + 0, + 0 + ], + [ + 0, + 6, + 20, + 6, + 0, + 1, + 0, + 26, + 0, + 2071, + 0, + 0, + 16, + 14, + 5, + 1, + 0, + 0, + 0, + 0 + ], + [ + 0, + 34, + 886, + 0, + 14, + 0, + 2, + 0, + 0, + 5, + 222, + 0, + 0, + 0, + 5, + 0, + 30, + 4, + 0, + 0 + ], + [ + 0, + 17, + 0, + 0, + 91, + 0, + 14, + 5, + 10, + 0, + 0, + 6523, + 0, + 0, + 13, + 0, + 63, + 0, + 6, + 0 + ], + [ + 0, + 107, + 18, + 205, + 0, + 3, + 10, + 473, + 524, + 2954, + 6, + 129, + 1171, + 188, + 120, + 47, + 11, + 8, + 72, + 0 + ], + [ + 0, + 1, + 44, + 53, + 0, + 0, + 0, + 189, + 8, + 36, + 1, + 71, + 216, + 156, + 12, + 2, + 7, + 0, + 0, + 0 + ], + [ + 0, + 1027, + 18, + 38, + 0, + 0, + 10, + 43, + 402, + 0, + 0, + 58, + 0, + 0, + 1696, + 0, + 205, + 7, + 0, + 0 + ], + [ + 0, + 28, + 6, + 32, + 4, + 6, + 0, + 0, + 0, + 40, + 0, + 0, + 0, + 0, + 0, + 1793, + 0, + 0, + 0, + 0 + ], + [ + 0, + 51, + 0, + 8, + 0, + 0, + 0, + 19, + 875, + 0, + 0, + 14, + 0, + 0, + 41, + 0, + 1821, + 0, + 0, + 0 + ], + [ + 0, + 230, + 546, + 75, + 28, + 310, + 0, + 0, + 0, + 42, + 27, + 0, + 0, + 0, + 0, + 4, + 15, + 18, + 0, + 0 + ], + [ + 0, + 11, + 0, + 373, + 0, + 0, + 0, + 171, + 4, + 0, + 0, + 10, + 100, + 0, + 109, + 51, + 72, + 0, + 625, + 0 + ], + [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ] + ] + } + }, + { + "mode": "add", + "alpha": 0.1, + "metrics": { + "miou": 0.5259525387134086, + "oa": 0.7969708979124045, + "macro_f1": 0.6390991114711666, + "kappa": 0.7740240995256192, + "per_class_iou": [ + 0.7918943292133044, + 0.7796137766275134, + 0.8439109208854411, + 0.503158844765343, + 0.8964626070101761, + 0.6240601503759399, + 0.6614850588590402, + 0.6899053627760252, + 0.3884945834889802, + 0.1364329268292683, + 0.8610781600105444, + 0.1527777777777778, + 0.1535393818544367, + 0.3614328614328614, + 0.8037087290818634, + 0.507803790412486, + 0.006532066508313539, + 0.3048543689320388 + ], + "confusion_matrix": [ + [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + [ + 0, + 14928, + 103, + 52, + 4, + 11, + 22, + 0, + 476, + 0, + 3, + 205, + 70, + 2, + 589, + 20, + 286, + 4, + 5, + 0 + ], + [ + 0, + 185, + 11748, + 88, + 26, + 17, + 58, + 3, + 0, + 19, + 20, + 186, + 12, + 1, + 97, + 0, + 8, + 1, + 8, + 0 + ], + [ + 0, + 154, + 137, + 12619, + 9, + 9, + 2, + 227, + 0, + 29, + 0, + 0, + 2, + 5, + 61, + 145, + 34, + 10, + 425, + 0 + ], + [ + 0, + 22, + 635, + 27, + 1115, + 51, + 0, + 0, + 0, + 0, + 67, + 0, + 19, + 9, + 0, + 0, + 5, + 94, + 3, + 0 + ], + [ + 0, + 86, + 11, + 25, + 0, + 5550, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 19, + 7, + 0, + 91, + 0, + 0 + ], + [ + 0, + 86, + 67, + 4, + 5, + 0, + 1577, + 87, + 198, + 0, + 0, + 134, + 0, + 0, + 72, + 0, + 4, + 174, + 0, + 0 + ], + [ + 0, + 7, + 0, + 20, + 0, + 0, + 13, + 4383, + 415, + 54, + 0, + 6, + 447, + 0, + 27, + 1, + 4, + 0, + 2, + 0 + ], + [ + 0, + 28, + 0, + 0, + 0, + 0, + 0, + 0, + 6561, + 0, + 0, + 9, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + [ + 0, + 5, + 20, + 7, + 0, + 0, + 0, + 22, + 0, + 2080, + 0, + 0, + 17, + 10, + 3, + 2, + 0, + 0, + 0, + 0 + ], + [ + 0, + 38, + 934, + 0, + 12, + 0, + 0, + 0, + 0, + 2, + 179, + 0, + 0, + 0, + 5, + 0, + 30, + 2, + 0, + 0 + ], + [ + 0, + 14, + 0, + 0, + 88, + 0, + 12, + 6, + 11, + 0, + 0, + 6533, + 0, + 0, + 11, + 0, + 62, + 0, + 5, + 0 + ], + [ + 0, + 107, + 22, + 248, + 0, + 3, + 6, + 474, + 525, + 2970, + 6, + 154, + 1056, + 180, + 114, + 78, + 9, + 8, + 86, + 0 + ], + [ + 0, + 1, + 53, + 64, + 0, + 0, + 0, + 177, + 10, + 37, + 1, + 67, + 208, + 154, + 14, + 2, + 8, + 0, + 0, + 0 + ], + [ + 0, + 1034, + 18, + 36, + 0, + 0, + 6, + 44, + 395, + 0, + 0, + 60, + 0, + 0, + 1685, + 0, + 221, + 5, + 0, + 0 + ], + [ + 0, + 30, + 6, + 47, + 4, + 5, + 0, + 0, + 0, + 40, + 0, + 0, + 0, + 0, + 0, + 1777, + 0, + 0, + 0, + 0 + ], + [ + 0, + 51, + 0, + 8, + 0, + 0, + 0, + 17, + 875, + 0, + 0, + 15, + 0, + 0, + 41, + 0, + 1822, + 0, + 0, + 0 + ], + [ + 0, + 215, + 586, + 94, + 21, + 306, + 0, + 0, + 0, + 37, + 13, + 0, + 0, + 0, + 0, + 2, + 10, + 11, + 0, + 0 + ], + [ + 0, + 8, + 0, + 365, + 0, + 0, + 0, + 190, + 7, + 0, + 0, + 9, + 91, + 0, + 105, + 45, + 78, + 0, + 628, + 0 + ], + [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ] + ] + } + }, + { + "mode": "add", + "alpha": 0.25, + "metrics": { + "miou": 0.5121024916484683, + "oa": 0.7932434314114031, + "macro_f1": 0.621756895324494, + "kappa": 0.7695318237039902, + "per_class_iou": [ + 0.7963827304550758, + 0.7460549758208196, + 0.8307601727070522, + 0.43091655266757867, + 0.8977640959170448, + 0.664450527962456, + 0.6573167111902641, + 0.6998827667057445, + 0.3906689151208544, + 0.045746388443017656, + 0.8572740390922209, + 0.12222058606979826, + 0.13199577613516367, + 0.36880530973451325, + 0.7473498233215548, + 0.5065441381230855, + 0.0, + 0.3237113402061856 + ], + "confusion_matrix": [ + [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + [ + 0, + 15015, + 98, + 53, + 1, + 10, + 35, + 0, + 457, + 0, + 3, + 201, + 64, + 2, + 540, + 22, + 275, + 0, + 4, + 0 + ], + [ + 0, + 209, + 11725, + 90, + 31, + 16, + 64, + 3, + 0, + 18, + 10, + 190, + 13, + 1, + 93, + 0, + 8, + 1, + 5, + 0 + ], + [ + 0, + 138, + 166, + 12699, + 8, + 8, + 3, + 302, + 0, + 21, + 0, + 0, + 1, + 3, + 33, + 152, + 34, + 1, + 299, + 0 + ], + [ + 0, + 31, + 941, + 34, + 945, + 43, + 0, + 0, + 0, + 0, + 22, + 0, + 5, + 10, + 0, + 0, + 0, + 16, + 0, + 0 + ], + [ + 0, + 84, + 67, + 39, + 0, + 5541, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 19, + 3, + 0, + 36, + 0, + 0 + ], + [ + 0, + 85, + 61, + 2, + 4, + 1, + 1699, + 122, + 114, + 0, + 0, + 112, + 0, + 0, + 55, + 0, + 4, + 149, + 0, + 0 + ], + [ + 0, + 11, + 0, + 45, + 0, + 1, + 19, + 4429, + 408, + 34, + 0, + 5, + 396, + 0, + 20, + 1, + 8, + 0, + 2, + 0 + ], + [ + 0, + 21, + 0, + 0, + 0, + 0, + 0, + 1, + 6567, + 0, + 0, + 9, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + [ + 0, + 4, + 19, + 19, + 0, + 0, + 0, + 11, + 0, + 2085, + 0, + 0, + 17, + 7, + 1, + 3, + 0, + 0, + 0, + 0 + ], + [ + 0, + 53, + 1045, + 5, + 7, + 1, + 0, + 0, + 0, + 0, + 57, + 0, + 0, + 0, + 2, + 0, + 30, + 2, + 0, + 0 + ], + [ + 0, + 12, + 0, + 0, + 80, + 0, + 25, + 5, + 13, + 0, + 0, + 6535, + 0, + 0, + 10, + 0, + 58, + 0, + 4, + 0 + ], + [ + 0, + 132, + 34, + 340, + 0, + 2, + 2, + 513, + 495, + 3008, + 4, + 215, + 830, + 128, + 94, + 139, + 5, + 6, + 99, + 0 + ], + [ + 0, + 4, + 81, + 156, + 0, + 0, + 0, + 98, + 19, + 32, + 0, + 61, + 188, + 125, + 25, + 0, + 7, + 0, + 0, + 0 + ], + [ + 0, + 1053, + 19, + 32, + 0, + 0, + 1, + 46, + 387, + 0, + 0, + 58, + 0, + 0, + 1667, + 0, + 241, + 0, + 0, + 0 + ], + [ + 0, + 42, + 4, + 130, + 0, + 5, + 0, + 0, + 0, + 36, + 0, + 0, + 0, + 0, + 0, + 1692, + 0, + 0, + 0, + 0 + ], + [ + 0, + 47, + 0, + 13, + 0, + 0, + 0, + 16, + 880, + 0, + 0, + 17, + 0, + 0, + 36, + 0, + 1819, + 0, + 1, + 0 + ], + [ + 0, + 140, + 704, + 107, + 15, + 296, + 0, + 0, + 0, + 22, + 5, + 0, + 0, + 0, + 0, + 0, + 6, + 0, + 0, + 0 + ], + [ + 0, + 8, + 0, + 353, + 0, + 0, + 0, + 242, + 12, + 0, + 0, + 13, + 61, + 0, + 88, + 35, + 86, + 0, + 628, + 0 + ], + [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ] + ] + } + }, + { + "mode": "add", + "alpha": 0.5, + "metrics": { + "miou": 0.47879795955305693, + "oa": 0.7761377877272094, + "macro_f1": 0.5885884799695399, + "kappa": 0.7501747397027639, + "per_class_iou": [ + 0.7826931150293871, + 0.7103363914373089, + 0.7896527821538849, + 0.3770491803278688, + 0.8964564369310793, + 0.5934767989240081, + 0.6146362098138748, + 0.7097576806577239, + 0.3951321544019776, + 0.0024630541871921183, + 0.8289234760051881, + 0.056769230769230766, + 0.10692588092345079, + 0.35865075722808626, + 0.6246453182002432, + 0.4823125659978881, + 0.0, + 0.2884822389666308 + ], + "confusion_matrix": [ + [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + [ + 0, + 14915, + 200, + 80, + 0, + 14, + 173, + 1, + 400, + 1, + 0, + 145, + 47, + 2, + 489, + 25, + 282, + 4, + 2, + 0 + ], + [ + 0, + 295, + 11614, + 100, + 68, + 19, + 76, + 1, + 3, + 14, + 6, + 207, + 10, + 0, + 52, + 0, + 9, + 0, + 3, + 0 + ], + [ + 0, + 136, + 210, + 12531, + 7, + 3, + 3, + 428, + 2, + 15, + 0, + 0, + 2, + 0, + 20, + 298, + 58, + 0, + 155, + 0 + ], + [ + 0, + 40, + 1099, + 32, + 805, + 40, + 0, + 0, + 0, + 0, + 10, + 0, + 12, + 4, + 0, + 0, + 0, + 5, + 0, + 0 + ], + [ + 0, + 74, + 121, + 59, + 0, + 5515, + 0, + 0, + 0, + 0, + 0, + 14, + 0, + 0, + 2, + 1, + 2, + 1, + 0, + 0 + ], + [ + 0, + 84, + 61, + 4, + 2, + 14, + 1765, + 161, + 40, + 0, + 0, + 128, + 0, + 0, + 41, + 0, + 5, + 103, + 0, + 0 + ], + [ + 0, + 10, + 15, + 191, + 0, + 0, + 16, + 4359, + 400, + 0, + 0, + 11, + 201, + 0, + 1, + 0, + 174, + 0, + 1, + 0 + ], + [ + 0, + 13, + 0, + 0, + 0, + 0, + 1, + 3, + 6561, + 0, + 0, + 18, + 0, + 0, + 2, + 0, + 0, + 0, + 0, + 0 + ], + [ + 0, + 11, + 19, + 39, + 0, + 0, + 0, + 0, + 0, + 2078, + 0, + 0, + 9, + 1, + 0, + 9, + 0, + 0, + 0, + 0 + ], + [ + 0, + 86, + 1082, + 17, + 0, + 0, + 0, + 0, + 0, + 0, + 3, + 0, + 0, + 0, + 0, + 0, + 14, + 0, + 0, + 0 + ], + [ + 0, + 13, + 1, + 0, + 10, + 0, + 239, + 8, + 17, + 0, + 0, + 6391, + 0, + 0, + 7, + 0, + 56, + 0, + 0, + 0 + ], + [ + 0, + 245, + 137, + 475, + 0, + 2, + 1, + 628, + 489, + 3014, + 0, + 253, + 369, + 20, + 58, + 189, + 4, + 0, + 162, + 0 + ], + [ + 0, + 8, + 112, + 211, + 0, + 0, + 0, + 32, + 51, + 26, + 0, + 33, + 153, + 88, + 60, + 12, + 10, + 0, + 0, + 0 + ], + [ + 0, + 1041, + 21, + 26, + 0, + 0, + 57, + 55, + 370, + 0, + 0, + 122, + 0, + 0, + 1563, + 0, + 249, + 0, + 0, + 0 + ], + [ + 0, + 63, + 0, + 276, + 0, + 7, + 0, + 0, + 0, + 22, + 0, + 0, + 0, + 0, + 0, + 1541, + 0, + 0, + 0, + 0 + ], + [ + 0, + 34, + 0, + 25, + 0, + 0, + 0, + 21, + 843, + 0, + 0, + 24, + 0, + 0, + 46, + 0, + 1827, + 0, + 9, + 0 + ], + [ + 0, + 114, + 795, + 120, + 1, + 264, + 0, + 0, + 0, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + [ + 0, + 9, + 0, + 346, + 0, + 0, + 0, + 375, + 31, + 0, + 0, + 13, + 20, + 0, + 76, + 24, + 96, + 0, + 536, + 0 + ], + [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ] + ] + } + }, + { + "mode": "replace", + "alpha": 0.1, + "metrics": { + "miou": 0.5213330479464527, + "oa": 0.7902336093229507, + "macro_f1": 0.6340367648422165, + "kappa": 0.7669074287926599, + "per_class_iou": [ + 0.7871194753958523, + 0.7941810344827587, + 0.809841141626279, + 0.5288028802880288, + 0.9014084507042254, + 0.6280606296152351, + 0.6194052267948332, + 0.6937783880849265, + 0.38979860718991155, + 0.1461877756773787, + 0.8618143459915611, + 0.18828980623420388, + 0.11239193083573487, + 0.3337386018237082, + 0.8287575616565844, + 0.507959067652075, + 0.016981132075471698, + 0.23547880690737832 + ], + "confusion_matrix": [ + [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + [ + 0, + 14764, + 117, + 51, + 53, + 14, + 51, + 3, + 480, + 0, + 3, + 197, + 82, + 3, + 681, + 24, + 248, + 5, + 4, + 0 + ], + [ + 0, + 115, + 11792, + 78, + 11, + 16, + 56, + 3, + 0, + 20, + 56, + 188, + 22, + 5, + 96, + 0, + 7, + 4, + 8, + 0 + ], + [ + 0, + 155, + 129, + 12031, + 17, + 10, + 4, + 250, + 0, + 26, + 0, + 0, + 2, + 5, + 137, + 127, + 38, + 0, + 937, + 0 + ], + [ + 0, + 23, + 484, + 30, + 1175, + 42, + 5, + 0, + 0, + 0, + 234, + 0, + 10, + 7, + 0, + 0, + 21, + 12, + 4, + 0 + ], + [ + 0, + 68, + 22, + 27, + 0, + 5568, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 18, + 7, + 2, + 77, + 0, + 0 + ], + [ + 0, + 62, + 71, + 3, + 16, + 0, + 1616, + 48, + 189, + 0, + 3, + 146, + 0, + 0, + 81, + 0, + 4, + 169, + 0, + 0 + ], + [ + 0, + 5, + 1, + 14, + 0, + 0, + 15, + 4124, + 334, + 110, + 0, + 9, + 663, + 1, + 75, + 4, + 8, + 0, + 16, + 0 + ], + [ + 0, + 19, + 0, + 0, + 0, + 0, + 1, + 0, + 6568, + 0, + 0, + 9, + 0, + 0, + 0, + 0, + 1, + 0, + 0, + 0 + ], + [ + 0, + 5, + 21, + 5, + 0, + 0, + 0, + 16, + 0, + 2071, + 0, + 0, + 24, + 21, + 3, + 0, + 0, + 0, + 0, + 0 + ], + [ + 0, + 26, + 900, + 0, + 2, + 0, + 0, + 0, + 0, + 2, + 232, + 0, + 0, + 0, + 5, + 0, + 32, + 3, + 0, + 0 + ], + [ + 0, + 7, + 1, + 0, + 66, + 0, + 24, + 4, + 11, + 0, + 0, + 6536, + 0, + 0, + 19, + 0, + 66, + 0, + 8, + 0 + ], + [ + 0, + 114, + 22, + 166, + 0, + 4, + 1, + 466, + 494, + 2872, + 0, + 123, + 1341, + 203, + 155, + 24, + 8, + 9, + 44, + 0 + ], + [ + 0, + 2, + 54, + 60, + 0, + 0, + 0, + 180, + 9, + 40, + 1, + 97, + 210, + 117, + 15, + 4, + 6, + 0, + 1, + 0 + ], + [ + 0, + 1038, + 18, + 37, + 0, + 2, + 7, + 53, + 450, + 0, + 0, + 60, + 0, + 0, + 1647, + 0, + 176, + 16, + 0, + 0 + ], + [ + 0, + 26, + 10, + 43, + 7, + 6, + 0, + 0, + 0, + 36, + 0, + 0, + 0, + 0, + 0, + 1781, + 0, + 0, + 0, + 0 + ], + [ + 0, + 53, + 0, + 6, + 0, + 0, + 0, + 39, + 902, + 0, + 0, + 8, + 0, + 0, + 34, + 0, + 1787, + 0, + 0, + 0 + ], + [ + 0, + 246, + 521, + 45, + 3, + 294, + 0, + 0, + 0, + 41, + 88, + 0, + 0, + 0, + 0, + 2, + 28, + 27, + 0, + 0 + ], + [ + 0, + 13, + 0, + 423, + 0, + 0, + 1, + 217, + 0, + 0, + 0, + 5, + 63, + 0, + 112, + 48, + 44, + 0, + 600, + 0 + ], + [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ] + ] + } + }, + { + "mode": "replace", + "alpha": 0.25, + "metrics": { + "miou": 0.5141071221282871, + "oa": 0.7903835648718416, + "macro_f1": 0.6257550803566504, + "kappa": 0.7666269632266423, + "per_class_iou": [ + 0.7922733552981188, + 0.7576910673976137, + 0.8142658638258453, + 0.445777572681126, + 0.9018335226350803, + 0.6722007722007722, + 0.6265505020673361, + 0.6983418367346939, + 0.39612976664769495, + 0.09333333333333334, + 0.8617554032683183, + 0.16498993963782696, + 0.11546184738955824, + 0.33734177215189876, + 0.7878228782287823, + 0.5093325791855203, + 0.00922266139657444, + 0.2696035242290749 + ], + "confusion_matrix": [ + [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + [ + 0, + 14909, + 112, + 49, + 35, + 15, + 56, + 2, + 461, + 0, + 3, + 178, + 70, + 2, + 607, + 28, + 244, + 5, + 4, + 0 + ], + [ + 0, + 161, + 11748, + 88, + 11, + 15, + 60, + 3, + 0, + 19, + 47, + 191, + 20, + 2, + 94, + 0, + 6, + 4, + 8, + 0 + ], + [ + 0, + 126, + 147, + 12306, + 8, + 9, + 2, + 331, + 0, + 21, + 0, + 0, + 0, + 4, + 73, + 135, + 35, + 0, + 671, + 0 + ], + [ + 0, + 34, + 905, + 35, + 966, + 35, + 0, + 0, + 0, + 0, + 47, + 0, + 3, + 6, + 0, + 0, + 8, + 8, + 0, + 0 + ], + [ + 0, + 73, + 61, + 32, + 0, + 5558, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 18, + 7, + 1, + 39, + 0, + 0 + ], + [ + 0, + 67, + 69, + 1, + 11, + 1, + 1741, + 91, + 102, + 0, + 1, + 109, + 0, + 0, + 65, + 0, + 4, + 146, + 0, + 0 + ], + [ + 0, + 6, + 0, + 36, + 0, + 1, + 16, + 4243, + 334, + 88, + 0, + 7, + 555, + 0, + 70, + 2, + 13, + 0, + 8, + 0 + ], + [ + 0, + 15, + 0, + 0, + 0, + 0, + 2, + 1, + 6570, + 0, + 0, + 10, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + [ + 0, + 4, + 20, + 9, + 0, + 0, + 0, + 12, + 0, + 2088, + 0, + 0, + 22, + 10, + 1, + 0, + 0, + 0, + 0, + 0 + ], + [ + 0, + 31, + 1007, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 126, + 0, + 0, + 0, + 5, + 0, + 32, + 1, + 0, + 0 + ], + [ + 0, + 11, + 0, + 0, + 51, + 0, + 41, + 5, + 10, + 0, + 0, + 6539, + 0, + 0, + 15, + 0, + 64, + 0, + 6, + 0 + ], + [ + 0, + 122, + 26, + 257, + 0, + 4, + 1, + 492, + 529, + 2873, + 0, + 181, + 1148, + 176, + 130, + 45, + 7, + 8, + 47, + 0 + ], + [ + 0, + 1, + 69, + 122, + 0, + 0, + 0, + 116, + 18, + 35, + 0, + 86, + 197, + 115, + 27, + 4, + 6, + 0, + 0, + 0 + ], + [ + 0, + 1055, + 19, + 33, + 0, + 0, + 4, + 52, + 455, + 0, + 0, + 67, + 0, + 0, + 1599, + 0, + 208, + 12, + 0, + 0 + ], + [ + 0, + 29, + 6, + 124, + 4, + 6, + 0, + 0, + 0, + 32, + 0, + 0, + 0, + 0, + 0, + 1708, + 0, + 0, + 0, + 0 + ], + [ + 0, + 52, + 0, + 7, + 0, + 0, + 0, + 27, + 898, + 0, + 0, + 8, + 0, + 0, + 36, + 0, + 1801, + 0, + 0, + 0 + ], + [ + 0, + 240, + 587, + 62, + 0, + 288, + 0, + 0, + 0, + 37, + 50, + 0, + 0, + 0, + 0, + 0, + 17, + 14, + 0, + 0 + ], + [ + 0, + 11, + 0, + 390, + 0, + 0, + 0, + 261, + 3, + 0, + 0, + 9, + 45, + 0, + 95, + 38, + 62, + 0, + 612, + 0 + ], + [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ] + ] + } + }, + { + "mode": "replace", + "alpha": 0.5, + "metrics": { + "miou": 0.4846937000291392, + "oa": 0.7792547209220124, + "macro_f1": 0.5955672275606292, + "kappa": 0.7537344299687712, + "per_class_iou": [ + 0.787392037076048, + 0.7167466469792051, + 0.7873257287705957, + 0.4039829302987198, + 0.9017142857142857, + 0.6008064516129032, + 0.6165434906196703, + 0.7163902226102139, + 0.4065183450429352, + 0.008025682182985553, + 0.833052495139339, + 0.09134687735139202, + 0.10574712643678161, + 0.34994285714285717, + 0.6304523424878837, + 0.4753053637812002, + 0.0, + 0.2931937172774869 + ], + "confusion_matrix": [ + [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + [ + 0, + 14951, + 177, + 80, + 2, + 15, + 178, + 1, + 386, + 1, + 0, + 162, + 51, + 2, + 478, + 29, + 262, + 5, + 0, + 0 + ], + [ + 0, + 254, + 11650, + 95, + 47, + 15, + 76, + 1, + 2, + 14, + 28, + 197, + 17, + 1, + 68, + 0, + 7, + 0, + 5, + 0 + ], + [ + 0, + 124, + 212, + 12424, + 7, + 3, + 3, + 438, + 2, + 11, + 0, + 0, + 1, + 0, + 15, + 329, + 57, + 0, + 242, + 0 + ], + [ + 0, + 39, + 1051, + 41, + 852, + 38, + 0, + 0, + 0, + 0, + 14, + 0, + 7, + 1, + 0, + 0, + 0, + 4, + 0, + 0 + ], + [ + 0, + 73, + 121, + 50, + 0, + 5523, + 0, + 0, + 0, + 0, + 0, + 15, + 0, + 0, + 2, + 2, + 3, + 0, + 0, + 0 + ], + [ + 0, + 75, + 71, + 2, + 5, + 13, + 1788, + 139, + 42, + 0, + 0, + 119, + 0, + 0, + 44, + 0, + 4, + 106, + 0, + 0 + ], + [ + 0, + 7, + 11, + 192, + 0, + 0, + 16, + 4338, + 264, + 4, + 0, + 12, + 346, + 0, + 3, + 1, + 180, + 0, + 5, + 0 + ], + [ + 0, + 10, + 0, + 0, + 0, + 0, + 1, + 3, + 6565, + 0, + 0, + 17, + 0, + 0, + 2, + 0, + 0, + 0, + 0, + 0 + ], + [ + 0, + 7, + 19, + 35, + 0, + 0, + 0, + 0, + 0, + 2083, + 0, + 0, + 13, + 6, + 0, + 3, + 0, + 0, + 0, + 0 + ], + [ + 0, + 69, + 1083, + 12, + 0, + 0, + 0, + 0, + 0, + 0, + 10, + 0, + 0, + 0, + 2, + 0, + 26, + 0, + 0, + 0 + ], + [ + 0, + 10, + 0, + 0, + 1, + 0, + 217, + 8, + 19, + 0, + 0, + 6427, + 0, + 0, + 4, + 0, + 56, + 0, + 0, + 0 + ], + [ + 0, + 236, + 98, + 443, + 0, + 0, + 1, + 602, + 521, + 2869, + 0, + 240, + 607, + 64, + 70, + 166, + 3, + 1, + 125, + 0 + ], + [ + 0, + 7, + 115, + 209, + 0, + 0, + 0, + 8, + 47, + 27, + 0, + 54, + 154, + 92, + 62, + 12, + 9, + 0, + 0, + 0 + ], + [ + 0, + 1051, + 21, + 28, + 0, + 0, + 76, + 58, + 365, + 0, + 0, + 131, + 0, + 0, + 1531, + 0, + 241, + 0, + 2, + 0 + ], + [ + 0, + 56, + 2, + 262, + 0, + 7, + 0, + 0, + 0, + 20, + 0, + 0, + 0, + 0, + 0, + 1561, + 1, + 0, + 0, + 0 + ], + [ + 0, + 44, + 0, + 16, + 0, + 0, + 0, + 22, + 894, + 0, + 0, + 14, + 1, + 0, + 43, + 0, + 1790, + 0, + 5, + 0 + ], + [ + 0, + 136, + 796, + 104, + 0, + 245, + 0, + 0, + 0, + 12, + 2, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + [ + 0, + 10, + 0, + 343, + 0, + 0, + 0, + 377, + 24, + 0, + 0, + 12, + 9, + 0, + 78, + 25, + 88, + 0, + 560, + 0 + ], + [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ] + ] + } + } + ], + "reference_val_miou": 0.5256398451814701, + "delta_val_pp": 0.03126935319385238, + "patch_bootstrap_delta_interval_pp": [ + -0.6300265253503862, + 0.811474272092648 + ], + "bootstrap_caveat": "descriptive, after validation selection; not an independent significance test", + "selection_split": "validation", + "test_used_for_selection": false + }, + "test_policy": "exploratory all-variants sweep explicitly requested by user; no test retuning", + "patches": 482 +} \ No newline at end of file diff --git a/ablations/10_plateau_breakthrough/workspace/convnext_research_20261010/32X32_temporal_cnv2_k7_seed3407/best.tar b/ablations/10_plateau_breakthrough/workspace/convnext_research_20261010/32X32_temporal_cnv2_k7_seed3407/best.tar new file mode 100644 index 0000000000000000000000000000000000000000..761ab7abbedfb5d3e78b14860d9bb1e0bccd491b --- /dev/null +++ b/ablations/10_plateau_breakthrough/workspace/convnext_research_20261010/32X32_temporal_cnv2_k7_seed3407/best.tar @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:a749cd9edb12b55586853c125e2d9757ab9efce96a99356a6cfd9986fa815718 +size 602102 diff --git a/ablations/10_plateau_breakthrough/workspace/convnext_research_20261010/32X32_temporal_cnv2_k7_seed3407/config.json b/ablations/10_plateau_breakthrough/workspace/convnext_research_20261010/32X32_temporal_cnv2_k7_seed3407/config.json new file mode 100644 index 0000000000000000000000000000000000000000..a0750b3a75dc27645c8d61f4ac985f0a4eae2f0f --- /dev/null +++ b/ablations/10_plateau_breakthrough/workspace/convnext_research_20261010/32X32_temporal_cnv2_k7_seed3407/config.json @@ -0,0 +1,13 @@ +{ + "kind": "temporal_cnv2_k7", + "seed": 3407, + "epochs": 100, + "parameters": 147090, + "lr": 0.001, + "wd": 0.01, + "warmup_epochs": 3, + "clip": 1.0, + "label_smoothing": 0.05, + "pretrained": false, + "architecture_scope": "custom PASTIS adaptation, not official ImageNet model reproduction" +} \ No newline at end of file diff --git a/ablations/10_plateau_breakthrough/workspace/convnext_research_20261010/32X32_temporal_cnv2_k7_seed3407/history.json b/ablations/10_plateau_breakthrough/workspace/convnext_research_20261010/32X32_temporal_cnv2_k7_seed3407/history.json new file mode 100644 index 0000000000000000000000000000000000000000..f65c162c17b6a83424337515ebdf39d04e5bc6b6 --- /dev/null +++ b/ablations/10_plateau_breakthrough/workspace/convnext_research_20261010/32X32_temporal_cnv2_k7_seed3407/history.json @@ -0,0 +1,802 @@ +[ + { + "epoch": 1, + "loss": 2.811934753468162, + "val_miou": 0.03259105423044115, + "best_val_miou": 0.03259105423044115, + "seconds": 14.474717658013105, + "peak_allocated_gb": 2.380270592 + }, + { + "epoch": 2, + "loss": 2.4985978289654383, + "val_miou": 0.03836354824542278, + "best_val_miou": 0.03836354824542278, + "seconds": 13.02526007592678, + "peak_allocated_gb": 2.380270592 + }, + { + "epoch": 3, + "loss": 2.412319867234481, + "val_miou": 0.06412016511117703, + "best_val_miou": 0.06412016511117703, + "seconds": 12.925543594174087, + "peak_allocated_gb": 2.380270592 + }, + { + "epoch": 4, + "loss": 2.218131529657464, + "val_miou": 0.06005287087615639, + "best_val_miou": 0.06412016511117703, + "seconds": 12.700602853205055, + "peak_allocated_gb": 2.380270592 + }, + { + "epoch": 5, + "loss": 2.1057063952872626, + "val_miou": 0.13270095288895967, + "best_val_miou": 0.13270095288895967, + "seconds": 12.947387031745166, + "peak_allocated_gb": 2.380270592 + }, + { + "epoch": 6, + "loss": 1.920314045328843, + "val_miou": 0.15139867042359587, + "best_val_miou": 0.15139867042359587, + "seconds": 13.033991601783782, + "peak_allocated_gb": 2.380270592 + }, + { + "epoch": 7, + "loss": 1.8385815126331229, + "val_miou": 0.1610879423391421, + "best_val_miou": 0.1610879423391421, + "seconds": 13.008204936981201, + "peak_allocated_gb": 2.380270592 + }, + { + "epoch": 8, + "loss": 1.764160090763318, + "val_miou": 0.21304830744143788, + "best_val_miou": 0.21304830744143788, + "seconds": 13.153133924119174, + "peak_allocated_gb": 2.380270592 + }, + { + "epoch": 9, + "loss": 1.6438933697186018, + "val_miou": 0.1818941976013514, + "best_val_miou": 0.21304830744143788, + "seconds": 12.92294156178832, + "peak_allocated_gb": 2.380270592 + }, + { + "epoch": 10, + "loss": 1.566079598508383, + "val_miou": 0.22303134048993714, + "best_val_miou": 0.22303134048993714, + "seconds": 12.907613144721836, + "peak_allocated_gb": 2.380270592 + }, + { + "epoch": 11, + "loss": 1.4630762385694605, + "val_miou": 0.21355402993716527, + "best_val_miou": 0.22303134048993714, + "seconds": 13.295026268810034, + "peak_allocated_gb": 2.380270592 + }, + { + "epoch": 12, + "loss": 1.4688084925475873, + "val_miou": 0.2533623385760338, + "best_val_miou": 0.2533623385760338, + "seconds": 13.041051134001464, + "peak_allocated_gb": 2.380270592 + }, + { + "epoch": 13, + "loss": 1.3785136781240765, + "val_miou": 0.22672018019373302, + "best_val_miou": 0.2533623385760338, + "seconds": 13.297699768096209, + "peak_allocated_gb": 2.380270592 + }, + { + "epoch": 14, + "loss": 1.2727385261341144, + "val_miou": 0.2627118380270966, + "best_val_miou": 0.2627118380270966, + "seconds": 13.346499328035861, + "peak_allocated_gb": 2.380270592 + }, + { + "epoch": 15, + "loss": 1.1604916563159542, + "val_miou": 0.2824818061860801, + "best_val_miou": 0.2824818061860801, + "seconds": 12.983623693231493, + "peak_allocated_gb": 2.380270592 + }, + { + "epoch": 16, + "loss": 1.1432646889435618, + "val_miou": 0.3179657493685947, + "best_val_miou": 0.3179657493685947, + "seconds": 13.016445821151137, + "peak_allocated_gb": 2.380270592 + }, + { + "epoch": 17, + "loss": 1.1277872378888882, + "val_miou": 0.3161722908712876, + "best_val_miou": 0.3179657493685947, + "seconds": 13.04801623383537, + "peak_allocated_gb": 2.380270592 + }, + { + "epoch": 18, + "loss": 1.1008934586455947, + "val_miou": 0.29025343666350045, + "best_val_miou": 0.3179657493685947, + "seconds": 13.084401647094637, + "peak_allocated_gb": 2.380270592 + }, + { + "epoch": 19, + "loss": 1.0625636114885932, + "val_miou": 0.29979702665470437, + "best_val_miou": 0.3179657493685947, + "seconds": 13.109045467805117, + "peak_allocated_gb": 2.380270592 + }, + { + "epoch": 20, + "loss": 0.9545298865751216, + "val_miou": 0.2987079470851361, + "best_val_miou": 0.3179657493685947, + "seconds": 13.13367805397138, + "peak_allocated_gb": 2.380270592 + }, + { + "epoch": 21, + "loss": 0.9269649382484587, + "val_miou": 0.3024878296268606, + "best_val_miou": 0.3179657493685947, + "seconds": 12.825136893894523, + "peak_allocated_gb": 2.380270592 + }, + { + "epoch": 22, + "loss": 0.8964440606926617, + "val_miou": 0.3268434182964518, + "best_val_miou": 0.3268434182964518, + "seconds": 12.97046902216971, + "peak_allocated_gb": 2.380270592 + }, + { + "epoch": 23, + "loss": 0.881178370039714, + "val_miou": 0.30841985504402974, + "best_val_miou": 0.3268434182964518, + "seconds": 12.92986011877656, + "peak_allocated_gb": 2.380270592 + }, + { + "epoch": 24, + "loss": 0.7955590357121668, + "val_miou": 0.3511430990443658, + "best_val_miou": 0.3511430990443658, + "seconds": 13.380660978145897, + "peak_allocated_gb": 2.380270592 + }, + { + "epoch": 25, + "loss": 0.7817149683833122, + "val_miou": 0.34598661863526586, + "best_val_miou": 0.3511430990443658, + "seconds": 13.310976854059845, + "peak_allocated_gb": 2.380270592 + }, + { + "epoch": 26, + "loss": 0.7942119703481072, + "val_miou": 0.33494262821424803, + "best_val_miou": 0.3511430990443658, + "seconds": 12.907561672851443, + "peak_allocated_gb": 2.380270592 + }, + { + "epoch": 27, + "loss": 0.7335837797114724, + "val_miou": 0.35561069367024295, + "best_val_miou": 0.35561069367024295, + "seconds": 12.846101528033614, + "peak_allocated_gb": 2.380270592 + }, + { + "epoch": 28, + "loss": 0.7306551611737201, + "val_miou": 0.3635431095033786, + "best_val_miou": 0.3635431095033786, + "seconds": 13.347974978387356, + "peak_allocated_gb": 2.380270592 + }, + { + "epoch": 29, + "loss": 0.7120941469543859, + "val_miou": 0.35162180755062844, + "best_val_miou": 0.3635431095033786, + "seconds": 13.322966111823916, + "peak_allocated_gb": 2.380270592 + }, + { + "epoch": 30, + "loss": 0.6603872983863479, + "val_miou": 0.30540276404854905, + "best_val_miou": 0.3635431095033786, + "seconds": 13.00875642709434, + "peak_allocated_gb": 2.380270592 + }, + { + "epoch": 31, + "loss": 0.6398538896127751, + "val_miou": 0.30960296331967513, + "best_val_miou": 0.3635431095033786, + "seconds": 13.209418473299593, + "peak_allocated_gb": 2.380270592 + }, + { + "epoch": 32, + "loss": 0.6681993991920823, + "val_miou": 0.3615607701918586, + "best_val_miou": 0.3635431095033786, + "seconds": 13.21136816777289, + "peak_allocated_gb": 2.380270592 + }, + { + "epoch": 33, + "loss": 0.6515845472091123, + "val_miou": 0.3189017419768811, + "best_val_miou": 0.3635431095033786, + "seconds": 13.098433565814048, + "peak_allocated_gb": 2.380270592 + }, + { + "epoch": 34, + "loss": 0.6124912680763948, + "val_miou": 0.3565458431313428, + "best_val_miou": 0.3635431095033786, + "seconds": 13.094387711025774, + "peak_allocated_gb": 2.380270592 + }, + { + "epoch": 35, + "loss": 0.6026314163678571, + "val_miou": 0.3565655835025767, + "best_val_miou": 0.3635431095033786, + "seconds": 13.108337964862585, + "peak_allocated_gb": 2.380270592 + }, + { + "epoch": 36, + "loss": 0.568521254548901, + "val_miou": 0.36182279748651897, + "best_val_miou": 0.3635431095033786, + "seconds": 13.318483429029584, + "peak_allocated_gb": 2.380270592 + }, + { + "epoch": 37, + "loss": 0.5620784924218529, + "val_miou": 0.35550901580794175, + "best_val_miou": 0.3635431095033786, + "seconds": 13.374920389149338, + "peak_allocated_gb": 2.380270592 + }, + { + "epoch": 38, + "loss": 0.5404776609257648, + "val_miou": 0.3726217000401475, + "best_val_miou": 0.3726217000401475, + "seconds": 12.965537350159138, + "peak_allocated_gb": 2.380270592 + }, + { + "epoch": 39, + "loss": 0.5555238421810301, + "val_miou": 0.3605249101582727, + "best_val_miou": 0.3726217000401475, + "seconds": 12.925191367045045, + "peak_allocated_gb": 2.380270592 + }, + { + "epoch": 40, + "loss": 0.5191819954075312, + "val_miou": 0.3612473661714574, + "best_val_miou": 0.3726217000401475, + "seconds": 13.20363571960479, + "peak_allocated_gb": 2.380270592 + }, + { + "epoch": 41, + "loss": 0.5532692811991039, + "val_miou": 0.36419342698744356, + "best_val_miou": 0.3726217000401475, + "seconds": 13.045701694209129, + "peak_allocated_gb": 2.380270592 + }, + { + "epoch": 42, + "loss": 0.5037533276175198, + "val_miou": 0.3641018668341712, + "best_val_miou": 0.3726217000401475, + "seconds": 13.027034720871598, + "peak_allocated_gb": 2.380270592 + }, + { + "epoch": 43, + "loss": 0.5119780011867222, + "val_miou": 0.3493656245282797, + "best_val_miou": 0.3726217000401475, + "seconds": 12.927520007826388, + "peak_allocated_gb": 2.380270592 + }, + { + "epoch": 44, + "loss": 0.510971203838524, + "val_miou": 0.37635924310145746, + "best_val_miou": 0.37635924310145746, + "seconds": 12.849299333058298, + "peak_allocated_gb": 2.380270592 + }, + { + "epoch": 45, + "loss": 0.4868154059115209, + "val_miou": 0.3489932273805634, + "best_val_miou": 0.37635924310145746, + "seconds": 13.155061011202633, + "peak_allocated_gb": 2.380270592 + }, + { + "epoch": 46, + "loss": 0.5039452992771801, + "val_miou": 0.3683302846746596, + "best_val_miou": 0.37635924310145746, + "seconds": 12.634750047698617, + "peak_allocated_gb": 2.380270592 + }, + { + "epoch": 47, + "loss": 0.45419341482614217, + "val_miou": 0.365952460081049, + "best_val_miou": 0.37635924310145746, + "seconds": 12.901116816792637, + "peak_allocated_gb": 2.380270592 + }, + { + "epoch": 48, + "loss": 0.46907050123340205, + "val_miou": 0.34394608747434813, + "best_val_miou": 0.37635924310145746, + "seconds": 12.783903228119016, + "peak_allocated_gb": 2.380270592 + }, + { + "epoch": 49, + "loss": 0.4663883902524647, + "val_miou": 0.35985336488629344, + "best_val_miou": 0.37635924310145746, + "seconds": 13.104865628294647, + "peak_allocated_gb": 2.380270592 + }, + { + "epoch": 50, + "loss": 0.4325641225043096, + "val_miou": 0.36032675709721834, + "best_val_miou": 0.37635924310145746, + "seconds": 12.862108546774834, + "peak_allocated_gb": 2.380270592 + }, + { + "epoch": 51, + "loss": 0.45935596172746856, + "val_miou": 0.38626894713822096, + "best_val_miou": 0.38626894713822096, + "seconds": 13.153095779940486, + "peak_allocated_gb": 2.380270592 + }, + { + "epoch": 52, + "loss": 0.45962823927402496, + "val_miou": 0.35536921374855945, + "best_val_miou": 0.38626894713822096, + "seconds": 13.164663249161094, + "peak_allocated_gb": 2.380270592 + }, + { + "epoch": 53, + "loss": 0.43639573180361796, + "val_miou": 0.3763787962859115, + "best_val_miou": 0.38626894713822096, + "seconds": 13.367173319216818, + "peak_allocated_gb": 2.380270592 + }, + { + "epoch": 54, + "loss": 0.45197995399173935, + "val_miou": 0.37545529644489983, + "best_val_miou": 0.38626894713822096, + "seconds": 12.828115368261933, + "peak_allocated_gb": 2.380270592 + }, + { + "epoch": 55, + "loss": 0.46425685482589824, + "val_miou": 0.3766580509216111, + "best_val_miou": 0.38626894713822096, + "seconds": 12.685781407169998, + "peak_allocated_gb": 2.380270592 + }, + { + "epoch": 56, + "loss": 0.42391658103779745, + "val_miou": 0.3817466536469246, + "best_val_miou": 0.38626894713822096, + "seconds": 12.939464775845408, + "peak_allocated_gb": 2.380270592 + }, + { + "epoch": 57, + "loss": 0.4360115030094197, + "val_miou": 0.3859339142086895, + "best_val_miou": 0.38626894713822096, + "seconds": 12.778814789839089, + "peak_allocated_gb": 2.380270592 + }, + { + "epoch": 58, + "loss": 0.42805012158657374, + "val_miou": 0.3830244623497736, + "best_val_miou": 0.38626894713822096, + "seconds": 12.788544923998415, + "peak_allocated_gb": 2.380270592 + }, + { + "epoch": 59, + "loss": 0.43026349222973775, + "val_miou": 0.36708292212749416, + "best_val_miou": 0.38626894713822096, + "seconds": 13.295291475951672, + "peak_allocated_gb": 2.380270592 + }, + { + "epoch": 60, + "loss": 0.4228637191025834, + "val_miou": 0.3834402334412626, + "best_val_miou": 0.38626894713822096, + "seconds": 13.08747905632481, + "peak_allocated_gb": 2.380270592 + }, + { + "epoch": 61, + "loss": 0.427839952864145, + "val_miou": 0.37386212302038224, + "best_val_miou": 0.38626894713822096, + "seconds": 12.903076543007046, + "peak_allocated_gb": 2.380270592 + }, + { + "epoch": 62, + "loss": 0.40892163350393895, + "val_miou": 0.37859213935248753, + "best_val_miou": 0.38626894713822096, + "seconds": 12.889184388332069, + "peak_allocated_gb": 2.380270592 + }, + { + "epoch": 63, + "loss": 0.4082036167383194, + "val_miou": 0.3850458816331566, + "best_val_miou": 0.38626894713822096, + "seconds": 13.125948895234615, + "peak_allocated_gb": 2.380270592 + }, + { + "epoch": 64, + "loss": 0.4000321371774924, + "val_miou": 0.3795685169560153, + "best_val_miou": 0.38626894713822096, + "seconds": 13.391910602338612, + "peak_allocated_gb": 2.380270592 + }, + { + "epoch": 65, + "loss": 0.41272674736223725, + "val_miou": 0.3832169065700197, + "best_val_miou": 0.38626894713822096, + "seconds": 13.088619598653167, + "peak_allocated_gb": 2.380270592 + }, + { + "epoch": 66, + "loss": 0.41556491938076523, + "val_miou": 0.3789174160614141, + "best_val_miou": 0.38626894713822096, + "seconds": 12.980451946612448, + "peak_allocated_gb": 2.380270592 + }, + { + "epoch": 67, + "loss": 0.408114151342919, + "val_miou": 0.3825047266747244, + "best_val_miou": 0.38626894713822096, + "seconds": 13.02194728096947, + "peak_allocated_gb": 2.380270592 + }, + { + "epoch": 68, + "loss": 0.3988859124089542, + "val_miou": 0.37722492636469146, + "best_val_miou": 0.38626894713822096, + "seconds": 13.03752631181851, + "peak_allocated_gb": 2.380270592 + }, + { + "epoch": 69, + "loss": 0.3956905866139813, + "val_miou": 0.3806688642442269, + "best_val_miou": 0.38626894713822096, + "seconds": 12.996865841094404, + "peak_allocated_gb": 2.380270592 + }, + { + "epoch": 70, + "loss": 0.40450737115583923, + "val_miou": 0.3812543800545847, + "best_val_miou": 0.38626894713822096, + "seconds": 12.564564633183181, + "peak_allocated_gb": 2.380270592 + }, + { + "epoch": 71, + "loss": 0.386772715731671, + "val_miou": 0.3862321848662108, + "best_val_miou": 0.38626894713822096, + "seconds": 12.951855098828673, + "peak_allocated_gb": 2.380270592 + }, + { + "epoch": 72, + "loss": 0.39960124422060816, + "val_miou": 0.39507662565226265, + "best_val_miou": 0.39507662565226265, + "seconds": 12.889916499145329, + "peak_allocated_gb": 2.380270592 + }, + { + "epoch": 73, + "loss": 0.3833079934120178, + "val_miou": 0.40321619164025735, + "best_val_miou": 0.40321619164025735, + "seconds": 13.126093720085919, + "peak_allocated_gb": 2.380270592 + }, + { + "epoch": 74, + "loss": 0.40294508675211355, + "val_miou": 0.3804039038921243, + "best_val_miou": 0.40321619164025735, + "seconds": 13.082349495962262, + "peak_allocated_gb": 2.380270592 + }, + { + "epoch": 75, + "loss": 0.3979687973072654, + "val_miou": 0.3878300769219514, + "best_val_miou": 0.40321619164025735, + "seconds": 13.056732122320682, + "peak_allocated_gb": 2.380270592 + }, + { + "epoch": 76, + "loss": 0.4085945130178803, + "val_miou": 0.3850276690114032, + "best_val_miou": 0.40321619164025735, + "seconds": 12.882775222416967, + "peak_allocated_gb": 2.380270592 + }, + { + "epoch": 77, + "loss": 0.41245612855020325, + "val_miou": 0.392681329327788, + "best_val_miou": 0.40321619164025735, + "seconds": 13.06046897219494, + "peak_allocated_gb": 2.380270592 + }, + { + "epoch": 78, + "loss": 0.39333252098999527, + "val_miou": 0.3879390787484447, + "best_val_miou": 0.40321619164025735, + "seconds": 13.179491528775543, + "peak_allocated_gb": 2.380270592 + }, + { + "epoch": 79, + "loss": 0.38490294743525355, + "val_miou": 0.39989768295140027, + "best_val_miou": 0.40321619164025735, + "seconds": 13.241568802390248, + "peak_allocated_gb": 2.380270592 + }, + { + "epoch": 80, + "loss": 0.4023488481578074, + "val_miou": 0.3837855131836521, + "best_val_miou": 0.40321619164025735, + "seconds": 13.007493528071791, + "peak_allocated_gb": 2.380270592 + }, + { + "epoch": 81, + "loss": 0.3902544775291493, + "val_miou": 0.3899030659138898, + "best_val_miou": 0.40321619164025735, + "seconds": 13.362744816113263, + "peak_allocated_gb": 2.380270592 + }, + { + "epoch": 82, + "loss": 0.38771995745207133, + "val_miou": 0.3878137224356105, + "best_val_miou": 0.40321619164025735, + "seconds": 13.078103974927217, + "peak_allocated_gb": 2.380270592 + }, + { + "epoch": 83, + "loss": 0.37977254625998047, + "val_miou": 0.3866925111994541, + "best_val_miou": 0.40321619164025735, + "seconds": 12.980767128057778, + "peak_allocated_gb": 2.380270592 + }, + { + "epoch": 84, + "loss": 0.3840194944488375, + "val_miou": 0.393895518632717, + "best_val_miou": 0.40321619164025735, + "seconds": 13.08129876665771, + "peak_allocated_gb": 2.380270592 + }, + { + "epoch": 85, + "loss": 0.41094198587693664, + "val_miou": 0.3984539290738567, + "best_val_miou": 0.40321619164025735, + "seconds": 12.892282141838223, + "peak_allocated_gb": 2.380270592 + }, + { + "epoch": 86, + "loss": 0.3881188595765515, + "val_miou": 0.39704293917588385, + "best_val_miou": 0.40321619164025735, + "seconds": 13.141969793941826, + "peak_allocated_gb": 2.380270592 + }, + { + "epoch": 87, + "loss": 0.3898242453211232, + "val_miou": 0.3942595302166867, + "best_val_miou": 0.40321619164025735, + "seconds": 13.097094242926687, + "peak_allocated_gb": 2.380270592 + }, + { + "epoch": 88, + "loss": 0.3879254875998748, + "val_miou": 0.3999026169392432, + "best_val_miou": 0.40321619164025735, + "seconds": 12.664102389942855, + "peak_allocated_gb": 2.380270592 + }, + { + "epoch": 89, + "loss": 0.38863624867640045, + "val_miou": 0.3960628847839514, + "best_val_miou": 0.40321619164025735, + "seconds": 12.871159819886088, + "peak_allocated_gb": 2.380270592 + }, + { + "epoch": 90, + "loss": 0.38168902263829585, + "val_miou": 0.39000550323909683, + "best_val_miou": 0.40321619164025735, + "seconds": 12.888265438843518, + "peak_allocated_gb": 2.380270592 + }, + { + "epoch": 91, + "loss": 0.3799481442884395, + "val_miou": 0.3925137624276072, + "best_val_miou": 0.40321619164025735, + "seconds": 13.093043930828571, + "peak_allocated_gb": 2.380270592 + }, + { + "epoch": 92, + "loss": 0.3878365311967699, + "val_miou": 0.3914085803643466, + "best_val_miou": 0.40321619164025735, + "seconds": 13.079036821611226, + "peak_allocated_gb": 2.380270592 + }, + { + "epoch": 93, + "loss": 0.38957263019524124, + "val_miou": 0.3897295529552862, + "best_val_miou": 0.40321619164025735, + "seconds": 12.743321175221354, + "peak_allocated_gb": 2.380270592 + }, + { + "epoch": 94, + "loss": 0.38427816292172984, + "val_miou": 0.3911465493686151, + "best_val_miou": 0.40321619164025735, + "seconds": 13.359041494317353, + "peak_allocated_gb": 2.380270592 + }, + { + "epoch": 95, + "loss": 0.3918049182546766, + "val_miou": 0.3928260310319629, + "best_val_miou": 0.40321619164025735, + "seconds": 13.097550651058555, + "peak_allocated_gb": 2.380270592 + }, + { + "epoch": 96, + "loss": 0.38242390751838684, + "val_miou": 0.3941546719560925, + "best_val_miou": 0.40321619164025735, + "seconds": 13.061964008957148, + "peak_allocated_gb": 2.380270592 + }, + { + "epoch": 97, + "loss": 0.37777920537873316, + "val_miou": 0.39401673253625014, + "best_val_miou": 0.40321619164025735, + "seconds": 13.047699637711048, + "peak_allocated_gb": 2.380270592 + }, + { + "epoch": 98, + "loss": 0.3758382122767599, + "val_miou": 0.39573824366479704, + "best_val_miou": 0.40321619164025735, + "seconds": 13.057694629300386, + "peak_allocated_gb": 2.380270592 + }, + { + "epoch": 99, + "loss": 0.3760234278283621, + "val_miou": 0.3944061700885063, + "best_val_miou": 0.40321619164025735, + "seconds": 13.309580308850855, + "peak_allocated_gb": 2.380270592 + }, + { + "epoch": 100, + "loss": 0.3748102658673337, + "val_miou": 0.3946397203529283, + "best_val_miou": 0.40321619164025735, + "seconds": 13.108439072035253, + "peak_allocated_gb": 2.380270592 + } +] \ No newline at end of file diff --git a/ablations/10_plateau_breakthrough/workspace/convnext_research_20261010/32X32_temporal_cnv2_k7_seed3407/latest.tar b/ablations/10_plateau_breakthrough/workspace/convnext_research_20261010/32X32_temporal_cnv2_k7_seed3407/latest.tar new file mode 100644 index 0000000000000000000000000000000000000000..0800ac60262f997fd5678ab9777adb427aa8bb02 --- /dev/null +++ b/ablations/10_plateau_breakthrough/workspace/convnext_research_20261010/32X32_temporal_cnv2_k7_seed3407/latest.tar @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:762ea8406b4d6d9facc53370ac91f73f03bd718d79d202fa351157cf24cb802b +size 1836288 diff --git a/ablations/10_plateau_breakthrough/workspace/convnext_research_20261010/32X32_temporal_cnv2_k7_seed3407/progress.json b/ablations/10_plateau_breakthrough/workspace/convnext_research_20261010/32X32_temporal_cnv2_k7_seed3407/progress.json new file mode 100644 index 0000000000000000000000000000000000000000..73f84dbccf9f073a476d180697b1f288abbf2cae --- /dev/null +++ b/ablations/10_plateau_breakthrough/workspace/convnext_research_20261010/32X32_temporal_cnv2_k7_seed3407/progress.json @@ -0,0 +1,8 @@ +{ + "epoch": 100, + "loss": 0.3748102658673337, + "val_miou": 0.3946397203529283, + "best_val_miou": 0.40321619164025735, + "seconds": 13.108439072035253, + "peak_allocated_gb": 2.380270592 +} \ No newline at end of file diff --git a/ablations/10_plateau_breakthrough/workspace/convnext_research_20261010/32X32_temporal_cnv2_k7_seed3407/selection.json b/ablations/10_plateau_breakthrough/workspace/convnext_research_20261010/32X32_temporal_cnv2_k7_seed3407/selection.json new file mode 100644 index 0000000000000000000000000000000000000000..2efee399edcc0ecc7d6469fcfdb5294f4c2c8e3a --- /dev/null +++ b/ablations/10_plateau_breakthrough/workspace/convnext_research_20261010/32X32_temporal_cnv2_k7_seed3407/selection.json @@ -0,0 +1,4260 @@ +{ + "kind": "temporal_cnv2_k7", + "seed": 3407, + "checkpoint_epoch": 73, + "standalone": { + "miou": 0.40321619164025735, + "oa": 0.7163483681622947, + "macro_f1": 0.5145819436264608, + "kappa": 0.6847067841601968, + "per_class_iou": [ + 0.7455158113011924, + 0.6654477880350078, + 0.655436447166922, + 0.2501005227181343, + 0.8656811317755524, + 0.29034287511796164, + 0.5551532033426184, + 0.6752254641909814, + 0.3692639913622458, + 0.0, + 0.7477188655980271, + 0.09855321587165163, + 0.01608910891089109, + 0.32511100148001976, + 0.43216984526808205, + 0.4645644708086169, + 0.0, + 0.1015177065767285 + ], + "confusion_matrix": [ + [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + [ + 0, + 14381, + 224, + 79, + 23, + 37, + 31, + 12, + 326, + 4, + 6, + 97, + 87, + 0, + 1221, + 27, + 171, + 21, + 33, + 0 + ], + [ + 0, + 343, + 11101, + 114, + 217, + 49, + 171, + 1, + 7, + 11, + 30, + 220, + 32, + 2, + 48, + 8, + 19, + 102, + 2, + 0 + ], + [ + 0, + 263, + 758, + 10272, + 136, + 4, + 7, + 280, + 56, + 43, + 11, + 45, + 65, + 1, + 454, + 434, + 17, + 7, + 1015, + 0 + ], + [ + 0, + 49, + 1129, + 137, + 622, + 49, + 0, + 0, + 0, + 0, + 2, + 24, + 30, + 0, + 0, + 0, + 0, + 5, + 0, + 0 + ], + [ + 0, + 67, + 96, + 79, + 54, + 5446, + 0, + 0, + 0, + 4, + 0, + 16, + 12, + 0, + 2, + 4, + 0, + 9, + 0, + 0 + ], + [ + 0, + 56, + 108, + 16, + 3, + 4, + 923, + 4, + 182, + 0, + 15, + 488, + 0, + 9, + 82, + 120, + 6, + 387, + 5, + 0 + ], + [ + 0, + 41, + 14, + 346, + 0, + 0, + 16, + 3986, + 556, + 0, + 0, + 82, + 143, + 0, + 68, + 117, + 0, + 0, + 10, + 0 + ], + [ + 0, + 83, + 0, + 0, + 0, + 0, + 0, + 95, + 6364, + 0, + 0, + 15, + 0, + 0, + 23, + 0, + 5, + 0, + 13, + 0 + ], + [ + 0, + 25, + 2, + 59, + 0, + 3, + 0, + 3, + 0, + 2052, + 0, + 0, + 0, + 0, + 0, + 22, + 0, + 0, + 0, + 0 + ], + [ + 0, + 121, + 1035, + 5, + 0, + 3, + 10, + 0, + 0, + 0, + 0, + 28, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + [ + 0, + 84, + 30, + 0, + 0, + 0, + 399, + 24, + 88, + 0, + 0, + 6064, + 0, + 0, + 25, + 0, + 26, + 0, + 2, + 0 + ], + [ + 0, + 270, + 101, + 171, + 3, + 8, + 44, + 652, + 356, + 3201, + 17, + 158, + 688, + 0, + 52, + 87, + 4, + 0, + 234, + 0 + ], + [ + 0, + 62, + 22, + 56, + 0, + 0, + 72, + 51, + 93, + 25, + 1, + 1, + 380, + 13, + 1, + 9, + 6, + 0, + 4, + 0 + ], + [ + 0, + 606, + 28, + 51, + 2, + 0, + 0, + 138, + 567, + 0, + 0, + 71, + 10, + 0, + 1977, + 4, + 50, + 0, + 0, + 0 + ], + [ + 0, + 82, + 0, + 216, + 2, + 0, + 18, + 163, + 0, + 89, + 0, + 0, + 0, + 0, + 12, + 1201, + 1, + 6, + 119, + 0 + ], + [ + 0, + 88, + 0, + 14, + 0, + 0, + 0, + 102, + 515, + 0, + 0, + 95, + 5, + 0, + 516, + 4, + 1488, + 0, + 2, + 0 + ], + [ + 0, + 100, + 627, + 152, + 0, + 340, + 2, + 0, + 0, + 14, + 34, + 0, + 0, + 0, + 0, + 25, + 1, + 0, + 0, + 0 + ], + [ + 0, + 170, + 31, + 309, + 0, + 5, + 1, + 276, + 81, + 0, + 3, + 28, + 171, + 0, + 73, + 9, + 68, + 0, + 301, + 0 + ], + [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ] + ] + }, + "chosen": { + "mode": "add", + "alpha": 0.0, + "metrics": { + "miou": 0.5256398451814701, + "oa": 0.7954606313128608, + "macro_f1": 0.6400266863319044, + "kappa": 0.7725060156424988, + "per_class_iou": [ + 0.7863696632193052, + 0.7940560621411685, + 0.8422681105804802, + 0.5216035634743875, + 0.8953563366655918, + 0.5666403785488959, + 0.6681021224238696, + 0.6854425749817118, + 0.3865969759193579, + 0.15913978494623657, + 0.8521227955584585, + 0.16817463736895016, + 0.15324165029469547, + 0.3526720731960907, + 0.8232323232323232, + 0.5073836723321259, + 0.010297482837528604, + 0.2888170055452865 + ], + "confusion_matrix": [ + [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + [ + 0, + 14827, + 104, + 46, + 8, + 16, + 20, + 1, + 480, + 0, + 3, + 211, + 80, + 3, + 659, + 16, + 296, + 4, + 6, + 0 + ], + [ + 0, + 160, + 11756, + 93, + 27, + 17, + 59, + 3, + 0, + 18, + 25, + 184, + 13, + 1, + 99, + 0, + 10, + 4, + 8, + 0 + ], + [ + 0, + 165, + 132, + 12522, + 19, + 10, + 2, + 144, + 0, + 31, + 1, + 0, + 2, + 6, + 113, + 137, + 34, + 11, + 539, + 0 + ], + [ + 0, + 23, + 477, + 28, + 1171, + 50, + 1, + 0, + 0, + 0, + 130, + 0, + 18, + 10, + 0, + 2, + 6, + 128, + 3, + 0 + ], + [ + 0, + 83, + 1, + 23, + 0, + 5553, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 19, + 8, + 1, + 101, + 0, + 0 + ], + [ + 0, + 96, + 76, + 5, + 7, + 0, + 1437, + 49, + 253, + 0, + 0, + 217, + 0, + 0, + 77, + 0, + 5, + 186, + 0, + 0 + ], + [ + 0, + 7, + 0, + 14, + 0, + 0, + 10, + 4344, + 415, + 65, + 0, + 10, + 472, + 0, + 33, + 1, + 4, + 0, + 4, + 0 + ], + [ + 0, + 29, + 0, + 0, + 0, + 0, + 0, + 0, + 6559, + 0, + 0, + 9, + 0, + 0, + 0, + 0, + 1, + 0, + 0, + 0 + ], + [ + 0, + 6, + 20, + 6, + 0, + 1, + 0, + 26, + 0, + 2071, + 0, + 0, + 16, + 14, + 5, + 1, + 0, + 0, + 0, + 0 + ], + [ + 0, + 34, + 886, + 0, + 14, + 0, + 2, + 0, + 0, + 5, + 222, + 0, + 0, + 0, + 5, + 0, + 30, + 4, + 0, + 0 + ], + [ + 0, + 17, + 0, + 0, + 91, + 0, + 14, + 5, + 10, + 0, + 0, + 6523, + 0, + 0, + 13, + 0, + 63, + 0, + 6, + 0 + ], + [ + 0, + 107, + 18, + 205, + 0, + 3, + 10, + 473, + 524, + 2954, + 6, + 129, + 1171, + 188, + 120, + 47, + 11, + 8, + 72, + 0 + ], + [ + 0, + 1, + 44, + 53, + 0, + 0, + 0, + 189, + 8, + 36, + 1, + 71, + 216, + 156, + 12, + 2, + 7, + 0, + 0, + 0 + ], + [ + 0, + 1027, + 18, + 38, + 0, + 0, + 10, + 43, + 402, + 0, + 0, + 58, + 0, + 0, + 1696, + 0, + 205, + 7, + 0, + 0 + ], + [ + 0, + 28, + 6, + 32, + 4, + 6, + 0, + 0, + 0, + 40, + 0, + 0, + 0, + 0, + 0, + 1793, + 0, + 0, + 0, + 0 + ], + [ + 0, + 51, + 0, + 8, + 0, + 0, + 0, + 19, + 875, + 0, + 0, + 14, + 0, + 0, + 41, + 0, + 1821, + 0, + 0, + 0 + ], + [ + 0, + 230, + 546, + 75, + 28, + 310, + 0, + 0, + 0, + 42, + 27, + 0, + 0, + 0, + 0, + 4, + 15, + 18, + 0, + 0 + ], + [ + 0, + 11, + 0, + 373, + 0, + 0, + 0, + 171, + 4, + 0, + 0, + 10, + 100, + 0, + 109, + 51, + 72, + 0, + 625, + 0 + ], + [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ] + ] + } + }, + "records": [ + { + "mode": "add", + "alpha": 0.0, + "metrics": { + "miou": 0.5256398451814701, + "oa": 0.7954606313128608, + "macro_f1": 0.6400266863319044, + "kappa": 0.7725060156424988, + "per_class_iou": [ + 0.7863696632193052, + 0.7940560621411685, + 0.8422681105804802, + 0.5216035634743875, + 0.8953563366655918, + 0.5666403785488959, + 0.6681021224238696, + 0.6854425749817118, + 0.3865969759193579, + 0.15913978494623657, + 0.8521227955584585, + 0.16817463736895016, + 0.15324165029469547, + 0.3526720731960907, + 0.8232323232323232, + 0.5073836723321259, + 0.010297482837528604, + 0.2888170055452865 + ], + "confusion_matrix": [ + [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + [ + 0, + 14827, + 104, + 46, + 8, + 16, + 20, + 1, + 480, + 0, + 3, + 211, + 80, + 3, + 659, + 16, + 296, + 4, + 6, + 0 + ], + [ + 0, + 160, + 11756, + 93, + 27, + 17, + 59, + 3, + 0, + 18, + 25, + 184, + 13, + 1, + 99, + 0, + 10, + 4, + 8, + 0 + ], + [ + 0, + 165, + 132, + 12522, + 19, + 10, + 2, + 144, + 0, + 31, + 1, + 0, + 2, + 6, + 113, + 137, + 34, + 11, + 539, + 0 + ], + [ + 0, + 23, + 477, + 28, + 1171, + 50, + 1, + 0, + 0, + 0, + 130, + 0, + 18, + 10, + 0, + 2, + 6, + 128, + 3, + 0 + ], + [ + 0, + 83, + 1, + 23, + 0, + 5553, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 19, + 8, + 1, + 101, + 0, + 0 + ], + [ + 0, + 96, + 76, + 5, + 7, + 0, + 1437, + 49, + 253, + 0, + 0, + 217, + 0, + 0, + 77, + 0, + 5, + 186, + 0, + 0 + ], + [ + 0, + 7, + 0, + 14, + 0, + 0, + 10, + 4344, + 415, + 65, + 0, + 10, + 472, + 0, + 33, + 1, + 4, + 0, + 4, + 0 + ], + [ + 0, + 29, + 0, + 0, + 0, + 0, + 0, + 0, + 6559, + 0, + 0, + 9, + 0, + 0, + 0, + 0, + 1, + 0, + 0, + 0 + ], + [ + 0, + 6, + 20, + 6, + 0, + 1, + 0, + 26, + 0, + 2071, + 0, + 0, + 16, + 14, + 5, + 1, + 0, + 0, + 0, + 0 + ], + [ + 0, + 34, + 886, + 0, + 14, + 0, + 2, + 0, + 0, + 5, + 222, + 0, + 0, + 0, + 5, + 0, + 30, + 4, + 0, + 0 + ], + [ + 0, + 17, + 0, + 0, + 91, + 0, + 14, + 5, + 10, + 0, + 0, + 6523, + 0, + 0, + 13, + 0, + 63, + 0, + 6, + 0 + ], + [ + 0, + 107, + 18, + 205, + 0, + 3, + 10, + 473, + 524, + 2954, + 6, + 129, + 1171, + 188, + 120, + 47, + 11, + 8, + 72, + 0 + ], + [ + 0, + 1, + 44, + 53, + 0, + 0, + 0, + 189, + 8, + 36, + 1, + 71, + 216, + 156, + 12, + 2, + 7, + 0, + 0, + 0 + ], + [ + 0, + 1027, + 18, + 38, + 0, + 0, + 10, + 43, + 402, + 0, + 0, + 58, + 0, + 0, + 1696, + 0, + 205, + 7, + 0, + 0 + ], + [ + 0, + 28, + 6, + 32, + 4, + 6, + 0, + 0, + 0, + 40, + 0, + 0, + 0, + 0, + 0, + 1793, + 0, + 0, + 0, + 0 + ], + [ + 0, + 51, + 0, + 8, + 0, + 0, + 0, + 19, + 875, + 0, + 0, + 14, + 0, + 0, + 41, + 0, + 1821, + 0, + 0, + 0 + ], + [ + 0, + 230, + 546, + 75, + 28, + 310, + 0, + 0, + 0, + 42, + 27, + 0, + 0, + 0, + 0, + 4, + 15, + 18, + 0, + 0 + ], + [ + 0, + 11, + 0, + 373, + 0, + 0, + 0, + 171, + 4, + 0, + 0, + 10, + 100, + 0, + 109, + 51, + 72, + 0, + 625, + 0 + ], + [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ] + ] + } + }, + { + "mode": "add", + "alpha": 0.1, + "metrics": { + "miou": 0.5216519009443068, + "oa": 0.7940253424877626, + "macro_f1": 0.6358232034975959, + "kappa": 0.7707987982836775, + "per_class_iou": [ + 0.7885408951433711, + 0.785475234270415, + 0.8427411235653399, + 0.51599819738621, + 0.8947453255963894, + 0.5482213438735178, + 0.6648326455754241, + 0.6852781263069845, + 0.3824393828067597, + 0.14583333333333334, + 0.8470420342501297, + 0.15005020800459046, + 0.15208747514910537, + 0.3603281447202356, + 0.8129562043795621, + 0.5105366676032593, + 0.007553747821034283, + 0.2950741272118603 + ], + "confusion_matrix": [ + [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + [ + 0, + 14905, + 104, + 47, + 4, + 15, + 20, + 0, + 478, + 0, + 3, + 204, + 76, + 3, + 610, + 16, + 286, + 4, + 5, + 0 + ], + [ + 0, + 185, + 11735, + 92, + 25, + 18, + 62, + 2, + 0, + 18, + 22, + 184, + 10, + 1, + 101, + 0, + 11, + 3, + 8, + 0 + ], + [ + 0, + 166, + 137, + 12556, + 12, + 9, + 2, + 174, + 0, + 33, + 0, + 0, + 2, + 5, + 114, + 149, + 32, + 8, + 469, + 0 + ], + [ + 0, + 20, + 570, + 32, + 1145, + 51, + 0, + 0, + 0, + 0, + 92, + 0, + 18, + 10, + 0, + 2, + 5, + 99, + 3, + 0 + ], + [ + 0, + 84, + 3, + 28, + 0, + 5551, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 19, + 5, + 0, + 99, + 0, + 0 + ], + [ + 0, + 90, + 64, + 5, + 5, + 0, + 1387, + 43, + 257, + 0, + 0, + 269, + 0, + 0, + 86, + 0, + 5, + 197, + 0, + 0 + ], + [ + 0, + 11, + 1, + 19, + 0, + 0, + 9, + 4350, + 418, + 61, + 0, + 10, + 464, + 0, + 32, + 1, + 2, + 0, + 1, + 0 + ], + [ + 0, + 35, + 0, + 0, + 0, + 0, + 0, + 0, + 6554, + 0, + 0, + 8, + 0, + 0, + 0, + 0, + 1, + 0, + 0, + 0 + ], + [ + 0, + 4, + 20, + 7, + 0, + 2, + 0, + 23, + 0, + 2082, + 0, + 0, + 16, + 9, + 2, + 1, + 0, + 0, + 0, + 0 + ], + [ + 0, + 39, + 914, + 0, + 10, + 0, + 0, + 0, + 0, + 5, + 196, + 0, + 0, + 0, + 5, + 0, + 30, + 3, + 0, + 0 + ], + [ + 0, + 19, + 0, + 0, + 85, + 0, + 15, + 6, + 11, + 0, + 0, + 6529, + 0, + 0, + 14, + 0, + 60, + 0, + 3, + 0 + ], + [ + 0, + 120, + 21, + 211, + 0, + 2, + 7, + 502, + 513, + 3038, + 5, + 141, + 1046, + 182, + 111, + 54, + 9, + 8, + 76, + 0 + ], + [ + 0, + 4, + 45, + 51, + 0, + 0, + 0, + 185, + 9, + 39, + 1, + 64, + 226, + 153, + 11, + 2, + 6, + 0, + 0, + 0 + ], + [ + 0, + 1025, + 18, + 38, + 0, + 0, + 7, + 40, + 400, + 0, + 0, + 58, + 0, + 0, + 1713, + 0, + 200, + 5, + 0, + 0 + ], + [ + 0, + 28, + 6, + 44, + 4, + 5, + 0, + 0, + 0, + 40, + 0, + 0, + 0, + 0, + 0, + 1782, + 0, + 0, + 0, + 0 + ], + [ + 0, + 52, + 0, + 8, + 0, + 0, + 0, + 19, + 871, + 0, + 0, + 18, + 0, + 0, + 44, + 0, + 1817, + 0, + 0, + 0 + ], + [ + 0, + 222, + 560, + 81, + 27, + 313, + 0, + 0, + 0, + 44, + 19, + 0, + 0, + 0, + 0, + 3, + 13, + 13, + 0, + 0 + ], + [ + 0, + 18, + 0, + 368, + 0, + 0, + 0, + 170, + 9, + 0, + 0, + 10, + 113, + 0, + 101, + 50, + 70, + 0, + 617, + 0 + ], + [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ] + ] + } + }, + { + "mode": "add", + "alpha": 0.25, + "metrics": { + "miou": 0.5102471079440807, + "oa": 0.7902228982123156, + "macro_f1": 0.6231387918406224, + "kappa": 0.7663660485606661, + "per_class_iou": [ + 0.7898756847871892, + 0.7747325320301149, + 0.8382264829239066, + 0.5052201543349978, + 0.8927536231884058, + 0.4927706135209066, + 0.653654860587792, + 0.6854779604229924, + 0.38145454545454544, + 0.09664848012470771, + 0.8329931104873692, + 0.12923121055651177, + 0.13109756097560976, + 0.36265137029955385, + 0.7954033348355115, + 0.5126074498567336, + 0.0036188178528347406, + 0.3060301507537688 + ], + "confusion_matrix": [ + [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + [ + 0, + 14995, + 99, + 49, + 3, + 13, + 23, + 0, + 476, + 0, + 2, + 192, + 71, + 2, + 567, + 19, + 262, + 1, + 6, + 0 + ], + [ + 0, + 200, + 11731, + 93, + 22, + 22, + 67, + 1, + 0, + 18, + 11, + 183, + 5, + 1, + 101, + 0, + 14, + 2, + 6, + 0 + ], + [ + 0, + 163, + 142, + 12591, + 7, + 8, + 2, + 213, + 1, + 35, + 0, + 0, + 1, + 5, + 121, + 169, + 27, + 4, + 379, + 0 + ], + [ + 0, + 22, + 699, + 50, + 1113, + 50, + 0, + 0, + 0, + 0, + 54, + 0, + 12, + 10, + 0, + 0, + 1, + 36, + 0, + 0 + ], + [ + 0, + 81, + 17, + 40, + 0, + 5544, + 0, + 0, + 0, + 0, + 0, + 5, + 0, + 0, + 14, + 2, + 0, + 86, + 0, + 0 + ], + [ + 0, + 91, + 56, + 7, + 4, + 0, + 1261, + 34, + 250, + 0, + 0, + 388, + 0, + 0, + 85, + 0, + 5, + 227, + 0, + 0 + ], + [ + 0, + 17, + 0, + 82, + 0, + 0, + 12, + 4337, + 424, + 32, + 0, + 8, + 445, + 0, + 21, + 0, + 1, + 0, + 0, + 0 + ], + [ + 0, + 42, + 0, + 0, + 0, + 0, + 0, + 0, + 6547, + 0, + 0, + 7, + 0, + 0, + 0, + 0, + 2, + 0, + 0, + 0 + ], + [ + 0, + 9, + 17, + 5, + 0, + 1, + 0, + 19, + 0, + 2098, + 0, + 0, + 12, + 4, + 0, + 1, + 0, + 0, + 0, + 0 + ], + [ + 0, + 58, + 972, + 0, + 8, + 1, + 4, + 0, + 0, + 4, + 124, + 0, + 0, + 0, + 3, + 0, + 28, + 0, + 0, + 0 + ], + [ + 0, + 23, + 0, + 0, + 84, + 0, + 17, + 6, + 10, + 0, + 0, + 6529, + 0, + 0, + 15, + 0, + 56, + 0, + 2, + 0 + ], + [ + 0, + 140, + 24, + 224, + 0, + 0, + 5, + 571, + 466, + 3124, + 7, + 170, + 901, + 166, + 92, + 72, + 7, + 6, + 71, + 0 + ], + [ + 0, + 11, + 36, + 51, + 0, + 0, + 19, + 175, + 16, + 39, + 0, + 52, + 257, + 129, + 5, + 0, + 6, + 0, + 0, + 0 + ], + [ + 0, + 1021, + 18, + 40, + 0, + 0, + 2, + 39, + 436, + 0, + 0, + 64, + 0, + 0, + 1707, + 0, + 177, + 0, + 0, + 0 + ], + [ + 0, + 37, + 6, + 54, + 2, + 4, + 0, + 0, + 0, + 40, + 0, + 0, + 0, + 0, + 0, + 1765, + 0, + 1, + 0, + 0 + ], + [ + 0, + 51, + 0, + 8, + 0, + 0, + 0, + 20, + 853, + 0, + 0, + 19, + 0, + 0, + 89, + 0, + 1789, + 0, + 0, + 0 + ], + [ + 0, + 211, + 579, + 91, + 26, + 322, + 0, + 0, + 0, + 42, + 7, + 0, + 0, + 0, + 0, + 2, + 9, + 6, + 0, + 0 + ], + [ + 0, + 27, + 0, + 359, + 0, + 0, + 0, + 178, + 21, + 0, + 0, + 8, + 123, + 0, + 90, + 45, + 66, + 0, + 609, + 0 + ], + [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ] + ] + } + }, + { + "mode": "add", + "alpha": 0.5, + "metrics": { + "miou": 0.4878944761716712, + "oa": 0.780390098649329, + "macro_f1": 0.5980646976397048, + "kappa": 0.7552214865794974, + "per_class_iou": [ + 0.7901059699926556, + 0.7483750563099298, + 0.81121849288233, + 0.4531177829099307, + 0.8861958266452649, + 0.42669666291713537, + 0.6363636363636364, + 0.6804672020022943, + 0.38173897259030676, + 0.0008103727714748784, + 0.8215415770155676, + 0.11190859821297788, + 0.10903083700440529, + 0.37358568195844477, + 0.7431788653096578, + 0.5212066905615292, + 0.0, + 0.2865583456425406 + ], + "confusion_matrix": [ + [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + [ + 0, + 15061, + 94, + 50, + 3, + 17, + 11, + 0, + 447, + 0, + 1, + 134, + 80, + 1, + 626, + 19, + 225, + 1, + 10, + 0 + ], + [ + 0, + 255, + 11629, + 108, + 31, + 30, + 93, + 0, + 2, + 13, + 8, + 203, + 1, + 1, + 76, + 0, + 20, + 7, + 0, + 0 + ], + [ + 0, + 180, + 191, + 12423, + 15, + 6, + 2, + 227, + 10, + 34, + 0, + 0, + 0, + 3, + 147, + 225, + 21, + 1, + 383, + 0 + ], + [ + 0, + 42, + 835, + 119, + 981, + 50, + 0, + 0, + 0, + 0, + 8, + 0, + 2, + 5, + 0, + 0, + 0, + 5, + 0, + 0 + ], + [ + 0, + 59, + 72, + 78, + 3, + 5521, + 0, + 0, + 0, + 0, + 0, + 12, + 0, + 0, + 4, + 4, + 0, + 36, + 0, + 0 + ], + [ + 0, + 84, + 45, + 14, + 2, + 0, + 1138, + 14, + 200, + 0, + 2, + 470, + 0, + 0, + 83, + 32, + 5, + 319, + 0, + 0 + ], + [ + 0, + 25, + 0, + 194, + 0, + 0, + 8, + 4263, + 559, + 6, + 0, + 55, + 229, + 0, + 33, + 4, + 1, + 0, + 2, + 0 + ], + [ + 0, + 59, + 0, + 0, + 0, + 0, + 0, + 2, + 6525, + 0, + 0, + 9, + 0, + 0, + 3, + 0, + 0, + 0, + 0, + 0 + ], + [ + 0, + 17, + 8, + 10, + 0, + 1, + 0, + 11, + 0, + 2103, + 0, + 0, + 3, + 3, + 0, + 10, + 0, + 0, + 0, + 0 + ], + [ + 0, + 100, + 1071, + 4, + 3, + 1, + 8, + 0, + 0, + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 13, + 0, + 0, + 0 + ], + [ + 0, + 40, + 0, + 0, + 44, + 0, + 75, + 15, + 15, + 0, + 0, + 6491, + 0, + 0, + 15, + 0, + 45, + 0, + 2, + 0 + ], + [ + 0, + 209, + 56, + 222, + 0, + 0, + 12, + 669, + 409, + 3172, + 5, + 171, + 764, + 99, + 69, + 71, + 7, + 3, + 108, + 0 + ], + [ + 0, + 30, + 28, + 53, + 0, + 0, + 49, + 94, + 53, + 34, + 0, + 18, + 330, + 99, + 0, + 1, + 7, + 0, + 0, + 0 + ], + [ + 0, + 886, + 22, + 43, + 0, + 0, + 0, + 40, + 529, + 0, + 0, + 62, + 0, + 0, + 1816, + 0, + 106, + 0, + 0, + 0 + ], + [ + 0, + 56, + 2, + 88, + 0, + 1, + 0, + 0, + 0, + 42, + 0, + 0, + 0, + 0, + 0, + 1716, + 0, + 4, + 0, + 0 + ], + [ + 0, + 51, + 0, + 8, + 0, + 0, + 0, + 52, + 727, + 0, + 0, + 23, + 0, + 0, + 222, + 1, + 1745, + 0, + 0, + 0 + ], + [ + 0, + 152, + 631, + 110, + 17, + 335, + 0, + 0, + 0, + 41, + 8, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 0, + 0 + ], + [ + 0, + 37, + 7, + 345, + 0, + 0, + 1, + 196, + 40, + 0, + 0, + 2, + 136, + 0, + 79, + 33, + 68, + 0, + 582, + 0 + ], + [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ] + ] + } + }, + { + "mode": "replace", + "alpha": 0.1, + "metrics": { + "miou": 0.5180305111390306, + "oa": 0.7881984983022889, + "macro_f1": 0.6315239655756552, + "kappa": 0.7647124591036658, + "per_class_iou": [ + 0.786045026345202, + 0.801616957673755, + 0.8031203566121843, + 0.5486205336951605, + 0.8993863049095607, + 0.5559875583203733, + 0.6289709682322542, + 0.6905438098243399, + 0.38863892013498313, + 0.14329643296432965, + 0.8477414330218068, + 0.1943744752308984, + 0.11217641418983701, + 0.3350659736105558, + 0.8354312354312354, + 0.510632183908046, + 0.019716574245224893, + 0.2231840421528039 + ], + "confusion_matrix": [ + [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + [ + 0, + 14769, + 116, + 49, + 41, + 14, + 47, + 5, + 490, + 0, + 3, + 204, + 82, + 3, + 688, + 22, + 237, + 5, + 5, + 0 + ], + [ + 0, + 109, + 11799, + 82, + 7, + 17, + 58, + 3, + 0, + 19, + 55, + 187, + 20, + 3, + 98, + 0, + 8, + 4, + 8, + 0 + ], + [ + 0, + 161, + 126, + 11891, + 18, + 10, + 3, + 209, + 0, + 32, + 3, + 0, + 2, + 6, + 186, + 127, + 36, + 0, + 1058, + 0 + ], + [ + 0, + 21, + 421, + 39, + 1213, + 47, + 5, + 0, + 0, + 0, + 248, + 0, + 9, + 8, + 0, + 0, + 19, + 13, + 4, + 0 + ], + [ + 0, + 70, + 11, + 27, + 0, + 5569, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 18, + 7, + 0, + 87, + 0, + 0 + ], + [ + 0, + 65, + 72, + 4, + 14, + 1, + 1430, + 24, + 236, + 0, + 2, + 279, + 0, + 0, + 88, + 0, + 4, + 189, + 0, + 0 + ], + [ + 0, + 5, + 1, + 10, + 0, + 0, + 14, + 4138, + 341, + 113, + 0, + 10, + 647, + 2, + 77, + 3, + 3, + 0, + 15, + 0 + ], + [ + 0, + 24, + 0, + 0, + 0, + 0, + 0, + 0, + 6565, + 0, + 0, + 8, + 0, + 0, + 0, + 0, + 1, + 0, + 0, + 0 + ], + [ + 0, + 5, + 21, + 4, + 0, + 0, + 0, + 18, + 0, + 2073, + 0, + 0, + 24, + 18, + 3, + 0, + 0, + 0, + 0, + 0 + ], + [ + 0, + 28, + 893, + 0, + 2, + 0, + 2, + 0, + 0, + 5, + 233, + 0, + 0, + 0, + 5, + 0, + 31, + 3, + 0, + 0 + ], + [ + 0, + 14, + 1, + 0, + 66, + 0, + 25, + 5, + 11, + 0, + 0, + 6531, + 0, + 0, + 20, + 0, + 62, + 0, + 7, + 0 + ], + [ + 0, + 120, + 22, + 141, + 1, + 4, + 2, + 454, + 492, + 2881, + 0, + 111, + 1389, + 207, + 153, + 18, + 8, + 10, + 33, + 0 + ], + [ + 0, + 2, + 46, + 49, + 0, + 3, + 0, + 195, + 7, + 40, + 1, + 91, + 219, + 117, + 16, + 4, + 5, + 0, + 1, + 0 + ], + [ + 0, + 1038, + 18, + 38, + 0, + 2, + 7, + 54, + 422, + 0, + 0, + 60, + 6, + 0, + 1676, + 0, + 166, + 17, + 0, + 0 + ], + [ + 0, + 25, + 10, + 31, + 7, + 6, + 0, + 1, + 0, + 36, + 0, + 0, + 0, + 0, + 0, + 1792, + 1, + 0, + 0, + 0 + ], + [ + 0, + 55, + 0, + 6, + 0, + 0, + 0, + 39, + 910, + 0, + 0, + 7, + 0, + 0, + 35, + 0, + 1777, + 0, + 0, + 0 + ], + [ + 0, + 252, + 484, + 35, + 8, + 299, + 0, + 0, + 0, + 42, + 112, + 0, + 0, + 0, + 0, + 4, + 27, + 32, + 0, + 0 + ], + [ + 0, + 15, + 0, + 423, + 0, + 0, + 1, + 193, + 0, + 0, + 0, + 5, + 91, + 0, + 111, + 51, + 43, + 0, + 593, + 0 + ], + [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ] + ] + } + }, + { + "mode": "replace", + "alpha": 0.25, + "metrics": { + "miou": 0.513433115030566, + "oa": 0.7888518760510277, + "macro_f1": 0.6271212239575974, + "kappa": 0.7651433110880229, + "per_class_iou": [ + 0.7899458541246417, + 0.7809391165937127, + 0.810261569416499, + 0.5169059749884206, + 0.8984009045388467, + 0.5137224584460766, + 0.6436677258284158, + 0.6875655273642273, + 0.3932184338703634, + 0.12100139082058414, + 0.8414006179196705, + 0.18415083640487667, + 0.11363636363636363, + 0.3460534243824061, + 0.8284518828451883, + 0.5168473483738646, + 0.014823965410747375, + 0.2408026755852843 + ], + "confusion_matrix": [ + [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + [ + 0, + 14881, + 109, + 44, + 18, + 14, + 41, + 3, + 479, + 0, + 3, + 182, + 79, + 3, + 676, + 23, + 212, + 5, + 8, + 0 + ], + [ + 0, + 141, + 11775, + 86, + 3, + 19, + 66, + 2, + 0, + 16, + 44, + 186, + 16, + 1, + 100, + 0, + 10, + 4, + 8, + 0 + ], + [ + 0, + 153, + 143, + 12081, + 12, + 8, + 3, + 240, + 0, + 33, + 2, + 0, + 2, + 5, + 199, + 144, + 31, + 0, + 812, + 0 + ], + [ + 0, + 19, + 670, + 55, + 1116, + 50, + 0, + 0, + 0, + 0, + 104, + 0, + 9, + 8, + 0, + 0, + 8, + 6, + 2, + 0 + ], + [ + 0, + 74, + 23, + 36, + 0, + 5562, + 0, + 0, + 0, + 0, + 0, + 5, + 0, + 0, + 10, + 5, + 0, + 74, + 0, + 0 + ], + [ + 0, + 63, + 71, + 4, + 10, + 0, + 1329, + 19, + 247, + 0, + 1, + 349, + 0, + 0, + 99, + 0, + 4, + 212, + 0, + 0 + ], + [ + 0, + 10, + 0, + 40, + 0, + 0, + 12, + 4254, + 357, + 101, + 0, + 10, + 527, + 0, + 58, + 2, + 2, + 0, + 6, + 0 + ], + [ + 0, + 30, + 0, + 0, + 0, + 0, + 0, + 0, + 6558, + 0, + 0, + 9, + 0, + 0, + 0, + 0, + 1, + 0, + 0, + 0 + ], + [ + 0, + 4, + 19, + 4, + 0, + 0, + 0, + 11, + 0, + 2099, + 0, + 0, + 22, + 7, + 0, + 0, + 0, + 0, + 0, + 0 + ], + [ + 0, + 37, + 945, + 0, + 2, + 1, + 4, + 0, + 0, + 3, + 174, + 0, + 0, + 0, + 5, + 0, + 31, + 0, + 0, + 0 + ], + [ + 0, + 18, + 0, + 0, + 60, + 0, + 31, + 5, + 11, + 0, + 0, + 6536, + 0, + 0, + 20, + 0, + 58, + 0, + 3, + 0 + ], + [ + 0, + 135, + 22, + 170, + 0, + 2, + 1, + 493, + 521, + 2897, + 1, + 136, + 1299, + 192, + 126, + 10, + 5, + 9, + 27, + 0 + ], + [ + 0, + 3, + 39, + 51, + 0, + 0, + 16, + 180, + 12, + 43, + 0, + 75, + 244, + 115, + 9, + 2, + 7, + 0, + 0, + 0 + ], + [ + 0, + 1025, + 19, + 40, + 0, + 2, + 5, + 49, + 416, + 0, + 0, + 60, + 3, + 0, + 1723, + 0, + 148, + 14, + 0, + 0 + ], + [ + 0, + 28, + 8, + 46, + 3, + 6, + 0, + 0, + 0, + 36, + 0, + 0, + 0, + 0, + 0, + 1782, + 0, + 0, + 0, + 0 + ], + [ + 0, + 53, + 0, + 6, + 0, + 0, + 0, + 34, + 892, + 0, + 0, + 11, + 0, + 0, + 69, + 0, + 1764, + 0, + 0, + 0 + ], + [ + 0, + 246, + 533, + 39, + 4, + 300, + 0, + 0, + 0, + 43, + 81, + 0, + 0, + 0, + 0, + 4, + 21, + 24, + 0, + 0 + ], + [ + 0, + 19, + 0, + 421, + 0, + 0, + 0, + 194, + 5, + 0, + 0, + 3, + 106, + 0, + 104, + 52, + 46, + 0, + 576, + 0 + ], + [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ] + ] + } + }, + { + "mode": "replace", + "alpha": 0.5, + "metrics": { + "miou": 0.49365846952784387, + "oa": 0.781782543031887, + "macro_f1": 0.6037256549965879, + "kappa": 0.7568655063464111, + "per_class_iou": [ + 0.7905167428901856, + 0.7523367498227294, + 0.8084616396894329, + 0.4831992427827733, + 0.8915003219575016, + 0.4319526627218935, + 0.6357536901744446, + 0.6867964229352972, + 0.3830446672743847, + 0.014139827179890024, + 0.8288886053336736, + 0.12961642663624698, + 0.1095890410958904, + 0.36689488521949254, + 0.7788245850157021, + 0.5209906372697071, + 0.0, + 0.2733463035019455 + ], + "confusion_matrix": [ + [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + [ + 0, + 15038, + 104, + 43, + 2, + 13, + 16, + 0, + 447, + 0, + 1, + 129, + 82, + 2, + 668, + 28, + 199, + 1, + 7, + 0 + ], + [ + 0, + 219, + 11671, + 98, + 19, + 31, + 92, + 0, + 1, + 11, + 22, + 189, + 5, + 1, + 93, + 0, + 16, + 5, + 4, + 0 + ], + [ + 0, + 172, + 201, + 12287, + 14, + 6, + 2, + 271, + 6, + 34, + 1, + 0, + 2, + 4, + 220, + 179, + 18, + 0, + 451, + 0 + ], + [ + 0, + 30, + 799, + 127, + 1021, + 50, + 0, + 0, + 0, + 0, + 9, + 0, + 3, + 4, + 0, + 0, + 0, + 4, + 0, + 0 + ], + [ + 0, + 63, + 67, + 69, + 1, + 5538, + 0, + 0, + 0, + 0, + 0, + 14, + 0, + 0, + 2, + 2, + 0, + 33, + 0, + 0 + ], + [ + 0, + 67, + 66, + 9, + 5, + 0, + 1168, + 12, + 219, + 0, + 1, + 439, + 0, + 0, + 91, + 31, + 4, + 296, + 0, + 0 + ], + [ + 0, + 20, + 0, + 179, + 0, + 0, + 10, + 4264, + 393, + 13, + 0, + 30, + 428, + 0, + 33, + 3, + 1, + 0, + 5, + 0 + ], + [ + 0, + 57, + 0, + 0, + 0, + 0, + 0, + 0, + 6528, + 0, + 0, + 8, + 0, + 0, + 3, + 0, + 2, + 0, + 0, + 0 + ], + [ + 0, + 16, + 15, + 10, + 0, + 0, + 0, + 6, + 0, + 2101, + 0, + 0, + 7, + 5, + 0, + 6, + 0, + 0, + 0, + 0 + ], + [ + 0, + 77, + 1067, + 1, + 2, + 1, + 8, + 0, + 0, + 1, + 18, + 0, + 0, + 0, + 2, + 0, + 25, + 0, + 0, + 0 + ], + [ + 0, + 31, + 0, + 0, + 16, + 0, + 109, + 13, + 13, + 0, + 0, + 6496, + 0, + 0, + 14, + 0, + 48, + 0, + 2, + 0 + ], + [ + 0, + 208, + 41, + 181, + 0, + 0, + 16, + 616, + 456, + 3142, + 2, + 172, + 909, + 137, + 70, + 29, + 2, + 4, + 61, + 0 + ], + [ + 0, + 19, + 38, + 45, + 0, + 0, + 41, + 112, + 51, + 39, + 0, + 29, + 311, + 104, + 1, + 0, + 6, + 0, + 0, + 0 + ], + [ + 0, + 921, + 21, + 45, + 0, + 0, + 1, + 42, + 493, + 0, + 0, + 62, + 0, + 0, + 1822, + 0, + 97, + 0, + 0, + 0 + ], + [ + 0, + 46, + 6, + 78, + 0, + 3, + 0, + 0, + 0, + 38, + 0, + 0, + 0, + 0, + 0, + 1736, + 0, + 2, + 0, + 0 + ], + [ + 0, + 52, + 0, + 6, + 0, + 0, + 0, + 47, + 792, + 0, + 0, + 21, + 0, + 0, + 184, + 2, + 1725, + 0, + 0, + 0 + ], + [ + 0, + 212, + 604, + 65, + 7, + 319, + 0, + 0, + 0, + 41, + 35, + 0, + 0, + 0, + 0, + 0, + 12, + 0, + 0, + 0 + ], + [ + 0, + 33, + 7, + 374, + 0, + 0, + 1, + 209, + 36, + 0, + 0, + 2, + 129, + 0, + 81, + 40, + 52, + 0, + 562, + 0 + ], + [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ] + ] + } + } + ], + "reference_val_miou": 0.5256398451814701, + "delta_val_pp": 0.0, + "patch_bootstrap_delta_interval_pp": [ + 0.0, + 0.0 + ], + "bootstrap_caveat": "descriptive, after validation selection; not an independent significance test", + "selection_split": "validation", + "test_used_for_selection": false +} \ No newline at end of file diff --git a/ablations/10_plateau_breakthrough/workspace/convnext_research_20261010/32X32_temporal_cnv2_k7_seed3407/test_results.json b/ablations/10_plateau_breakthrough/workspace/convnext_research_20261010/32X32_temporal_cnv2_k7_seed3407/test_results.json new file mode 100644 index 0000000000000000000000000000000000000000..011e7395cf10fd0f4e11f4f01f8d7099a67f694d --- /dev/null +++ b/ablations/10_plateau_breakthrough/workspace/convnext_research_20261010/32X32_temporal_cnv2_k7_seed3407/test_results.json @@ -0,0 +1,5672 @@ +{ + "kind": "temporal_cnv2_k7", + "metrics": { + "miou": 0.49455547330691263, + "oa": 0.8109266736579659, + "macro_f1": 0.6234136021853756, + "kappa": 0.7642966739749818, + "per_class_iou": [ + 0.8061330522981268, + 0.7198486670090578, + 0.8757351877577422, + 0.46213693236161063, + 0.8703389461776095, + 0.38416520104311963, + 0.4490553274645572, + 0.6216216216216216, + 0.7901944411308601, + 0.07114146695276376, + 0.5587868716244287, + 0.3175281724644782, + 0.4373326486446833, + 0.2655897022970766, + 0.6168043633350977, + 0.28662647573048294, + 0.0918118400487935, + 0.27714760156231727 + ], + "confusion_matrix": [ + [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + [ + 0, + 1311069, + 6756, + 8420, + 815, + 744, + 883, + 2246, + 19285, + 602, + 381, + 3742, + 6998, + 405, + 29504, + 1126, + 71312, + 1029, + 686, + 0 + ], + [ + 0, + 12671, + 493367, + 5115, + 3930, + 1130, + 1764, + 172, + 746, + 546, + 21217, + 15339, + 437, + 131, + 1045, + 166, + 699, + 2161, + 44, + 0 + ], + [ + 0, + 17785, + 2752, + 641744, + 302, + 960, + 172, + 3539, + 862, + 3810, + 169, + 19, + 2132, + 202, + 3012, + 4846, + 607, + 129, + 5247, + 0 + ], + [ + 0, + 9412, + 46049, + 1786, + 82625, + 1310, + 4247, + 55, + 196, + 62, + 7994, + 4414, + 287, + 376, + 482, + 80, + 252, + 3761, + 4, + 0 + ], + [ + 0, + 2675, + 1166, + 868, + 380, + 120018, + 262, + 124, + 19, + 220, + 688, + 194, + 22, + 35, + 1476, + 29, + 106, + 837, + 0, + 0 + ], + [ + 0, + 4040, + 7283, + 711, + 3621, + 289, + 25338, + 175, + 883, + 118, + 2677, + 5012, + 146, + 454, + 1986, + 330, + 163, + 536, + 0, + 0 + ], + [ + 0, + 1538, + 141, + 3611, + 17, + 249, + 89, + 47797, + 7620, + 3775, + 49, + 378, + 1239, + 1298, + 2624, + 9685, + 632, + 168, + 1023, + 0 + ], + [ + 0, + 18456, + 124, + 4622, + 0, + 0, + 17, + 1317, + 151754, + 0, + 1, + 338, + 854, + 23, + 403, + 328, + 9076, + 0, + 164, + 0 + ], + [ + 0, + 482, + 193, + 1058, + 35, + 123, + 379, + 620, + 116, + 66242, + 0, + 28, + 795, + 26, + 446, + 416, + 71, + 2, + 15, + 0 + ], + [ + 0, + 3092, + 44739, + 412, + 1763, + 216, + 156, + 5, + 11, + 5, + 7062, + 21, + 6, + 0, + 299, + 8, + 83, + 484, + 0, + 0 + ], + [ + 0, + 1322, + 2401, + 20, + 0, + 0, + 1773, + 184, + 1235, + 0, + 143, + 60525, + 38, + 0, + 1508, + 0, + 693, + 4, + 114, + 0 + ], + [ + 0, + 3196, + 123, + 4634, + 46, + 7, + 910, + 9697, + 3978, + 1955, + 63, + 3941, + 25923, + 639, + 1593, + 517, + 2180, + 171, + 1142, + 0 + ], + [ + 0, + 589, + 140, + 1406, + 6, + 31, + 92, + 2996, + 519, + 719, + 7, + 314, + 2523, + 11923, + 406, + 408, + 473, + 9, + 52, + 0 + ], + [ + 0, + 57524, + 1032, + 1194, + 723, + 333, + 1050, + 1045, + 7046, + 405, + 646, + 1114, + 551, + 254, + 47497, + 318, + 6554, + 377, + 131, + 0 + ], + [ + 0, + 1525, + 170, + 6485, + 90, + 129, + 5, + 653, + 17, + 376, + 8, + 2255, + 478, + 3, + 400, + 53604, + 52, + 13, + 2053, + 0 + ], + [ + 0, + 12728, + 331, + 778, + 2, + 0, + 34, + 422, + 10506, + 48, + 33, + 1127, + 965, + 73, + 710, + 23, + 49018, + 5, + 56, + 0 + ], + [ + 0, + 8636, + 11253, + 1214, + 3447, + 3258, + 322, + 34, + 20, + 20, + 6827, + 1, + 610, + 689, + 1495, + 80, + 44, + 4817, + 2, + 0 + ], + [ + 0, + 4694, + 43, + 2183, + 220, + 0, + 39, + 1222, + 3590, + 122, + 2, + 118, + 2844, + 42, + 3653, + 230, + 1161, + 11, + 11850, + 0 + ], + [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ] + ] + }, + "baseline": { + "miou": 0.49455547330691263, + "oa": 0.8109266736579659, + "macro_f1": 0.6234136021853756, + "kappa": 0.7642966739749818, + "per_class_iou": [ + 0.8061330522981268, + 0.7198486670090578, + 0.8757351877577422, + 0.46213693236161063, + 0.8703389461776095, + 0.38416520104311963, + 0.4490553274645572, + 0.6216216216216216, + 0.7901944411308601, + 0.07114146695276376, + 0.5587868716244287, + 0.3175281724644782, + 0.4373326486446833, + 0.2655897022970766, + 0.6168043633350977, + 0.28662647573048294, + 0.0918118400487935, + 0.27714760156231727 + ], + "confusion_matrix": [ + [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + [ + 0, + 1311069, + 6756, + 8420, + 815, + 744, + 883, + 2246, + 19285, + 602, + 381, + 3742, + 6998, + 405, + 29504, + 1126, + 71312, + 1029, + 686, + 0 + ], + [ + 0, + 12671, + 493367, + 5115, + 3930, + 1130, + 1764, + 172, + 746, + 546, + 21217, + 15339, + 437, + 131, + 1045, + 166, + 699, + 2161, + 44, + 0 + ], + [ + 0, + 17785, + 2752, + 641744, + 302, + 960, + 172, + 3539, + 862, + 3810, + 169, + 19, + 2132, + 202, + 3012, + 4846, + 607, + 129, + 5247, + 0 + ], + [ + 0, + 9412, + 46049, + 1786, + 82625, + 1310, + 4247, + 55, + 196, + 62, + 7994, + 4414, + 287, + 376, + 482, + 80, + 252, + 3761, + 4, + 0 + ], + [ + 0, + 2675, + 1166, + 868, + 380, + 120018, + 262, + 124, + 19, + 220, + 688, + 194, + 22, + 35, + 1476, + 29, + 106, + 837, + 0, + 0 + ], + [ + 0, + 4040, + 7283, + 711, + 3621, + 289, + 25338, + 175, + 883, + 118, + 2677, + 5012, + 146, + 454, + 1986, + 330, + 163, + 536, + 0, + 0 + ], + [ + 0, + 1538, + 141, + 3611, + 17, + 249, + 89, + 47797, + 7620, + 3775, + 49, + 378, + 1239, + 1298, + 2624, + 9685, + 632, + 168, + 1023, + 0 + ], + [ + 0, + 18456, + 124, + 4622, + 0, + 0, + 17, + 1317, + 151754, + 0, + 1, + 338, + 854, + 23, + 403, + 328, + 9076, + 0, + 164, + 0 + ], + [ + 0, + 482, + 193, + 1058, + 35, + 123, + 379, + 620, + 116, + 66242, + 0, + 28, + 795, + 26, + 446, + 416, + 71, + 2, + 15, + 0 + ], + [ + 0, + 3092, + 44739, + 412, + 1763, + 216, + 156, + 5, + 11, + 5, + 7062, + 21, + 6, + 0, + 299, + 8, + 83, + 484, + 0, + 0 + ], + [ + 0, + 1322, + 2401, + 20, + 0, + 0, + 1773, + 184, + 1235, + 0, + 143, + 60525, + 38, + 0, + 1508, + 0, + 693, + 4, + 114, + 0 + ], + [ + 0, + 3196, + 123, + 4634, + 46, + 7, + 910, + 9697, + 3978, + 1955, + 63, + 3941, + 25923, + 639, + 1593, + 517, + 2180, + 171, + 1142, + 0 + ], + [ + 0, + 589, + 140, + 1406, + 6, + 31, + 92, + 2996, + 519, + 719, + 7, + 314, + 2523, + 11923, + 406, + 408, + 473, + 9, + 52, + 0 + ], + [ + 0, + 57524, + 1032, + 1194, + 723, + 333, + 1050, + 1045, + 7046, + 405, + 646, + 1114, + 551, + 254, + 47497, + 318, + 6554, + 377, + 131, + 0 + ], + [ + 0, + 1525, + 170, + 6485, + 90, + 129, + 5, + 653, + 17, + 376, + 8, + 2255, + 478, + 3, + 400, + 53604, + 52, + 13, + 2053, + 0 + ], + [ + 0, + 12728, + 331, + 778, + 2, + 0, + 34, + 422, + 10506, + 48, + 33, + 1127, + 965, + 73, + 710, + 23, + 49018, + 5, + 56, + 0 + ], + [ + 0, + 8636, + 11253, + 1214, + 3447, + 3258, + 322, + 34, + 20, + 20, + 6827, + 1, + 610, + 689, + 1495, + 80, + 44, + 4817, + 2, + 0 + ], + [ + 0, + 4694, + 43, + 2183, + 220, + 0, + 39, + 1222, + 3590, + 122, + 2, + 118, + 2844, + 42, + 3653, + 230, + 1161, + 11, + 11850, + 0 + ], + [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ] + ] + }, + "standalone": { + "miou": 0.3534588907897333, + "oa": 0.7207348740783527, + "macro_f1": 0.4779745995312434, + "kappa": 0.652604300255473, + "per_class_iou": [ + 0.7420109584956738, + 0.6197249711855649, + 0.6618617613836052, + 0.24179789687012088, + 0.6649685328927365, + 0.15124449208050494, + 0.34988350606571866, + 0.5299468778189836, + 0.6250459979182657, + 0.015551455360168694, + 0.4163388782128273, + 0.21682168508421534, + 0.13756634254058034, + 0.19556823420931305, + 0.43427822727185783, + 0.2400693538017962, + 0.025994849618580243, + 0.09358601340468645 + ], + "confusion_matrix": [ + [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + [ + 0, + 1254279, + 16711, + 30624, + 3789, + 5513, + 537, + 3940, + 18129, + 2154, + 1088, + 10148, + 3573, + 231, + 45374, + 4036, + 61228, + 2946, + 1703, + 0 + ], + [ + 0, + 29823, + 467787, + 7229, + 9314, + 6349, + 2228, + 416, + 3659, + 769, + 8668, + 14468, + 1568, + 306, + 1979, + 323, + 480, + 4972, + 342, + 0 + ], + [ + 0, + 46763, + 23885, + 510353, + 4379, + 8220, + 995, + 6117, + 3255, + 12638, + 367, + 1085, + 10941, + 1279, + 5342, + 18680, + 1030, + 1601, + 31359, + 0 + ], + [ + 0, + 11546, + 67244, + 3329, + 46770, + 9024, + 3824, + 114, + 346, + 1034, + 4393, + 9869, + 515, + 123, + 1855, + 298, + 206, + 2873, + 29, + 0 + ], + [ + 0, + 3864, + 2528, + 671, + 920, + 115910, + 72, + 120, + 80, + 619, + 868, + 704, + 243, + 13, + 1345, + 736, + 18, + 400, + 8, + 0 + ], + [ + 0, + 4551, + 13030, + 1162, + 3863, + 2091, + 10160, + 177, + 920, + 712, + 1579, + 9320, + 591, + 119, + 1146, + 545, + 249, + 3435, + 112, + 0 + ], + [ + 0, + 4578, + 1258, + 6801, + 150, + 1543, + 293, + 43550, + 7168, + 1039, + 12, + 710, + 3941, + 141, + 1690, + 6843, + 475, + 472, + 1269, + 0 + ], + [ + 0, + 23500, + 575, + 6703, + 1, + 0, + 31, + 7501, + 132182, + 53, + 28, + 2441, + 3373, + 1, + 2278, + 347, + 6416, + 9, + 2038, + 0 + ], + [ + 0, + 2900, + 141, + 2330, + 82, + 2482, + 39, + 362, + 248, + 59450, + 10, + 602, + 841, + 49, + 192, + 542, + 178, + 578, + 21, + 0 + ], + [ + 0, + 4656, + 45249, + 833, + 1532, + 1797, + 105, + 90, + 89, + 52, + 1239, + 620, + 106, + 0, + 348, + 404, + 157, + 929, + 156, + 0 + ], + [ + 0, + 2402, + 2489, + 24, + 29, + 8, + 2239, + 460, + 2729, + 0, + 52, + 55463, + 83, + 0, + 3136, + 1, + 770, + 31, + 44, + 0 + ], + [ + 0, + 3996, + 619, + 5948, + 188, + 565, + 303, + 11113, + 4735, + 1554, + 89, + 2567, + 22309, + 468, + 1542, + 749, + 1034, + 151, + 2785, + 0 + ], + [ + 0, + 2438, + 657, + 1030, + 159, + 294, + 1023, + 1638, + 724, + 993, + 130, + 1135, + 7613, + 3551, + 398, + 434, + 149, + 133, + 114, + 0 + ], + [ + 0, + 58027, + 1952, + 2423, + 750, + 2435, + 986, + 2402, + 7179, + 455, + 219, + 2787, + 996, + 210, + 40722, + 1419, + 3520, + 193, + 1119, + 0 + ], + [ + 0, + 2010, + 924, + 6249, + 115, + 141, + 154, + 1848, + 125, + 1553, + 3, + 662, + 1830, + 161, + 3512, + 45409, + 49, + 138, + 3433, + 0 + ], + [ + 0, + 14545, + 323, + 2359, + 27, + 14, + 183, + 2085, + 8441, + 51, + 9, + 5263, + 1424, + 33, + 4632, + 123, + 36969, + 34, + 344, + 0 + ], + [ + 0, + 6830, + 16401, + 1978, + 4700, + 4711, + 374, + 12, + 234, + 168, + 3741, + 225, + 1122, + 65, + 229, + 285, + 1, + 1605, + 88, + 0 + ], + [ + 0, + 1946, + 164, + 3105, + 36, + 3, + 28, + 4142, + 3887, + 222, + 53, + 650, + 3416, + 1, + 5432, + 481, + 1174, + 79, + 7205, + 0 + ], + [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ] + ] + }, + "delta_test_pp": 0.0, + "standalone_delta_test_pp": -14.109658251717933, + "seconds": 132.49661641614512, + "validation_selection": { + "kind": "temporal_cnv2_k7", + "seed": 3407, + "checkpoint_epoch": 73, + "standalone": { + "miou": 0.40321619164025735, + "oa": 0.7163483681622947, + "macro_f1": 0.5145819436264608, + "kappa": 0.6847067841601968, + "per_class_iou": [ + 0.7455158113011924, + 0.6654477880350078, + 0.655436447166922, + 0.2501005227181343, + 0.8656811317755524, + 0.29034287511796164, + 0.5551532033426184, + 0.6752254641909814, + 0.3692639913622458, + 0.0, + 0.7477188655980271, + 0.09855321587165163, + 0.01608910891089109, + 0.32511100148001976, + 0.43216984526808205, + 0.4645644708086169, + 0.0, + 0.1015177065767285 + ], + "confusion_matrix": [ + [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + [ + 0, + 14381, + 224, + 79, + 23, + 37, + 31, + 12, + 326, + 4, + 6, + 97, + 87, + 0, + 1221, + 27, + 171, + 21, + 33, + 0 + ], + [ + 0, + 343, + 11101, + 114, + 217, + 49, + 171, + 1, + 7, + 11, + 30, + 220, + 32, + 2, + 48, + 8, + 19, + 102, + 2, + 0 + ], + [ + 0, + 263, + 758, + 10272, + 136, + 4, + 7, + 280, + 56, + 43, + 11, + 45, + 65, + 1, + 454, + 434, + 17, + 7, + 1015, + 0 + ], + [ + 0, + 49, + 1129, + 137, + 622, + 49, + 0, + 0, + 0, + 0, + 2, + 24, + 30, + 0, + 0, + 0, + 0, + 5, + 0, + 0 + ], + [ + 0, + 67, + 96, + 79, + 54, + 5446, + 0, + 0, + 0, + 4, + 0, + 16, + 12, + 0, + 2, + 4, + 0, + 9, + 0, + 0 + ], + [ + 0, + 56, + 108, + 16, + 3, + 4, + 923, + 4, + 182, + 0, + 15, + 488, + 0, + 9, + 82, + 120, + 6, + 387, + 5, + 0 + ], + [ + 0, + 41, + 14, + 346, + 0, + 0, + 16, + 3986, + 556, + 0, + 0, + 82, + 143, + 0, + 68, + 117, + 0, + 0, + 10, + 0 + ], + [ + 0, + 83, + 0, + 0, + 0, + 0, + 0, + 95, + 6364, + 0, + 0, + 15, + 0, + 0, + 23, + 0, + 5, + 0, + 13, + 0 + ], + [ + 0, + 25, + 2, + 59, + 0, + 3, + 0, + 3, + 0, + 2052, + 0, + 0, + 0, + 0, + 0, + 22, + 0, + 0, + 0, + 0 + ], + [ + 0, + 121, + 1035, + 5, + 0, + 3, + 10, + 0, + 0, + 0, + 0, + 28, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + [ + 0, + 84, + 30, + 0, + 0, + 0, + 399, + 24, + 88, + 0, + 0, + 6064, + 0, + 0, + 25, + 0, + 26, + 0, + 2, + 0 + ], + [ + 0, + 270, + 101, + 171, + 3, + 8, + 44, + 652, + 356, + 3201, + 17, + 158, + 688, + 0, + 52, + 87, + 4, + 0, + 234, + 0 + ], + [ + 0, + 62, + 22, + 56, + 0, + 0, + 72, + 51, + 93, + 25, + 1, + 1, + 380, + 13, + 1, + 9, + 6, + 0, + 4, + 0 + ], + [ + 0, + 606, + 28, + 51, + 2, + 0, + 0, + 138, + 567, + 0, + 0, + 71, + 10, + 0, + 1977, + 4, + 50, + 0, + 0, + 0 + ], + [ + 0, + 82, + 0, + 216, + 2, + 0, + 18, + 163, + 0, + 89, + 0, + 0, + 0, + 0, + 12, + 1201, + 1, + 6, + 119, + 0 + ], + [ + 0, + 88, + 0, + 14, + 0, + 0, + 0, + 102, + 515, + 0, + 0, + 95, + 5, + 0, + 516, + 4, + 1488, + 0, + 2, + 0 + ], + [ + 0, + 100, + 627, + 152, + 0, + 340, + 2, + 0, + 0, + 14, + 34, + 0, + 0, + 0, + 0, + 25, + 1, + 0, + 0, + 0 + ], + [ + 0, + 170, + 31, + 309, + 0, + 5, + 1, + 276, + 81, + 0, + 3, + 28, + 171, + 0, + 73, + 9, + 68, + 0, + 301, + 0 + ], + [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ] + ] + }, + "chosen": { + "mode": "add", + "alpha": 0.0, + "metrics": { + "miou": 0.5256398451814701, + "oa": 0.7954606313128608, + "macro_f1": 0.6400266863319044, + "kappa": 0.7725060156424988, + "per_class_iou": [ + 0.7863696632193052, + 0.7940560621411685, + 0.8422681105804802, + 0.5216035634743875, + 0.8953563366655918, + 0.5666403785488959, + 0.6681021224238696, + 0.6854425749817118, + 0.3865969759193579, + 0.15913978494623657, + 0.8521227955584585, + 0.16817463736895016, + 0.15324165029469547, + 0.3526720731960907, + 0.8232323232323232, + 0.5073836723321259, + 0.010297482837528604, + 0.2888170055452865 + ], + "confusion_matrix": [ + [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + [ + 0, + 14827, + 104, + 46, + 8, + 16, + 20, + 1, + 480, + 0, + 3, + 211, + 80, + 3, + 659, + 16, + 296, + 4, + 6, + 0 + ], + [ + 0, + 160, + 11756, + 93, + 27, + 17, + 59, + 3, + 0, + 18, + 25, + 184, + 13, + 1, + 99, + 0, + 10, + 4, + 8, + 0 + ], + [ + 0, + 165, + 132, + 12522, + 19, + 10, + 2, + 144, + 0, + 31, + 1, + 0, + 2, + 6, + 113, + 137, + 34, + 11, + 539, + 0 + ], + [ + 0, + 23, + 477, + 28, + 1171, + 50, + 1, + 0, + 0, + 0, + 130, + 0, + 18, + 10, + 0, + 2, + 6, + 128, + 3, + 0 + ], + [ + 0, + 83, + 1, + 23, + 0, + 5553, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 19, + 8, + 1, + 101, + 0, + 0 + ], + [ + 0, + 96, + 76, + 5, + 7, + 0, + 1437, + 49, + 253, + 0, + 0, + 217, + 0, + 0, + 77, + 0, + 5, + 186, + 0, + 0 + ], + [ + 0, + 7, + 0, + 14, + 0, + 0, + 10, + 4344, + 415, + 65, + 0, + 10, + 472, + 0, + 33, + 1, + 4, + 0, + 4, + 0 + ], + [ + 0, + 29, + 0, + 0, + 0, + 0, + 0, + 0, + 6559, + 0, + 0, + 9, + 0, + 0, + 0, + 0, + 1, + 0, + 0, + 0 + ], + [ + 0, + 6, + 20, + 6, + 0, + 1, + 0, + 26, + 0, + 2071, + 0, + 0, + 16, + 14, + 5, + 1, + 0, + 0, + 0, + 0 + ], + [ + 0, + 34, + 886, + 0, + 14, + 0, + 2, + 0, + 0, + 5, + 222, + 0, + 0, + 0, + 5, + 0, + 30, + 4, + 0, + 0 + ], + [ + 0, + 17, + 0, + 0, + 91, + 0, + 14, + 5, + 10, + 0, + 0, + 6523, + 0, + 0, + 13, + 0, + 63, + 0, + 6, + 0 + ], + [ + 0, + 107, + 18, + 205, + 0, + 3, + 10, + 473, + 524, + 2954, + 6, + 129, + 1171, + 188, + 120, + 47, + 11, + 8, + 72, + 0 + ], + [ + 0, + 1, + 44, + 53, + 0, + 0, + 0, + 189, + 8, + 36, + 1, + 71, + 216, + 156, + 12, + 2, + 7, + 0, + 0, + 0 + ], + [ + 0, + 1027, + 18, + 38, + 0, + 0, + 10, + 43, + 402, + 0, + 0, + 58, + 0, + 0, + 1696, + 0, + 205, + 7, + 0, + 0 + ], + [ + 0, + 28, + 6, + 32, + 4, + 6, + 0, + 0, + 0, + 40, + 0, + 0, + 0, + 0, + 0, + 1793, + 0, + 0, + 0, + 0 + ], + [ + 0, + 51, + 0, + 8, + 0, + 0, + 0, + 19, + 875, + 0, + 0, + 14, + 0, + 0, + 41, + 0, + 1821, + 0, + 0, + 0 + ], + [ + 0, + 230, + 546, + 75, + 28, + 310, + 0, + 0, + 0, + 42, + 27, + 0, + 0, + 0, + 0, + 4, + 15, + 18, + 0, + 0 + ], + [ + 0, + 11, + 0, + 373, + 0, + 0, + 0, + 171, + 4, + 0, + 0, + 10, + 100, + 0, + 109, + 51, + 72, + 0, + 625, + 0 + ], + [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ] + ] + } + }, + "records": [ + { + "mode": "add", + "alpha": 0.0, + "metrics": { + "miou": 0.5256398451814701, + "oa": 0.7954606313128608, + "macro_f1": 0.6400266863319044, + "kappa": 0.7725060156424988, + "per_class_iou": [ + 0.7863696632193052, + 0.7940560621411685, + 0.8422681105804802, + 0.5216035634743875, + 0.8953563366655918, + 0.5666403785488959, + 0.6681021224238696, + 0.6854425749817118, + 0.3865969759193579, + 0.15913978494623657, + 0.8521227955584585, + 0.16817463736895016, + 0.15324165029469547, + 0.3526720731960907, + 0.8232323232323232, + 0.5073836723321259, + 0.010297482837528604, + 0.2888170055452865 + ], + "confusion_matrix": [ + [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + [ + 0, + 14827, + 104, + 46, + 8, + 16, + 20, + 1, + 480, + 0, + 3, + 211, + 80, + 3, + 659, + 16, + 296, + 4, + 6, + 0 + ], + [ + 0, + 160, + 11756, + 93, + 27, + 17, + 59, + 3, + 0, + 18, + 25, + 184, + 13, + 1, + 99, + 0, + 10, + 4, + 8, + 0 + ], + [ + 0, + 165, + 132, + 12522, + 19, + 10, + 2, + 144, + 0, + 31, + 1, + 0, + 2, + 6, + 113, + 137, + 34, + 11, + 539, + 0 + ], + [ + 0, + 23, + 477, + 28, + 1171, + 50, + 1, + 0, + 0, + 0, + 130, + 0, + 18, + 10, + 0, + 2, + 6, + 128, + 3, + 0 + ], + [ + 0, + 83, + 1, + 23, + 0, + 5553, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 19, + 8, + 1, + 101, + 0, + 0 + ], + [ + 0, + 96, + 76, + 5, + 7, + 0, + 1437, + 49, + 253, + 0, + 0, + 217, + 0, + 0, + 77, + 0, + 5, + 186, + 0, + 0 + ], + [ + 0, + 7, + 0, + 14, + 0, + 0, + 10, + 4344, + 415, + 65, + 0, + 10, + 472, + 0, + 33, + 1, + 4, + 0, + 4, + 0 + ], + [ + 0, + 29, + 0, + 0, + 0, + 0, + 0, + 0, + 6559, + 0, + 0, + 9, + 0, + 0, + 0, + 0, + 1, + 0, + 0, + 0 + ], + [ + 0, + 6, + 20, + 6, + 0, + 1, + 0, + 26, + 0, + 2071, + 0, + 0, + 16, + 14, + 5, + 1, + 0, + 0, + 0, + 0 + ], + [ + 0, + 34, + 886, + 0, + 14, + 0, + 2, + 0, + 0, + 5, + 222, + 0, + 0, + 0, + 5, + 0, + 30, + 4, + 0, + 0 + ], + [ + 0, + 17, + 0, + 0, + 91, + 0, + 14, + 5, + 10, + 0, + 0, + 6523, + 0, + 0, + 13, + 0, + 63, + 0, + 6, + 0 + ], + [ + 0, + 107, + 18, + 205, + 0, + 3, + 10, + 473, + 524, + 2954, + 6, + 129, + 1171, + 188, + 120, + 47, + 11, + 8, + 72, + 0 + ], + [ + 0, + 1, + 44, + 53, + 0, + 0, + 0, + 189, + 8, + 36, + 1, + 71, + 216, + 156, + 12, + 2, + 7, + 0, + 0, + 0 + ], + [ + 0, + 1027, + 18, + 38, + 0, + 0, + 10, + 43, + 402, + 0, + 0, + 58, + 0, + 0, + 1696, + 0, + 205, + 7, + 0, + 0 + ], + [ + 0, + 28, + 6, + 32, + 4, + 6, + 0, + 0, + 0, + 40, + 0, + 0, + 0, + 0, + 0, + 1793, + 0, + 0, + 0, + 0 + ], + [ + 0, + 51, + 0, + 8, + 0, + 0, + 0, + 19, + 875, + 0, + 0, + 14, + 0, + 0, + 41, + 0, + 1821, + 0, + 0, + 0 + ], + [ + 0, + 230, + 546, + 75, + 28, + 310, + 0, + 0, + 0, + 42, + 27, + 0, + 0, + 0, + 0, + 4, + 15, + 18, + 0, + 0 + ], + [ + 0, + 11, + 0, + 373, + 0, + 0, + 0, + 171, + 4, + 0, + 0, + 10, + 100, + 0, + 109, + 51, + 72, + 0, + 625, + 0 + ], + [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ] + ] + } + }, + { + "mode": "add", + "alpha": 0.1, + "metrics": { + "miou": 0.5216519009443068, + "oa": 0.7940253424877626, + "macro_f1": 0.6358232034975959, + "kappa": 0.7707987982836775, + "per_class_iou": [ + 0.7885408951433711, + 0.785475234270415, + 0.8427411235653399, + 0.51599819738621, + 0.8947453255963894, + 0.5482213438735178, + 0.6648326455754241, + 0.6852781263069845, + 0.3824393828067597, + 0.14583333333333334, + 0.8470420342501297, + 0.15005020800459046, + 0.15208747514910537, + 0.3603281447202356, + 0.8129562043795621, + 0.5105366676032593, + 0.007553747821034283, + 0.2950741272118603 + ], + "confusion_matrix": [ + [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + [ + 0, + 14905, + 104, + 47, + 4, + 15, + 20, + 0, + 478, + 0, + 3, + 204, + 76, + 3, + 610, + 16, + 286, + 4, + 5, + 0 + ], + [ + 0, + 185, + 11735, + 92, + 25, + 18, + 62, + 2, + 0, + 18, + 22, + 184, + 10, + 1, + 101, + 0, + 11, + 3, + 8, + 0 + ], + [ + 0, + 166, + 137, + 12556, + 12, + 9, + 2, + 174, + 0, + 33, + 0, + 0, + 2, + 5, + 114, + 149, + 32, + 8, + 469, + 0 + ], + [ + 0, + 20, + 570, + 32, + 1145, + 51, + 0, + 0, + 0, + 0, + 92, + 0, + 18, + 10, + 0, + 2, + 5, + 99, + 3, + 0 + ], + [ + 0, + 84, + 3, + 28, + 0, + 5551, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 19, + 5, + 0, + 99, + 0, + 0 + ], + [ + 0, + 90, + 64, + 5, + 5, + 0, + 1387, + 43, + 257, + 0, + 0, + 269, + 0, + 0, + 86, + 0, + 5, + 197, + 0, + 0 + ], + [ + 0, + 11, + 1, + 19, + 0, + 0, + 9, + 4350, + 418, + 61, + 0, + 10, + 464, + 0, + 32, + 1, + 2, + 0, + 1, + 0 + ], + [ + 0, + 35, + 0, + 0, + 0, + 0, + 0, + 0, + 6554, + 0, + 0, + 8, + 0, + 0, + 0, + 0, + 1, + 0, + 0, + 0 + ], + [ + 0, + 4, + 20, + 7, + 0, + 2, + 0, + 23, + 0, + 2082, + 0, + 0, + 16, + 9, + 2, + 1, + 0, + 0, + 0, + 0 + ], + [ + 0, + 39, + 914, + 0, + 10, + 0, + 0, + 0, + 0, + 5, + 196, + 0, + 0, + 0, + 5, + 0, + 30, + 3, + 0, + 0 + ], + [ + 0, + 19, + 0, + 0, + 85, + 0, + 15, + 6, + 11, + 0, + 0, + 6529, + 0, + 0, + 14, + 0, + 60, + 0, + 3, + 0 + ], + [ + 0, + 120, + 21, + 211, + 0, + 2, + 7, + 502, + 513, + 3038, + 5, + 141, + 1046, + 182, + 111, + 54, + 9, + 8, + 76, + 0 + ], + [ + 0, + 4, + 45, + 51, + 0, + 0, + 0, + 185, + 9, + 39, + 1, + 64, + 226, + 153, + 11, + 2, + 6, + 0, + 0, + 0 + ], + [ + 0, + 1025, + 18, + 38, + 0, + 0, + 7, + 40, + 400, + 0, + 0, + 58, + 0, + 0, + 1713, + 0, + 200, + 5, + 0, + 0 + ], + [ + 0, + 28, + 6, + 44, + 4, + 5, + 0, + 0, + 0, + 40, + 0, + 0, + 0, + 0, + 0, + 1782, + 0, + 0, + 0, + 0 + ], + [ + 0, + 52, + 0, + 8, + 0, + 0, + 0, + 19, + 871, + 0, + 0, + 18, + 0, + 0, + 44, + 0, + 1817, + 0, + 0, + 0 + ], + [ + 0, + 222, + 560, + 81, + 27, + 313, + 0, + 0, + 0, + 44, + 19, + 0, + 0, + 0, + 0, + 3, + 13, + 13, + 0, + 0 + ], + [ + 0, + 18, + 0, + 368, + 0, + 0, + 0, + 170, + 9, + 0, + 0, + 10, + 113, + 0, + 101, + 50, + 70, + 0, + 617, + 0 + ], + [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ] + ] + } + }, + { + "mode": "add", + "alpha": 0.25, + "metrics": { + "miou": 0.5102471079440807, + "oa": 0.7902228982123156, + "macro_f1": 0.6231387918406224, + "kappa": 0.7663660485606661, + "per_class_iou": [ + 0.7898756847871892, + 0.7747325320301149, + 0.8382264829239066, + 0.5052201543349978, + 0.8927536231884058, + 0.4927706135209066, + 0.653654860587792, + 0.6854779604229924, + 0.38145454545454544, + 0.09664848012470771, + 0.8329931104873692, + 0.12923121055651177, + 0.13109756097560976, + 0.36265137029955385, + 0.7954033348355115, + 0.5126074498567336, + 0.0036188178528347406, + 0.3060301507537688 + ], + "confusion_matrix": [ + [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + [ + 0, + 14995, + 99, + 49, + 3, + 13, + 23, + 0, + 476, + 0, + 2, + 192, + 71, + 2, + 567, + 19, + 262, + 1, + 6, + 0 + ], + [ + 0, + 200, + 11731, + 93, + 22, + 22, + 67, + 1, + 0, + 18, + 11, + 183, + 5, + 1, + 101, + 0, + 14, + 2, + 6, + 0 + ], + [ + 0, + 163, + 142, + 12591, + 7, + 8, + 2, + 213, + 1, + 35, + 0, + 0, + 1, + 5, + 121, + 169, + 27, + 4, + 379, + 0 + ], + [ + 0, + 22, + 699, + 50, + 1113, + 50, + 0, + 0, + 0, + 0, + 54, + 0, + 12, + 10, + 0, + 0, + 1, + 36, + 0, + 0 + ], + [ + 0, + 81, + 17, + 40, + 0, + 5544, + 0, + 0, + 0, + 0, + 0, + 5, + 0, + 0, + 14, + 2, + 0, + 86, + 0, + 0 + ], + [ + 0, + 91, + 56, + 7, + 4, + 0, + 1261, + 34, + 250, + 0, + 0, + 388, + 0, + 0, + 85, + 0, + 5, + 227, + 0, + 0 + ], + [ + 0, + 17, + 0, + 82, + 0, + 0, + 12, + 4337, + 424, + 32, + 0, + 8, + 445, + 0, + 21, + 0, + 1, + 0, + 0, + 0 + ], + [ + 0, + 42, + 0, + 0, + 0, + 0, + 0, + 0, + 6547, + 0, + 0, + 7, + 0, + 0, + 0, + 0, + 2, + 0, + 0, + 0 + ], + [ + 0, + 9, + 17, + 5, + 0, + 1, + 0, + 19, + 0, + 2098, + 0, + 0, + 12, + 4, + 0, + 1, + 0, + 0, + 0, + 0 + ], + [ + 0, + 58, + 972, + 0, + 8, + 1, + 4, + 0, + 0, + 4, + 124, + 0, + 0, + 0, + 3, + 0, + 28, + 0, + 0, + 0 + ], + [ + 0, + 23, + 0, + 0, + 84, + 0, + 17, + 6, + 10, + 0, + 0, + 6529, + 0, + 0, + 15, + 0, + 56, + 0, + 2, + 0 + ], + [ + 0, + 140, + 24, + 224, + 0, + 0, + 5, + 571, + 466, + 3124, + 7, + 170, + 901, + 166, + 92, + 72, + 7, + 6, + 71, + 0 + ], + [ + 0, + 11, + 36, + 51, + 0, + 0, + 19, + 175, + 16, + 39, + 0, + 52, + 257, + 129, + 5, + 0, + 6, + 0, + 0, + 0 + ], + [ + 0, + 1021, + 18, + 40, + 0, + 0, + 2, + 39, + 436, + 0, + 0, + 64, + 0, + 0, + 1707, + 0, + 177, + 0, + 0, + 0 + ], + [ + 0, + 37, + 6, + 54, + 2, + 4, + 0, + 0, + 0, + 40, + 0, + 0, + 0, + 0, + 0, + 1765, + 0, + 1, + 0, + 0 + ], + [ + 0, + 51, + 0, + 8, + 0, + 0, + 0, + 20, + 853, + 0, + 0, + 19, + 0, + 0, + 89, + 0, + 1789, + 0, + 0, + 0 + ], + [ + 0, + 211, + 579, + 91, + 26, + 322, + 0, + 0, + 0, + 42, + 7, + 0, + 0, + 0, + 0, + 2, + 9, + 6, + 0, + 0 + ], + [ + 0, + 27, + 0, + 359, + 0, + 0, + 0, + 178, + 21, + 0, + 0, + 8, + 123, + 0, + 90, + 45, + 66, + 0, + 609, + 0 + ], + [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ] + ] + } + }, + { + "mode": "add", + "alpha": 0.5, + "metrics": { + "miou": 0.4878944761716712, + "oa": 0.780390098649329, + "macro_f1": 0.5980646976397048, + "kappa": 0.7552214865794974, + "per_class_iou": [ + 0.7901059699926556, + 0.7483750563099298, + 0.81121849288233, + 0.4531177829099307, + 0.8861958266452649, + 0.42669666291713537, + 0.6363636363636364, + 0.6804672020022943, + 0.38173897259030676, + 0.0008103727714748784, + 0.8215415770155676, + 0.11190859821297788, + 0.10903083700440529, + 0.37358568195844477, + 0.7431788653096578, + 0.5212066905615292, + 0.0, + 0.2865583456425406 + ], + "confusion_matrix": [ + [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + [ + 0, + 15061, + 94, + 50, + 3, + 17, + 11, + 0, + 447, + 0, + 1, + 134, + 80, + 1, + 626, + 19, + 225, + 1, + 10, + 0 + ], + [ + 0, + 255, + 11629, + 108, + 31, + 30, + 93, + 0, + 2, + 13, + 8, + 203, + 1, + 1, + 76, + 0, + 20, + 7, + 0, + 0 + ], + [ + 0, + 180, + 191, + 12423, + 15, + 6, + 2, + 227, + 10, + 34, + 0, + 0, + 0, + 3, + 147, + 225, + 21, + 1, + 383, + 0 + ], + [ + 0, + 42, + 835, + 119, + 981, + 50, + 0, + 0, + 0, + 0, + 8, + 0, + 2, + 5, + 0, + 0, + 0, + 5, + 0, + 0 + ], + [ + 0, + 59, + 72, + 78, + 3, + 5521, + 0, + 0, + 0, + 0, + 0, + 12, + 0, + 0, + 4, + 4, + 0, + 36, + 0, + 0 + ], + [ + 0, + 84, + 45, + 14, + 2, + 0, + 1138, + 14, + 200, + 0, + 2, + 470, + 0, + 0, + 83, + 32, + 5, + 319, + 0, + 0 + ], + [ + 0, + 25, + 0, + 194, + 0, + 0, + 8, + 4263, + 559, + 6, + 0, + 55, + 229, + 0, + 33, + 4, + 1, + 0, + 2, + 0 + ], + [ + 0, + 59, + 0, + 0, + 0, + 0, + 0, + 2, + 6525, + 0, + 0, + 9, + 0, + 0, + 3, + 0, + 0, + 0, + 0, + 0 + ], + [ + 0, + 17, + 8, + 10, + 0, + 1, + 0, + 11, + 0, + 2103, + 0, + 0, + 3, + 3, + 0, + 10, + 0, + 0, + 0, + 0 + ], + [ + 0, + 100, + 1071, + 4, + 3, + 1, + 8, + 0, + 0, + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 13, + 0, + 0, + 0 + ], + [ + 0, + 40, + 0, + 0, + 44, + 0, + 75, + 15, + 15, + 0, + 0, + 6491, + 0, + 0, + 15, + 0, + 45, + 0, + 2, + 0 + ], + [ + 0, + 209, + 56, + 222, + 0, + 0, + 12, + 669, + 409, + 3172, + 5, + 171, + 764, + 99, + 69, + 71, + 7, + 3, + 108, + 0 + ], + [ + 0, + 30, + 28, + 53, + 0, + 0, + 49, + 94, + 53, + 34, + 0, + 18, + 330, + 99, + 0, + 1, + 7, + 0, + 0, + 0 + ], + [ + 0, + 886, + 22, + 43, + 0, + 0, + 0, + 40, + 529, + 0, + 0, + 62, + 0, + 0, + 1816, + 0, + 106, + 0, + 0, + 0 + ], + [ + 0, + 56, + 2, + 88, + 0, + 1, + 0, + 0, + 0, + 42, + 0, + 0, + 0, + 0, + 0, + 1716, + 0, + 4, + 0, + 0 + ], + [ + 0, + 51, + 0, + 8, + 0, + 0, + 0, + 52, + 727, + 0, + 0, + 23, + 0, + 0, + 222, + 1, + 1745, + 0, + 0, + 0 + ], + [ + 0, + 152, + 631, + 110, + 17, + 335, + 0, + 0, + 0, + 41, + 8, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 0, + 0 + ], + [ + 0, + 37, + 7, + 345, + 0, + 0, + 1, + 196, + 40, + 0, + 0, + 2, + 136, + 0, + 79, + 33, + 68, + 0, + 582, + 0 + ], + [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ] + ] + } + }, + { + "mode": "replace", + "alpha": 0.1, + "metrics": { + "miou": 0.5180305111390306, + "oa": 0.7881984983022889, + "macro_f1": 0.6315239655756552, + "kappa": 0.7647124591036658, + "per_class_iou": [ + 0.786045026345202, + 0.801616957673755, + 0.8031203566121843, + 0.5486205336951605, + 0.8993863049095607, + 0.5559875583203733, + 0.6289709682322542, + 0.6905438098243399, + 0.38863892013498313, + 0.14329643296432965, + 0.8477414330218068, + 0.1943744752308984, + 0.11217641418983701, + 0.3350659736105558, + 0.8354312354312354, + 0.510632183908046, + 0.019716574245224893, + 0.2231840421528039 + ], + "confusion_matrix": [ + [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + [ + 0, + 14769, + 116, + 49, + 41, + 14, + 47, + 5, + 490, + 0, + 3, + 204, + 82, + 3, + 688, + 22, + 237, + 5, + 5, + 0 + ], + [ + 0, + 109, + 11799, + 82, + 7, + 17, + 58, + 3, + 0, + 19, + 55, + 187, + 20, + 3, + 98, + 0, + 8, + 4, + 8, + 0 + ], + [ + 0, + 161, + 126, + 11891, + 18, + 10, + 3, + 209, + 0, + 32, + 3, + 0, + 2, + 6, + 186, + 127, + 36, + 0, + 1058, + 0 + ], + [ + 0, + 21, + 421, + 39, + 1213, + 47, + 5, + 0, + 0, + 0, + 248, + 0, + 9, + 8, + 0, + 0, + 19, + 13, + 4, + 0 + ], + [ + 0, + 70, + 11, + 27, + 0, + 5569, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 18, + 7, + 0, + 87, + 0, + 0 + ], + [ + 0, + 65, + 72, + 4, + 14, + 1, + 1430, + 24, + 236, + 0, + 2, + 279, + 0, + 0, + 88, + 0, + 4, + 189, + 0, + 0 + ], + [ + 0, + 5, + 1, + 10, + 0, + 0, + 14, + 4138, + 341, + 113, + 0, + 10, + 647, + 2, + 77, + 3, + 3, + 0, + 15, + 0 + ], + [ + 0, + 24, + 0, + 0, + 0, + 0, + 0, + 0, + 6565, + 0, + 0, + 8, + 0, + 0, + 0, + 0, + 1, + 0, + 0, + 0 + ], + [ + 0, + 5, + 21, + 4, + 0, + 0, + 0, + 18, + 0, + 2073, + 0, + 0, + 24, + 18, + 3, + 0, + 0, + 0, + 0, + 0 + ], + [ + 0, + 28, + 893, + 0, + 2, + 0, + 2, + 0, + 0, + 5, + 233, + 0, + 0, + 0, + 5, + 0, + 31, + 3, + 0, + 0 + ], + [ + 0, + 14, + 1, + 0, + 66, + 0, + 25, + 5, + 11, + 0, + 0, + 6531, + 0, + 0, + 20, + 0, + 62, + 0, + 7, + 0 + ], + [ + 0, + 120, + 22, + 141, + 1, + 4, + 2, + 454, + 492, + 2881, + 0, + 111, + 1389, + 207, + 153, + 18, + 8, + 10, + 33, + 0 + ], + [ + 0, + 2, + 46, + 49, + 0, + 3, + 0, + 195, + 7, + 40, + 1, + 91, + 219, + 117, + 16, + 4, + 5, + 0, + 1, + 0 + ], + [ + 0, + 1038, + 18, + 38, + 0, + 2, + 7, + 54, + 422, + 0, + 0, + 60, + 6, + 0, + 1676, + 0, + 166, + 17, + 0, + 0 + ], + [ + 0, + 25, + 10, + 31, + 7, + 6, + 0, + 1, + 0, + 36, + 0, + 0, + 0, + 0, + 0, + 1792, + 1, + 0, + 0, + 0 + ], + [ + 0, + 55, + 0, + 6, + 0, + 0, + 0, + 39, + 910, + 0, + 0, + 7, + 0, + 0, + 35, + 0, + 1777, + 0, + 0, + 0 + ], + [ + 0, + 252, + 484, + 35, + 8, + 299, + 0, + 0, + 0, + 42, + 112, + 0, + 0, + 0, + 0, + 4, + 27, + 32, + 0, + 0 + ], + [ + 0, + 15, + 0, + 423, + 0, + 0, + 1, + 193, + 0, + 0, + 0, + 5, + 91, + 0, + 111, + 51, + 43, + 0, + 593, + 0 + ], + [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ] + ] + } + }, + { + "mode": "replace", + "alpha": 0.25, + "metrics": { + "miou": 0.513433115030566, + "oa": 0.7888518760510277, + "macro_f1": 0.6271212239575974, + "kappa": 0.7651433110880229, + "per_class_iou": [ + 0.7899458541246417, + 0.7809391165937127, + 0.810261569416499, + 0.5169059749884206, + 0.8984009045388467, + 0.5137224584460766, + 0.6436677258284158, + 0.6875655273642273, + 0.3932184338703634, + 0.12100139082058414, + 0.8414006179196705, + 0.18415083640487667, + 0.11363636363636363, + 0.3460534243824061, + 0.8284518828451883, + 0.5168473483738646, + 0.014823965410747375, + 0.2408026755852843 + ], + "confusion_matrix": [ + [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + [ + 0, + 14881, + 109, + 44, + 18, + 14, + 41, + 3, + 479, + 0, + 3, + 182, + 79, + 3, + 676, + 23, + 212, + 5, + 8, + 0 + ], + [ + 0, + 141, + 11775, + 86, + 3, + 19, + 66, + 2, + 0, + 16, + 44, + 186, + 16, + 1, + 100, + 0, + 10, + 4, + 8, + 0 + ], + [ + 0, + 153, + 143, + 12081, + 12, + 8, + 3, + 240, + 0, + 33, + 2, + 0, + 2, + 5, + 199, + 144, + 31, + 0, + 812, + 0 + ], + [ + 0, + 19, + 670, + 55, + 1116, + 50, + 0, + 0, + 0, + 0, + 104, + 0, + 9, + 8, + 0, + 0, + 8, + 6, + 2, + 0 + ], + [ + 0, + 74, + 23, + 36, + 0, + 5562, + 0, + 0, + 0, + 0, + 0, + 5, + 0, + 0, + 10, + 5, + 0, + 74, + 0, + 0 + ], + [ + 0, + 63, + 71, + 4, + 10, + 0, + 1329, + 19, + 247, + 0, + 1, + 349, + 0, + 0, + 99, + 0, + 4, + 212, + 0, + 0 + ], + [ + 0, + 10, + 0, + 40, + 0, + 0, + 12, + 4254, + 357, + 101, + 0, + 10, + 527, + 0, + 58, + 2, + 2, + 0, + 6, + 0 + ], + [ + 0, + 30, + 0, + 0, + 0, + 0, + 0, + 0, + 6558, + 0, + 0, + 9, + 0, + 0, + 0, + 0, + 1, + 0, + 0, + 0 + ], + [ + 0, + 4, + 19, + 4, + 0, + 0, + 0, + 11, + 0, + 2099, + 0, + 0, + 22, + 7, + 0, + 0, + 0, + 0, + 0, + 0 + ], + [ + 0, + 37, + 945, + 0, + 2, + 1, + 4, + 0, + 0, + 3, + 174, + 0, + 0, + 0, + 5, + 0, + 31, + 0, + 0, + 0 + ], + [ + 0, + 18, + 0, + 0, + 60, + 0, + 31, + 5, + 11, + 0, + 0, + 6536, + 0, + 0, + 20, + 0, + 58, + 0, + 3, + 0 + ], + [ + 0, + 135, + 22, + 170, + 0, + 2, + 1, + 493, + 521, + 2897, + 1, + 136, + 1299, + 192, + 126, + 10, + 5, + 9, + 27, + 0 + ], + [ + 0, + 3, + 39, + 51, + 0, + 0, + 16, + 180, + 12, + 43, + 0, + 75, + 244, + 115, + 9, + 2, + 7, + 0, + 0, + 0 + ], + [ + 0, + 1025, + 19, + 40, + 0, + 2, + 5, + 49, + 416, + 0, + 0, + 60, + 3, + 0, + 1723, + 0, + 148, + 14, + 0, + 0 + ], + [ + 0, + 28, + 8, + 46, + 3, + 6, + 0, + 0, + 0, + 36, + 0, + 0, + 0, + 0, + 0, + 1782, + 0, + 0, + 0, + 0 + ], + [ + 0, + 53, + 0, + 6, + 0, + 0, + 0, + 34, + 892, + 0, + 0, + 11, + 0, + 0, + 69, + 0, + 1764, + 0, + 0, + 0 + ], + [ + 0, + 246, + 533, + 39, + 4, + 300, + 0, + 0, + 0, + 43, + 81, + 0, + 0, + 0, + 0, + 4, + 21, + 24, + 0, + 0 + ], + [ + 0, + 19, + 0, + 421, + 0, + 0, + 0, + 194, + 5, + 0, + 0, + 3, + 106, + 0, + 104, + 52, + 46, + 0, + 576, + 0 + ], + [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ] + ] + } + }, + { + "mode": "replace", + "alpha": 0.5, + "metrics": { + "miou": 0.49365846952784387, + "oa": 0.781782543031887, + "macro_f1": 0.6037256549965879, + "kappa": 0.7568655063464111, + "per_class_iou": [ + 0.7905167428901856, + 0.7523367498227294, + 0.8084616396894329, + 0.4831992427827733, + 0.8915003219575016, + 0.4319526627218935, + 0.6357536901744446, + 0.6867964229352972, + 0.3830446672743847, + 0.014139827179890024, + 0.8288886053336736, + 0.12961642663624698, + 0.1095890410958904, + 0.36689488521949254, + 0.7788245850157021, + 0.5209906372697071, + 0.0, + 0.2733463035019455 + ], + "confusion_matrix": [ + [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + [ + 0, + 15038, + 104, + 43, + 2, + 13, + 16, + 0, + 447, + 0, + 1, + 129, + 82, + 2, + 668, + 28, + 199, + 1, + 7, + 0 + ], + [ + 0, + 219, + 11671, + 98, + 19, + 31, + 92, + 0, + 1, + 11, + 22, + 189, + 5, + 1, + 93, + 0, + 16, + 5, + 4, + 0 + ], + [ + 0, + 172, + 201, + 12287, + 14, + 6, + 2, + 271, + 6, + 34, + 1, + 0, + 2, + 4, + 220, + 179, + 18, + 0, + 451, + 0 + ], + [ + 0, + 30, + 799, + 127, + 1021, + 50, + 0, + 0, + 0, + 0, + 9, + 0, + 3, + 4, + 0, + 0, + 0, + 4, + 0, + 0 + ], + [ + 0, + 63, + 67, + 69, + 1, + 5538, + 0, + 0, + 0, + 0, + 0, + 14, + 0, + 0, + 2, + 2, + 0, + 33, + 0, + 0 + ], + [ + 0, + 67, + 66, + 9, + 5, + 0, + 1168, + 12, + 219, + 0, + 1, + 439, + 0, + 0, + 91, + 31, + 4, + 296, + 0, + 0 + ], + [ + 0, + 20, + 0, + 179, + 0, + 0, + 10, + 4264, + 393, + 13, + 0, + 30, + 428, + 0, + 33, + 3, + 1, + 0, + 5, + 0 + ], + [ + 0, + 57, + 0, + 0, + 0, + 0, + 0, + 0, + 6528, + 0, + 0, + 8, + 0, + 0, + 3, + 0, + 2, + 0, + 0, + 0 + ], + [ + 0, + 16, + 15, + 10, + 0, + 0, + 0, + 6, + 0, + 2101, + 0, + 0, + 7, + 5, + 0, + 6, + 0, + 0, + 0, + 0 + ], + [ + 0, + 77, + 1067, + 1, + 2, + 1, + 8, + 0, + 0, + 1, + 18, + 0, + 0, + 0, + 2, + 0, + 25, + 0, + 0, + 0 + ], + [ + 0, + 31, + 0, + 0, + 16, + 0, + 109, + 13, + 13, + 0, + 0, + 6496, + 0, + 0, + 14, + 0, + 48, + 0, + 2, + 0 + ], + [ + 0, + 208, + 41, + 181, + 0, + 0, + 16, + 616, + 456, + 3142, + 2, + 172, + 909, + 137, + 70, + 29, + 2, + 4, + 61, + 0 + ], + [ + 0, + 19, + 38, + 45, + 0, + 0, + 41, + 112, + 51, + 39, + 0, + 29, + 311, + 104, + 1, + 0, + 6, + 0, + 0, + 0 + ], + [ + 0, + 921, + 21, + 45, + 0, + 0, + 1, + 42, + 493, + 0, + 0, + 62, + 0, + 0, + 1822, + 0, + 97, + 0, + 0, + 0 + ], + [ + 0, + 46, + 6, + 78, + 0, + 3, + 0, + 0, + 0, + 38, + 0, + 0, + 0, + 0, + 0, + 1736, + 0, + 2, + 0, + 0 + ], + [ + 0, + 52, + 0, + 6, + 0, + 0, + 0, + 47, + 792, + 0, + 0, + 21, + 0, + 0, + 184, + 2, + 1725, + 0, + 0, + 0 + ], + [ + 0, + 212, + 604, + 65, + 7, + 319, + 0, + 0, + 0, + 41, + 35, + 0, + 0, + 0, + 0, + 0, + 12, + 0, + 0, + 0 + ], + [ + 0, + 33, + 7, + 374, + 0, + 0, + 1, + 209, + 36, + 0, + 0, + 2, + 129, + 0, + 81, + 40, + 52, + 0, + 562, + 0 + ], + [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ] + ] + } + } + ], + "reference_val_miou": 0.5256398451814701, + "delta_val_pp": 0.0, + "patch_bootstrap_delta_interval_pp": [ + 0.0, + 0.0 + ], + "bootstrap_caveat": "descriptive, after validation selection; not an independent significance test", + "selection_split": "validation", + "test_used_for_selection": false + }, + "test_policy": "exploratory all-variants sweep explicitly requested by user; no test retuning", + "patches": 482 +} \ No newline at end of file diff --git a/ablations/10_plateau_breakthrough/workspace/convnext_research_20261010/RESEARCH_PLAN.md b/ablations/10_plateau_breakthrough/workspace/convnext_research_20261010/RESEARCH_PLAN.md new file mode 100644 index 0000000000000000000000000000000000000000..f5af45199e369c141d155e591f5e5f11197999d5 --- /dev/null +++ b/ablations/10_plateau_breakthrough/workspace/convnext_research_20261010/RESEARCH_PLAN.md @@ -0,0 +1,177 @@ +# Breaking the 50% Test mIoU barrier: ConvNeXt and complementary representations + +Research and implementation date: 10 October 2026. The supervisor's suggestion was confirmed as **ConvNeXt / ConvNeXt V 2**. + +## Decision + +Run a controlled modern-convolution comparison first. The strongest remaining evidence supports improved **temporal class representations and generalization**, rather than another optimizer or segmentation decoder sweep. ConvNeXt V 2 is a plausible mechanism for this; it is not a guarantee of a higher PASTIS score. + +The current validation-selected final system scores **52.5640% validation / 49.4555% test**. Crossing 50% requires more than **0.5445 percentage points**. The attention alternative reaches **49.5298% test** with lower validation; its test advantage is not used to replace the validation-selected baseline for this round. + +The new implementation first reproduces the recommended baseline on validation, then trains eight models and compares validation-selected probability blends. At most two improving new configurations are frozen before test evaluation. If neither improves validation by at least 0.10 points, the queue records that outcome and does not force a new test winner. + +## Diagnosis from our experiments + +Project evidence: [full report](../organized_release_20261007/FINAL_REPORT.md), [previous queue results](../temporal_research/results_summary.json), and [current per-class results](../temporal_research/32X32_cnn_control_seed3407/test_results.json). + +| Evidence | Research interpretation | What it does not prove | +|---|---|---| +| Main SAM model ~98.36% fixed-training mIoU versus 50.01% validation | Model capacity already exceeds what the small labeled sample can constrain; transfer/generalization is a major issue | That every larger architecture must fail | +| ~69.38% of earlier validation errors outside a one-pixel boundary band | Interior class identity is a larger error source than boundary localization alone | That boundaries never matter | +| Full context changed fixed validation-pixel results by only ~0.05 points | More geographic context alone is unlikely to explain the deficit | That a learned spatial module cannot help | +| Temporal CNN ensemble raised test substantially; transformer/seed averaging did not | Useful error diversity and the temporal inductive bias matter more than model count or popularity | That every temporal CNN provides independent information | +| New plain CNN versus attention family: only ~0.0811 mean test points apart | Much of the observed improvement came from another trained predictor, not specifically its attention module | A reliable attention-pooling breakthrough | +| Structured SSL 47.8864% test versus matched inherited SSL 45.3069% | Pretraining corruption/representation quality has a real matched-control signal | That three-epoch structured SSL already beats the final ensemble | +| Difficult classes occur in only ~6–8 independent training patches | Pixel count overstates the number of independent crop examples | That all errors can be fixed by reweighting rare classes | + +The recommended final system's weakest classes include winter triticale **7.11% IoU**, mixed cereal **9.18%**, leguminous fodder **26.56%**, sorghum **27.71%**, orchard **28.66%**, and fruits/vegetables/flowers **31.75%**. Winter barley fell from 49.45% in SAM to 46.21% in the ensemble; triticale fell from 12.23% to 7.11%. An aggregate improvement can therefore hide damage to confusing cereal classes. + +Because mIoU averages eighteen classes, a net gain of ten IoU points spread over one or several classes yields roughly 0.556 overall points. This is arithmetic, not a prediction: false positives that help one class can hurt another. We should track precision/recall and the full confusion matrix, not just a rare-class recall increase. + +### New inspection of the saved final test confusion matrix + +These are descriptive diagnostics of the previously scored model, not a new test evaluation or parameters fitted from test labels. + +| Class | Precision | Recall | Dominant confusion / implication | +|---|---:|---:|---| +| Winter triticale |14.72%|12.10%|76.66% of its GT pixels are called soft winter wheat. Both precision and recall are poor; indiscriminately boosting triticale probabilities is unlikely to solve it. | +| Mixed cereal |33.19%|11.26%|26.31% called soft winter wheat,20.19% meadow,15.96% triticale. Needs discrimination among several similar temporal patterns. | +| Winter barley |84.29%|50.57%|28.18% called soft winter wheat. This class has a different precision/recall tradeoff from triticale. | +| Spring barley |67.51%|47.13%|13.55% called soft winter wheat;9.32% winter durum wheat. Season-shape representation is a reasonable hypothesis. | +| Leguminous fodder |48.20%|37.17%|45.01% called meadow. Vegetation appearance alone does not separate these categories well. | +| Orchard |34.24%|63.78%|Precision is the larger weakness. More rare-class upweighting could increase false positives further. | + +This is why another single global rare-class loss weight is a weak first choice. Confusion-aware representation changes and class-conditional uncertainty are more defensible. Calendar-aligned phenology might help, but is outside this index-input-preserving queue. + +## ConvNeXt literature: what is relevant to this project + +The sources below are papers, proceedings pages, or official author repositories. Their reported gains are on their own tasks; they are not treated as expected PASTIS gains. + +| Family | Mechanism / verified source | Project relevance and decision | +|---|---|---| +| ConvNeXt, CVPR2022 | Depthwise7×7 convolution, LayerNorm, expanded pointwise MLP, residual block. [Paper](https://arxiv.org/abs/2201.03545) | Establish the modern-convolution baseline. Test an explicitly labeled 1D temporal adaptation and full-resolution2D blocks. | +| ConvNeXt V2, CVPR2023 | Co-design of fully convolutional masked autoencoding and Global Response Normalization (GRN). [Paper](https://arxiv.org/abs/2301.00808), [official block](https://github.com/facebookresearch/ConvNeXt-V2/blob/main/models/convnextv2.py), [GRN](https://github.com/facebookresearch/ConvNeXt-V2/blob/main/models/utils.py) | Highest priority family. Test valid-time GRN in temporal features and2D GRN in a spatial refinement path. We have not established feature collapse in our current model; GRN is a hypothesis, not a diagnosed cure. | +| InceptionNeXt, CVPR2024 | Split channels into identity, small square, horizontal-strip and vertical-strip convolution branches. [Paper](https://openaccess.thecvf.com/content/CVPR2024/html/Yu_InceptionNeXt_When_Inception_Meets_ConvNeXt_CVPR_2024_paper.html) | A cheap test of diverse spatial patterns. Our experiment substitutes its token mixer inside an otherwise matched block; it is not a full published InceptionNeXt reproduction. | +| UniRepLKNet, CVPR2024 / TPAMI2025 extension | Large-kernel CNN design and dilated reparameterization across modalities. [Official repository](https://github.com/AILab-CVC/UniRepLKNet), [paper](https://openaccess.thecvf.com/content/CVPR2024/papers/Ding_UniRepLKNet_A_Universal_Perception_Large-Kernel_ConvNet_for_Audio_Video_Point_CVPR_2024_paper.pdf) | Motivates testing temporal receptive-field size. A7-versus15 kernel ablation is a cheap first question; it does not reproduce UniRepLKNet or its reparameterization. Full family remains a second-stage candidate. | +| ModernTCN, ICLR2024 | Large-kernel convolution and decoupled time/variable modeling. [Paper](https://openreview.net/pdf?id=vpJMJerXHU) | Strong conceptual fit for spectral time series, but forecasting results do not establish segmentation performance. Use lessons on temporal representation; do not relabel our simple adaptation as ModernTCN. A [2025 reproducibility study](https://openreview.net/forum?id=R20kKdWmVZ) reinforces the need for matched controls. | +| WTConv, ECCV2024 | Wavelet decomposition gives multiscale receptive fields with modest parameter growth. [Paper](https://www.ecva.net/papers/eccv_2024/papers_ECCV/papers/07137.pdf) | Second-stage option if the large temporal kernel helps but over-smooths narrow phenological changes. Risks include sequence boundary handling and irregular sampling. | +| OverLoCK, CVPR2025 | Coarse overview guides fine-scale processing through context-mixing dynamic kernels. [Paper](https://arxiv.org/abs/2502.20087) | More promising as a future crop-dependent temporal gate than as a huge spatial transplant. Implementation/high-capacity cost makes it lower priority than a small controlled CNN study. | +| ShiftwiseConv, CVPR2025 | Sparse multipath interactions approximate large-kernel effects. [Paper](https://openaccess.thecvf.com/content/CVPR2025/html/Li_ShiftwiseConv_Small_Convolutional_Kernel_with_Large_Kernel_Effect_CVPR_2025_paper.html) | Useful if a larger effective temporal field is beneficial and expensive. Not a first experiment before testing that premise. | +| MambaOut, CVPR2025 | Gated convolutional blocks test which gains actually require a state-space mechanism. [Paper](https://openaccess.thecvf.com/content/CVPR2025/html/Yu_MambaOut_Do_We_Really_Need_Mamba_for_Vision_CVPR_2025_paper.html) | A gated-convolution control should precede an expensive Mamba implementation. The paper does not conclude SSMs are useless for segmentation. Our observation sequences are only tens of timesteps long. | +| DINOv3-pretrained ConvNeXt,2025 | Stronger self-supervised initialization; official Tiny/Small/Base/Large ConvNeXt weights use LVD-1689M. [Paper](https://arxiv.org/abs/2508.10104), [official models](https://github.com/facebookresearch/dinov3) | A serious external-pretraining track, not ConvNeXt V3. Official satellite-pretrained weights listed there are ViTs; do not describe the ConvNeXt release as satellite-pretrained. RGB input, small-crop feature resolution, licensing/access and extra pretraining data must be handled. | +| Slimmable ConvNeXt,2026 preprint | Width-adaptive inference for different deployment budgets. [Paper](https://arxiv.org/abs/2605.22677) | Verified recent work, but deployment efficiency is not our immediate bottleneck. Low priority for exceeding50. | +| ConvNeXt-based FCDM, CVPR2026 | Convolutional architecture for conditional diffusion image generation. [Paper](https://arxiv.org/abs/2603.09408), [proceedings supplement](https://openaccess.thecvf.com/content/CVPR2026/supplemental/Kwon_Reviving_ConvNeXt_for_CVPR_2026_supplemental.pdf) | Recent and related by backbone name, but generation results provide weak evidence for crop segmentation. Not selected simply because it is newer. | + +This search did not establish an official ConvNeXt V 3 successor. DINOv 3 is a representation-learning family with ConvNeXt backbones, a different naming axis. We do not claim this is an exhaustive inventory of every derivative or every 2026 submission. + +## Why not immediately replace the entire pretrained encoder? + +The original checkpoint cannot strictly initialize a different ConvNeXt backbone. A backbone replacement discards much of the learned representation unless we add transfer/distillation or new pretraining. It would change architecture and initialization simultaneously. + +The standard ConvNeXt image architecture also uses a stride 4 stem and three stride 2 transitions. A 32×32 crop becomes 8→4→2→1 spatial positions; a dense task then needs shallow skips and a suitable decoder. This is not an argument against ConvNeXt, but against treating an off-the-shelf image classifier as a ready dense time-series backbone. + +Our first experiment preserves full spatial resolution, ten bands, all retained observations, original index positions and the exact labeled crop list. It tests ConvNeXt block mechanics with approximately 145 k–221 k parameters before spending compute on a larger transfer. The incumbent pretrained network remains the fixed reference for ensemble complementarity. + +The new models train from scratch, as our successful independent temporal CNNs did. **These runs do not themselves fine-tune the original checkpoint.** They test whether a complementary architecture improves predictions from the existing checkpoint-based final system. The distinction is recorded in every configuration. + +## Started comparison: eight 100-epoch runs + +All experiments use seed 3407, batch 2,76 crop updates/epoch, identical label mapping, CE smoothing 0.05, AdamW LR 1e-3/WD 0.01, three-epoch warmup/cosine, clipping 1, FP 16, and the existing spatial/temporal/spectral augmentations. Training/validation sample IDs and duplicates, fixed 32 windows, input normalization, index positions and full 128 fold 4 evaluation are unchanged. + +| ID | Model / exact difference | Parameters | Primary hypothesis | +|---|---|---:|---| +| C0 | Existing temporal CNN, rerun as matched control |28,306| Verify the training/evaluation comparison in the current environment | +| C1 | Four temporal ConvNeXt V1-style blocks, kernel3, width64, expansion4 |144,274| Does channel mixing/capacity help before increasing kernel size? | +| C2 | C1 with kernel7 |145,298| Do broader contiguous temporal patterns help? | +| C3 | Kernel7 temporal ConvNeXt V2-style blocks; replace V1 LayerScale with GRN |147,090| Does response-normalized channel competition improve useful representations? | +| C4 | C3 with kernel15 |149,138| Is the useful temporal field larger than7 observations? | +| C5 | C3 temporal trunk → mean/max maps →64-channel projection → two2D V1-style blocks |220,050| Does modest spatial processing add useful class evidence after temporal pooling? | +| C6 | Same layout as C5,2D V2 blocks with GRN |220,946| Does2D response normalization help the spatial branch? | +| C7 | C5 with InceptionNeXt-inspired split spatial mixer |214,194| Do directional/multiscale features outperform a monolithic7×7 mixer? | + +These isolate small groups of design changes, not every individual mathematical term. In particular V 1→V 2 changes GRN and LayerScale conventions, matching the family distinction; it is not a pure GRN-only ablation. The spatial models also use a different final classifier structure from the temporal-only model. If they win, use a spatial 1×1-only control to isolate added capacity from spatial mixing. + +We use the common existing training recipe to test architecture under a fixed optimization budget. A failure under this recipe does not rule out the architecture under its own optimized recipe. Only after a family wins do we test LR{3e-4,1e-3}, WD{0.01,0.05}, LayerScale initialization{1e-6,1e-3}, or width{48,64}; varying these now would confound the first comparison and multiply validation searches. + +### Evaluation and promotion policy + +1. Recompute current recommended validation mIoU and require agreement within 1e-6 in fractional units. This passed: **0.5256398451814701**. +2. Select each model's checkpoint using its standalone validation mIoU, preserving the previous experiment's checkpoint-selection protocol. +3. On those selected checkpoints, test a predeclared small blend grid: add weight{0,0.1,0.25,0.5} to the recommended system, or replace its last-CNN addition with weights{0.1,0.25,0.5} relative to the old three-component reference. +4. Record every option, standalone metrics and per-class confusion matrix. Compute a descriptive 1000-resample patch bootstrap of validation changes; repeated entries from a patch stay grouped. This is not independent significance evidence after validation selection. +5. Freeze up to two non-control candidates with at least+0.10 validation points. Only then evaluate these full 128 fold 4 configurations. Report any test regression as well as any improvement. +6. Promote a deployment change using validation evidence and record its test outcome; do not retune blends against test to manufacture 50. + +Earlier test inspection cannot be undone. This gate reduces further selection on test; it does not turn the historical test set into a pristine holdout. + +### Implementation and checks + +- [Model implementations](../convnext_research_models.py): `TemporalBlock`, valid-time `GRN`, `SpatialBlock`, `InceptionDW`, `TemporalConvNeXt`. +- [Trainer/evaluator/queue](../convnext_research.py): `train`, `validate`, `cache_reference`, `select`, `test_promoted`, `queue`. +- [Launch wrapper](../run_convnext_research.sh): existing compatible CUDA libraries and persistent queue entry. +- [Plan](plan.json), [status](status.json), [smoke results](smoke.json), [protected file hashes](protected_hashes.json). + +All eight models passed finite forward/backward and full-precision temporal-padding invariance checks. GRN's zero-initialized identity and learned-parameter masking invariance passed. Three new variants also passed real batch 2×43×10×32×32 forward/backward checks, using roughly 1.63 GB peak PyTorch allocated memory in the smoke process. That is not a worst-case total VRAM guarantee. Production prediction caching reproduced the existing recommended validation score. + +The GPU is an L 4. ASR/Qwen occupied about 12 GB at launch; these experiments fit in the remaining memory during checks. Models run serially. Initial budget is approximately **2–4 hours** for eight training runs, selection and up to two tests, subject to measured full-epoch speed and other GPU activity. Historical old CNN runs took ~7–8 minutes; these wider blocks cost more. Progress files provide measured timings for a revised estimate. + +## Other directions worth pursuing after this comparison + +| Rank | Hypothesis and exact experiment | Why it differs from past failures | Cost / risk / success criterion | +|---|---|---|---| +|1| **Blend the structured-SSL network with the current system.** Freeze the existing47.8864% single-network checkpoint; evaluate add weights0/0.1/0.25 on validation before test. | This changes representation through a different pretraining corruption objective. It is not another seed of the same CNN, which already failed to add much. | No new training; about one extra main-network inference. Keep only if validation gain spans several classes/patches. Correlated errors may yield zero gain. | +|2| **Temporal change features.** Add first differences of the same ten normalized bands to the best ConvNeXt temporal model through a small branch; compare with a parameter-matched raw-band branch. | Tests growth/decline shape explicitly. It changes the information representation rather than adding another generic pooling query. No new spectral band/date is introduced. | Moderate implementation; one matched training pair. Differences amplify cloud noise and observation gaps; indices are not elapsed days. Keep for validation improvement plus fewer confusing-cereal errors. | +|3| **Regularized class-distribution readout.** Fit train-only shared/shrinkage covariance on frozen first-block features and compare whitened nearest-class or regularized Gaussian scoring against existing cosine cluster centres. Use a small fixed shrinkage grid. | Three spherical cosine clusters per class may not model differently stretched/overlapping class distributions. Our earlier linear probe does not establish the performance of this density-aware rule. | Low training cost; medium statistical risk with only a few supporting patches. Require class precision as well as recall improvement and patch-bootstrap stability. This is a project hypothesis, not a claimed new paper method. | +|4| **Frozen random temporal kernels plus a regularized classifier.** Start with a modest HYDRA/MultiRocket-inspired multiband feature bank and ridge/logistic readout, retaining only valid observations. | Gives a substantially different representation with low learned capacity; our successful28k-parameter CNN suggests a huge transformer is not required. | Medium adaptation work. Millions of pixels are highly correlated; patch-balanced fitting and bounded feature count matter. Keep only if it improves validation fusion. [HYDRA](https://doi.org/10.1007/s10618-023-00939-3) provides the primary basis. | +|5| **Longer structured masking, conditional on evidence.** Continue only within the496 fold5 pool at the same16 tiles/batch4; compare10-epoch structured versus matched inherited corruption before identical fine-tuning. | Earlier3-epoch matched study had a large structured-vs-inherited gap, but did not establish convergence. This extends a successful representation hypothesis rather than retrying an unchanged loss. | High compute, several GPU hours per arm plus fine-tuning. Risk of catastrophic forgetting; keep original initialization as a baseline and use validation-only model selection. | + +The2026 [MASHT preprint](https://arxiv.org/abs/2607.19234), revised5 October2026, combines random convolutional time-series features with an in-context tabular foundation model. It is an interesting high-risk follow-up to the random-feature control. We would not immediately apply a large TabPFN-style inference system to every segmentation pixel: context limits, millions of queries, spatial correlation, and additional pretraining provenance require a separate feasibility test. It is a preprint, not treated here as a verified top-venue result. + +### Foundation-model track: plausible, but a distinct comparison + +**DINOv 3 ConvNeXt-Tiny features** are the most direct stronger-pretraining extension of the supervisor's suggestion. Use a frozen shallow-feature branch on RGB selected from the same S 2 observations, plus our existing ten-band temporal branch, then train a small fusion head on the same fixed 32 labeled crops. Avoid discarding near-infrared/SWIR information by replacing all inputs with RGB. A controlled comparison needs identical architecture with random versus external-pretrained weights, channel normalization derived from the checkpoint requirements, and a shallow-feature decoder because default deep maps are extremely coarse at 32 pixels. External pretraining means this is a different pretraining budget, even if labeled PASTIS samples stay identical. It is not queued as a supposedly equivalent continuation of our original checkpoint. + +**Galileo (ICML2025)** is more naturally multispectral and temporal, and learns global/local representations through two self-supervised objectives. A frozen S2-only probe would be the initial test; evaluate band order, normalization, dates and pretraining overlap first. [Primary paper](https://proceedings.mlr.press/v267/tseng25a.html). + +**AnySat (CVPR2025)** has a very relevant S2 dense-output path, but the [official repository](https://github.com/gastruc/AnySat) lists PASTIS-HD among its GeoPlex pretraining datasets and requires day-of-year companion tensors. We must audit exact folds/patch overlap and input changes before using those weights for this benchmark. Relevant design does not imply a clean reference-compatible pretrained checkpoint. [Paper](https://openaccess.thecvf.com/content/CVPR2025/html/Astruc_AnySat_One_Earth_Observation_Model_for_Many_Resolutions_Scales_and_CVPR_2025_paper.html). + +**AgriFM**, a2025 [crop-specific foundation-model preprint](https://arxiv.org/abs/2505.21357), uses hierarchical temporal/spatial processing and large external multisource pretraining. Its relevance reinforces the temporal representation hypothesis; its data/pretraining budget is not interchangeable with our fold5-only setup. + +Actual calendar encoding is scientifically attractive given the four acquisition calendars, but it changes the current index-only input convention. Larger crops, additional labeled patches, fold changes and extra modalities are not part of this queued strict-protocol round. We should not silently change them to cross a threshold. + +## Priority and stopping decisions + +| Tier | Direction | Expected benefit | Difficulty / compute | Main risk | Decision | +|---|---|---|---|---|---| +|S| ConvNeXt V1/V2 temporal comparison | Better seasonal pattern discrimination and useful ensemble diversity | Moderate /low–medium | Overfitting or correlated errors | Started controlled queue | +|S| Existing structured-SSL model complementarity | Cheap test of genuinely different representation | Low /inference only | Errors may overlap | Next low-cost check | +|A| Full-resolution spatial ConvNeXt/Inception mixers | Add modest spatial structure to temporal specialist | Moderate /medium | Spatial context not the dominant gap | Included in queue with controls | +|A| First-difference temporal branch | Distinguish growth/decline shapes of confusing crops | Moderate /medium | Cloud noise and irregular acquisition gaps | Conditional next architecture test | +|A| Covariance-aware readout | Improve overlapping class decision regions | Low–moderate /low | Few independent rare-class patches | Small regularized study | +|B| Longer structured SSL | Improve transfer representation | Moderate /high | Forgetting, uncertain scaling | After validation evidence | +|B| DINOv3 ConvNeXt or Galileo feature fusion | Stronger independently pretrained features | High /medium–high | Input mismatch, budget/provenance differences | Separate external-pretraining track | +|B| WTConv /UniRepLKNet-inspired temporal operators | Multiscale temporal representation | High /medium | Complexity without a signal from kernel ablation | Only if C4 helps | +|C| OverLoCK dynamic temporal experts /Mamba | More conditional sequence modeling | High /high | Capacity without independent training support | Defer | +|C| MASHT-style random features +tabular foundation model | Different few-shot decision mechanism | High /uncertain inference | Millions of correlated pixel queries | Feasibility pilot after linear random-feature control | + +There is no defensible paper-derived numeric gain prediction for our exact low-label 32×32 setup. Negative gains remain possible. The next 0.55–1.0 points are most plausibly obtained from a representation that contributes new temporal class evidence without suppressing the weak cereals. Gains larger than 1–2 points probably require better pretraining or a more substantial representation transfer, not another small LR tweak alone. + +Our main decision should be driven by measured validation complementarity and per-class errors. If C 3 beats C 2, isolate GRN from LayerScale. If C 4 beats C 3, investigate multiscale temporal operators. If spatial variants lose, concentrate compute on temporal representation rather than a larger spatial backbone. If all new models memorize training while validation stays flat, increase representation quality/regularization rather than width. + +## Experiment ledger + +The files under this directory are the live source of truth. A dash means unmeasured, not zero. Test is deliberately pending until promotion is frozen. + +| Experiment | Change | Val mIoU | Test mIoU | Delta test | GPU cost | Decision | +|---|---|---:|---:|---:|---|---| +| Existing recommended baseline | SAM +feature clusters +old/new CNN |52.5640%|49.4555%|—|Historical|Reference validation reproduced | +| C0 | Matched original temporal CNN |—|—|—|Live log|Training queued/started | +| C1 | Temporal V1 kernel3 |—|—|—|Live log|Queued | +| C2 | Temporal V1 kernel7 |—|—|—|Live log|Queued | +| C3 | Temporal V2 kernel7 |—|—|—|Live log|Queued | +| C4 | Temporal V2 kernel15 |—|—|—|Live log|Queued | +| C5 | Spatial V1 after temporal V2 |—|—|—|Live log|Queued | +| C6 | Spatial V2 after temporal V2 |—|—|—|Live log|Queued | +| C7 | Inception-style spatial mixer |—|—|—|Live log|Queued | + +Raw checkpoints, optimizer/scaler/RNG resume states, epoch histories, configurations, validation alternatives, bootstrap intervals and promoted test confusion matrices are retained. The incumbent checkpoint and dataset source files are hash-checked before every queued job. diff --git a/ablations/10_plateau_breakthrough/workspace/convnext_research_20261010/RESULTS.md b/ablations/10_plateau_breakthrough/workspace/convnext_research_20261010/RESULTS.md new file mode 100644 index 0000000000000000000000000000000000000000..30c99ebbdaec97569dd2ae9400db2323129eaecb --- /dev/null +++ b/ablations/10_plateau_breakthrough/workspace/convnext_research_20261010/RESULTS.md @@ -0,0 +1,36 @@ +# ConvNeXt experiment results + +All eight 100-epoch runs and the explicitly requested full fold-4 test sweep are complete. Training used the same fixed-32 sample protocol and seed 3407. ConvNeXt candidates were trained from scratch as auxiliary predictors; they did not fine-tune or replace the original pretrained checkpoint. + +## Validation and test results + +Baseline recommended system: **52.5639845% validation mIoU / 49.4555473% test mIoU**. The standalone test score is each new model by itself. The selected-blend test score combines it with the incumbent using the weight selected on validation. Test labels did not select or tune weights. + +| Experiment | Best checkpoint epoch | Standalone val mIoU | Selected blend val mIoU | Standalone test mIoU | Selected blend test mIoU | Blend Δ vs baseline | +|---|---:|---:|---:|---:|---:|---:| +| CNN control | 87 | 46.1393% | 52.5640% | 42.6678% | 49.4555% | 0.0000 pp | +| Temporal ConvNeXt V1, k=3 | 63 | 34.3460% | 52.5640% | 32.4532% | 49.4555% | 0.0000 pp | +| Temporal ConvNeXt V1, k=7 | 75 | 33.8808% | 52.5640% | 30.6907% | 49.4555% | 0.0000 pp | +| Temporal ConvNeXt V2, k=7 | 73 | 40.3216% | 52.5640% | 35.3459% | 49.4555% | 0.0000 pp | +| Temporal ConvNeXt V2, k=15 | 79 | 39.3190% | **52.5953%** | 36.6740% | **49.1282%** | **−0.3273 pp** | +| Spatial ConvNeXt V1 | 72 | 40.9261% | 52.5640% | 36.6155% | 49.4555% | 0.0000 pp | +| Spatial ConvNeXt V2 | 78 | 40.4051% | 52.5640% | 34.7727% | 49.4555% | 0.0000 pp | +| Spatial InceptionNeXt-inspired mixer | 71 | 39.6000% | 52.5640% | 35.7605% | 49.4555% | 0.0000 pp | + +All mIoU values are for 18 foreground classes. For seven candidates validation selected blend weight 0, so the selected blend is exactly the established system and naturally has its baseline test score. Temporal ConvNeXt V2 k=15 was the only candidate with a nonzero selected weight (0.1); its small **+0.0313 validation-point** change did not transfer to test and reduced test mIoU by **0.3273 points**. None of the ConvNeXt candidates improved the incumbent. + +For the k=15 blend, test overall accuracy was **81.0092%**, macro F1 was **61.9696%**, and kappa was **0.7629**. The incumbent baseline was **81.0927% OA**, **62.3414% macro F1**, and **0.7643 kappa**. Standalone candidate OA and macro-F1 are in each `test_results.json` beside its confusion matrix and per-class IoU. + +## Test protocol and interpretation + +The sweep evaluated all **482 full 128×128 fold-4 patches**. The reference system was evaluated once and its full-precision probabilities were cached; the code verified that this reproduced the recorded 49.4555473% baseline before testing candidates individually. This separated reference and candidate GPU memory while keeping every patch and prediction rule unchanged. The saved reference cache records the original spatial/temporal chunk settings. Candidate validation-selected blend weights were frozen before reading test scores. The wider all-candidate test sweep was explicitly requested after the original validation-only promotion gate selected none; report it as exploratory because this test set had already been inspected in prior project work. + +Each standalone ConvNeXt model is substantially weaker than the incumbent. The test results support the validation conclusion: these small custom adaptations did not provide useful standalone representations, and the one small validation-selected blend gain was not robust on fold 4. No test score exceeds the prior best observed result of **49.5298%** (the attention-CNN alternative, whose validation mIoU is lower than the validation-selected recommendation). + +## Artifacts + +- [Full test results](explicit_test_sweep_results.json), with per-run metrics, confusion matrices, per-class IoU, and validation selections. +- [Verified test reference cache metadata](test_reference_cache.json); the probability and label arrays are retained alongside it. +- [Run state](status.json), [promotion record](promotion.json), and [completion record](completion.json). +- Per-variant checkpoints, histories, validation selections, and test result JSON are under each `32X32__seed3407/` directory. +- [Research plan](RESEARCH_PLAN.md) documents literature, model definitions, and the fixed training protocol. diff --git a/ablations/10_plateau_breakthrough/workspace/convnext_research_20261010/cnn_control_select.log b/ablations/10_plateau_breakthrough/workspace/convnext_research_20261010/cnn_control_select.log new file mode 100644 index 0000000000000000000000000000000000000000..a163903602bc9fcf0c441a19911d121beb4e187b --- /dev/null +++ b/ablations/10_plateau_breakthrough/workspace/convnext_research_20261010/cnn_control_select.log @@ -0,0 +1,3 @@ +/usr/lib/python3/dist-packages/scipy/__init__.py:146: UserWarning: A NumPy version >=1.17.3 and <1.25.0 is required for this version of SciPy (detected version 1.26.4 + warnings.warn(f"A NumPy version >={np_minversion} and <{np_maxversion}" +SELECT cnn_control 0.0 add 0.0 diff --git a/ablations/10_plateau_breakthrough/workspace/convnext_research_20261010/cnn_control_train.log b/ablations/10_plateau_breakthrough/workspace/convnext_research_20261010/cnn_control_train.log new file mode 100644 index 0000000000000000000000000000000000000000..004056c366bdad4446508df213040a21deb7b639 --- /dev/null +++ b/ablations/10_plateau_breakthrough/workspace/convnext_research_20261010/cnn_control_train.log @@ -0,0 +1,102 @@ +/usr/lib/python3/dist-packages/scipy/__init__.py:146: UserWarning: A NumPy version >=1.17.3 and <1.25.0 is required for this version of SciPy (detected version 1.26.4 + warnings.warn(f"A NumPy version >={np_minversion} and <{np_maxversion}" +cnn_control {"epoch": 1, "loss": 2.817792873633535, "val_miou": 0.03804169122166781, "best_val_miou": 0.03804169122166781, "seconds": 6.197676945943385, "peak_allocated_gb": 0.519942144} +cnn_control {"epoch": 2, "loss": 2.5075094292038367, "val_miou": 0.06159479662758885, "best_val_miou": 0.06159479662758885, "seconds": 4.246515557169914, "peak_allocated_gb": 0.519942144} +cnn_control {"epoch": 3, "loss": 2.341340604581331, "val_miou": 0.0729862909827397, "best_val_miou": 0.0729862909827397, "seconds": 4.5669677667319775, "peak_allocated_gb": 0.519942144} +cnn_control {"epoch": 4, "loss": 2.1799960356009636, "val_miou": 0.08052825929307944, "best_val_miou": 0.08052825929307944, "seconds": 4.116658614948392, "peak_allocated_gb": 0.519942144} +cnn_control {"epoch": 5, "loss": 2.0943093127325962, "val_miou": 0.2013386357687078, "best_val_miou": 0.2013386357687078, "seconds": 4.5884324121288955, "peak_allocated_gb": 0.519942144} +cnn_control {"epoch": 6, "loss": 1.8714751844343387, "val_miou": 0.16790499591655245, "best_val_miou": 0.2013386357687078, "seconds": 4.501230115070939, "peak_allocated_gb": 0.519942144} +cnn_control {"epoch": 7, "loss": 1.8405046251259352, "val_miou": 0.1820637786215131, "best_val_miou": 0.2013386357687078, "seconds": 4.4933954193256795, "peak_allocated_gb": 0.519942144} +cnn_control {"epoch": 8, "loss": 1.7026647956747758, "val_miou": 0.24145121055363225, "best_val_miou": 0.24145121055363225, "seconds": 5.371708191931248, "peak_allocated_gb": 0.519942144} +cnn_control {"epoch": 9, "loss": 1.5731538534164429, "val_miou": 0.211350675541057, "best_val_miou": 0.24145121055363225, "seconds": 4.4542448236607015, "peak_allocated_gb": 0.519942144} +cnn_control {"epoch": 10, "loss": 1.540502122358272, "val_miou": 0.29415337276796016, "best_val_miou": 0.29415337276796016, "seconds": 4.153254081029445, "peak_allocated_gb": 0.519942144} +cnn_control {"epoch": 11, "loss": 1.3838882391390048, "val_miou": 0.2685101866801565, "best_val_miou": 0.29415337276796016, "seconds": 4.775646551977843, "peak_allocated_gb": 0.519942144} +cnn_control {"epoch": 12, "loss": 1.3855961733742763, "val_miou": 0.2952346677891422, "best_val_miou": 0.2952346677891422, "seconds": 4.875391012988985, "peak_allocated_gb": 0.519942144} +cnn_control {"epoch": 13, "loss": 1.283501065091083, "val_miou": 0.27835788936491657, "best_val_miou": 0.2952346677891422, "seconds": 4.5385613846592605, "peak_allocated_gb": 0.519942144} +cnn_control {"epoch": 14, "loss": 1.2309705258200043, "val_miou": 0.333514579699004, "best_val_miou": 0.333514579699004, "seconds": 4.405298931058496, "peak_allocated_gb": 0.519942144} +cnn_control {"epoch": 15, "loss": 1.0619668893908198, "val_miou": 0.3238610483013821, "best_val_miou": 0.333514579699004, "seconds": 4.941114878747612, "peak_allocated_gb": 0.519942144} +cnn_control {"epoch": 16, "loss": 1.0354131730763536, "val_miou": 0.360595861147219, "best_val_miou": 0.360595861147219, "seconds": 4.814590307883918, "peak_allocated_gb": 0.519942144} +cnn_control {"epoch": 17, "loss": 1.0744727242149805, "val_miou": 0.3677554094878179, "best_val_miou": 0.3677554094878179, "seconds": 4.842520041856915, "peak_allocated_gb": 0.519942144} +cnn_control {"epoch": 18, "loss": 1.0417387430605136, "val_miou": 0.35114250183736406, "best_val_miou": 0.3677554094878179, "seconds": 4.188888884149492, "peak_allocated_gb": 0.519942144} +cnn_control {"epoch": 19, "loss": 1.052968227549603, "val_miou": 0.3687110979348038, "best_val_miou": 0.3687110979348038, "seconds": 3.9382246900349855, "peak_allocated_gb": 0.519942144} +cnn_control {"epoch": 20, "loss": 0.9495997507321207, "val_miou": 0.3485816739371968, "best_val_miou": 0.3687110979348038, "seconds": 4.058872709982097, "peak_allocated_gb": 0.519942144} +cnn_control {"epoch": 21, "loss": 0.9197046368529922, "val_miou": 0.373062061031863, "best_val_miou": 0.373062061031863, "seconds": 3.923488896805793, "peak_allocated_gb": 0.519942144} +cnn_control {"epoch": 22, "loss": 0.8641044944524765, "val_miou": 0.3835075216500035, "best_val_miou": 0.3835075216500035, "seconds": 3.8866618699394166, "peak_allocated_gb": 0.519942144} +cnn_control {"epoch": 23, "loss": 0.8466163203120232, "val_miou": 0.36127661487830376, "best_val_miou": 0.3835075216500035, "seconds": 3.944204840809107, "peak_allocated_gb": 0.519942144} +cnn_control {"epoch": 24, "loss": 0.8104622301302458, "val_miou": 0.41692898881589774, "best_val_miou": 0.41692898881589774, "seconds": 4.368004786316305, "peak_allocated_gb": 0.519942144} +cnn_control {"epoch": 25, "loss": 0.8071520838298296, "val_miou": 0.4168178776266589, "best_val_miou": 0.41692898881589774, "seconds": 4.616133203264326, "peak_allocated_gb": 0.519942144} +cnn_control {"epoch": 26, "loss": 0.8493931352307922, "val_miou": 0.3885196569909375, "best_val_miou": 0.41692898881589774, "seconds": 4.499636075925082, "peak_allocated_gb": 0.519942144} +cnn_control {"epoch": 27, "loss": 0.7666977055762944, "val_miou": 0.4163815715586974, "best_val_miou": 0.41692898881589774, "seconds": 5.182761610019952, "peak_allocated_gb": 0.519942144} +cnn_control {"epoch": 28, "loss": 0.7244529602558989, "val_miou": 0.4122505301078934, "best_val_miou": 0.41692898881589774, "seconds": 5.09734162222594, "peak_allocated_gb": 0.519942144} +cnn_control {"epoch": 29, "loss": 0.7252719041548277, "val_miou": 0.4095789323032911, "best_val_miou": 0.41692898881589774, "seconds": 5.2090918268077075, "peak_allocated_gb": 0.519942144} +cnn_control {"epoch": 30, "loss": 0.7101027836140833, "val_miou": 0.3910822386465444, "best_val_miou": 0.41692898881589774, "seconds": 4.8522188840433955, "peak_allocated_gb": 0.519942144} +cnn_control {"epoch": 31, "loss": 0.681070675975398, "val_miou": 0.3865619791057179, "best_val_miou": 0.41692898881589774, "seconds": 5.064367305953056, "peak_allocated_gb": 0.519942144} +cnn_control {"epoch": 32, "loss": 0.7046749250669229, "val_miou": 0.40412660032948533, "best_val_miou": 0.41692898881589774, "seconds": 5.282942336983979, "peak_allocated_gb": 0.519942144} +cnn_control {"epoch": 33, "loss": 0.6556730109610056, "val_miou": 0.40430276684603633, "best_val_miou": 0.41692898881589774, "seconds": 5.032865069806576, "peak_allocated_gb": 0.519942144} +cnn_control {"epoch": 34, "loss": 0.6526192320804847, "val_miou": 0.42108048485485156, "best_val_miou": 0.42108048485485156, "seconds": 4.321113671641797, "peak_allocated_gb": 0.519942144} +cnn_control {"epoch": 35, "loss": 0.663860852781095, "val_miou": 0.4379618324639851, "best_val_miou": 0.4379618324639851, "seconds": 4.444315936882049, "peak_allocated_gb": 0.519942144} +cnn_control {"epoch": 36, "loss": 0.6132384221020498, "val_miou": 0.4297803661263803, "best_val_miou": 0.4379618324639851, "seconds": 4.3533547590486705, "peak_allocated_gb": 0.519942144} +cnn_control {"epoch": 37, "loss": 0.6236561607373389, "val_miou": 0.4283633270903653, "best_val_miou": 0.4379618324639851, "seconds": 4.728097592014819, "peak_allocated_gb": 0.519942144} +cnn_control {"epoch": 38, "loss": 0.5767199169648322, "val_miou": 0.4201480454367299, "best_val_miou": 0.4379618324639851, "seconds": 4.391091894824058, "peak_allocated_gb": 0.519942144} +cnn_control {"epoch": 39, "loss": 0.5925221521603433, "val_miou": 0.4420657418346233, "best_val_miou": 0.4420657418346233, "seconds": 4.381409966852516, "peak_allocated_gb": 0.519942144} +cnn_control {"epoch": 40, "loss": 0.5668896236702016, "val_miou": 0.43110449391077443, "best_val_miou": 0.4420657418346233, "seconds": 4.3139601848088205, "peak_allocated_gb": 0.519942144} +cnn_control {"epoch": 41, "loss": 0.560171575922715, "val_miou": 0.4332555863892981, "best_val_miou": 0.4420657418346233, "seconds": 3.9214391033165157, "peak_allocated_gb": 0.519942144} +cnn_control {"epoch": 42, "loss": 0.531147796072458, "val_miou": 0.43414229795046605, "best_val_miou": 0.4420657418346233, "seconds": 4.009673331398517, "peak_allocated_gb": 0.519942144} +cnn_control {"epoch": 43, "loss": 0.5514338126308039, "val_miou": 0.42390869360103994, "best_val_miou": 0.4420657418346233, "seconds": 3.935585715342313, "peak_allocated_gb": 0.519942144} +cnn_control {"epoch": 44, "loss": 0.5618763491511345, "val_miou": 0.45142573690975074, "best_val_miou": 0.45142573690975074, "seconds": 3.9964598161168396, "peak_allocated_gb": 0.519942144} +cnn_control {"epoch": 45, "loss": 0.5373935452417323, "val_miou": 0.4422686096583657, "best_val_miou": 0.45142573690975074, "seconds": 3.9693019636906683, "peak_allocated_gb": 0.519942144} +cnn_control {"epoch": 46, "loss": 0.5557129398772591, "val_miou": 0.4434760568610239, "best_val_miou": 0.45142573690975074, "seconds": 3.748061881866306, "peak_allocated_gb": 0.519942144} +cnn_control {"epoch": 47, "loss": 0.4966078451589534, "val_miou": 0.4500866056312105, "best_val_miou": 0.45142573690975074, "seconds": 3.9152980148792267, "peak_allocated_gb": 0.519942144} +cnn_control {"epoch": 48, "loss": 0.5075165382341335, "val_miou": 0.4453478858884376, "best_val_miou": 0.45142573690975074, "seconds": 3.777734903153032, "peak_allocated_gb": 0.519942144} +cnn_control {"epoch": 49, "loss": 0.49701837018916484, "val_miou": 0.4380550962853343, "best_val_miou": 0.45142573690975074, "seconds": 4.078740790951997, "peak_allocated_gb": 0.519942144} +cnn_control {"epoch": 50, "loss": 0.47546041600014033, "val_miou": 0.4494958825770158, "best_val_miou": 0.45142573690975074, "seconds": 3.9792652991600335, "peak_allocated_gb": 0.519942144} +cnn_control {"epoch": 51, "loss": 0.49812428261104386, "val_miou": 0.44761931900503593, "best_val_miou": 0.45142573690975074, "seconds": 3.926493162289262, "peak_allocated_gb": 0.519942144} +cnn_control {"epoch": 52, "loss": 0.4894110556495817, "val_miou": 0.4440398245721743, "best_val_miou": 0.45142573690975074, "seconds": 3.989960794337094, "peak_allocated_gb": 0.519942144} +cnn_control {"epoch": 53, "loss": 0.48773408759581416, "val_miou": 0.45269351013897324, "best_val_miou": 0.45269351013897324, "seconds": 3.920372331980616, "peak_allocated_gb": 0.519942144} +cnn_control {"epoch": 54, "loss": 0.49328116758873586, "val_miou": 0.45183988799720876, "best_val_miou": 0.45269351013897324, "seconds": 3.799467063974589, "peak_allocated_gb": 0.519942144} +cnn_control {"epoch": 55, "loss": 0.5032371035531947, "val_miou": 0.4476607354354845, "best_val_miou": 0.45269351013897324, "seconds": 3.919432444963604, "peak_allocated_gb": 0.519942144} +cnn_control {"epoch": 56, "loss": 0.4661746876020181, "val_miou": 0.4499167838916997, "best_val_miou": 0.45269351013897324, "seconds": 3.776569804176688, "peak_allocated_gb": 0.519942144} +cnn_control {"epoch": 57, "loss": 0.4679277613759041, "val_miou": 0.44548440259035677, "best_val_miou": 0.45269351013897324, "seconds": 4.153003619983792, "peak_allocated_gb": 0.519942144} +cnn_control {"epoch": 58, "loss": 0.48609032991685364, "val_miou": 0.4576945368960142, "best_val_miou": 0.4576945368960142, "seconds": 3.911840765736997, "peak_allocated_gb": 0.519942144} +cnn_control {"epoch": 59, "loss": 0.46964699971048457, "val_miou": 0.44835127780278455, "best_val_miou": 0.4576945368960142, "seconds": 4.004559651948512, "peak_allocated_gb": 0.519942144} +cnn_control {"epoch": 60, "loss": 0.4587780758738518, "val_miou": 0.4434796598881737, "best_val_miou": 0.4576945368960142, "seconds": 3.9949163761921227, "peak_allocated_gb": 0.519942144} +cnn_control {"epoch": 61, "loss": 0.46045090493402985, "val_miou": 0.44222122270434566, "best_val_miou": 0.4576945368960142, "seconds": 4.0784508632496, "peak_allocated_gb": 0.519942144} +cnn_control {"epoch": 62, "loss": 0.4534973357068865, "val_miou": 0.4516931938796946, "best_val_miou": 0.4576945368960142, "seconds": 4.041876745875925, "peak_allocated_gb": 0.519942144} +cnn_control {"epoch": 63, "loss": 0.446895746808303, "val_miou": 0.45147347847127, "best_val_miou": 0.4576945368960142, "seconds": 3.936867752112448, "peak_allocated_gb": 0.519942144} +cnn_control {"epoch": 64, "loss": 0.43778380045765325, "val_miou": 0.45485853312655256, "best_val_miou": 0.4576945368960142, "seconds": 4.284782779868692, "peak_allocated_gb": 0.519942144} +cnn_control {"epoch": 65, "loss": 0.455659134607566, "val_miou": 0.4540458662693659, "best_val_miou": 0.4576945368960142, "seconds": 4.301094804890454, "peak_allocated_gb": 0.519942144} +cnn_control {"epoch": 66, "loss": 0.4597989979543184, "val_miou": 0.44851075430678944, "best_val_miou": 0.4576945368960142, "seconds": 4.216673367191106, "peak_allocated_gb": 0.519942144} +cnn_control {"epoch": 67, "loss": 0.4522006711677501, "val_miou": 0.4439326846248306, "best_val_miou": 0.4576945368960142, "seconds": 4.192074453923851, "peak_allocated_gb": 0.519942144} +cnn_control {"epoch": 68, "loss": 0.4464929786167647, "val_miou": 0.4500585468200373, "best_val_miou": 0.4576945368960142, "seconds": 3.9142302167601883, "peak_allocated_gb": 0.519942144} +cnn_control {"epoch": 69, "loss": 0.43438395112752914, "val_miou": 0.4501511300837175, "best_val_miou": 0.4576945368960142, "seconds": 3.948196833021939, "peak_allocated_gb": 0.519942144} +cnn_control {"epoch": 70, "loss": 0.4393885406224351, "val_miou": 0.457538798588588, "best_val_miou": 0.4576945368960142, "seconds": 3.9776028213091195, "peak_allocated_gb": 0.519942144} +cnn_control {"epoch": 71, "loss": 0.4280479546440275, "val_miou": 0.4534906360496174, "best_val_miou": 0.4576945368960142, "seconds": 4.056006337981671, "peak_allocated_gb": 0.519942144} +cnn_control {"epoch": 72, "loss": 0.4485152610822728, "val_miou": 0.4525641388454017, "best_val_miou": 0.4576945368960142, "seconds": 4.0636211121454835, "peak_allocated_gb": 0.519942144} +cnn_control {"epoch": 73, "loss": 0.42889203484121124, "val_miou": 0.45628999602826276, "best_val_miou": 0.4576945368960142, "seconds": 3.9411522205919027, "peak_allocated_gb": 0.519942144} +cnn_control {"epoch": 74, "loss": 0.4384281149036006, "val_miou": 0.45233132648003355, "best_val_miou": 0.4576945368960142, "seconds": 4.017247026320547, "peak_allocated_gb": 0.519942144} +cnn_control {"epoch": 75, "loss": 0.4401847975034463, "val_miou": 0.45138137377485843, "best_val_miou": 0.4576945368960142, "seconds": 3.933900682721287, "peak_allocated_gb": 0.519942144} +cnn_control {"epoch": 76, "loss": 0.47293211402077423, "val_miou": 0.4548126763456022, "best_val_miou": 0.4576945368960142, "seconds": 4.0071797971613705, "peak_allocated_gb": 0.519942144} +cnn_control {"epoch": 77, "loss": 0.46961965764823715, "val_miou": 0.4588008344419078, "best_val_miou": 0.4588008344419078, "seconds": 3.9629227528348565, "peak_allocated_gb": 0.519942144} +cnn_control {"epoch": 78, "loss": 0.44815713049549805, "val_miou": 0.45576011646762576, "best_val_miou": 0.4588008344419078, "seconds": 4.0376701769419014, "peak_allocated_gb": 0.519942144} +cnn_control {"epoch": 79, "loss": 0.430946499501404, "val_miou": 0.4551624199968561, "best_val_miou": 0.4588008344419078, "seconds": 3.967830724082887, "peak_allocated_gb": 0.519942144} +cnn_control {"epoch": 80, "loss": 0.4413341483787486, "val_miou": 0.4588089381299305, "best_val_miou": 0.4588089381299305, "seconds": 3.8754760110750794, "peak_allocated_gb": 0.519942144} +cnn_control {"epoch": 81, "loss": 0.43136909368791077, "val_miou": 0.45945729084930065, "best_val_miou": 0.45945729084930065, "seconds": 4.0234085181728005, "peak_allocated_gb": 0.519942144} +cnn_control {"epoch": 82, "loss": 0.42214539647102356, "val_miou": 0.45738167444026356, "best_val_miou": 0.45945729084930065, "seconds": 3.8301127329468727, "peak_allocated_gb": 0.519942144} +cnn_control {"epoch": 83, "loss": 0.425800137613949, "val_miou": 0.45351836708961024, "best_val_miou": 0.45945729084930065, "seconds": 3.899284250102937, "peak_allocated_gb": 0.519942144} +cnn_control {"epoch": 84, "loss": 0.43173003314357056, "val_miou": 0.45466766612419096, "best_val_miou": 0.45945729084930065, "seconds": 4.047725481912494, "peak_allocated_gb": 0.519942144} +cnn_control {"epoch": 85, "loss": 0.44912200852444295, "val_miou": 0.4577791532611795, "best_val_miou": 0.45945729084930065, "seconds": 3.9722486790269613, "peak_allocated_gb": 0.519942144} +cnn_control {"epoch": 86, "loss": 0.424644058080096, "val_miou": 0.4588256846828052, "best_val_miou": 0.45945729084930065, "seconds": 4.061889166012406, "peak_allocated_gb": 0.519942144} +cnn_control {"epoch": 87, "loss": 0.43170030964048284, "val_miou": 0.4613928392731144, "best_val_miou": 0.4613928392731144, "seconds": 4.200385322328657, "peak_allocated_gb": 0.519942144} +cnn_control {"epoch": 88, "loss": 0.43174011495552567, "val_miou": 0.4598613088121617, "best_val_miou": 0.4613928392731144, "seconds": 4.421127818990499, "peak_allocated_gb": 0.519942144} +cnn_control {"epoch": 89, "loss": 0.4288063715947302, "val_miou": 0.4600667589517514, "best_val_miou": 0.4613928392731144, "seconds": 4.8660537037067115, "peak_allocated_gb": 0.519942144} +cnn_control {"epoch": 90, "loss": 0.4215178850450014, "val_miou": 0.45829335082600614, "best_val_miou": 0.4613928392731144, "seconds": 4.390690780244768, "peak_allocated_gb": 0.519942144} +cnn_control {"epoch": 91, "loss": 0.41684100816124364, "val_miou": 0.45856398417304806, "best_val_miou": 0.4613928392731144, "seconds": 4.467802574858069, "peak_allocated_gb": 0.519942144} +cnn_control {"epoch": 92, "loss": 0.4212538756822285, "val_miou": 0.4596405610444484, "best_val_miou": 0.4613928392731144, "seconds": 4.04519492899999, "peak_allocated_gb": 0.519942144} +cnn_control {"epoch": 93, "loss": 0.42679836404950994, "val_miou": 0.4582104546362117, "best_val_miou": 0.4613928392731144, "seconds": 4.569240394048393, "peak_allocated_gb": 0.519942144} +cnn_control {"epoch": 94, "loss": 0.42928669248756607, "val_miou": 0.45753037115256834, "best_val_miou": 0.4613928392731144, "seconds": 5.512145143002272, "peak_allocated_gb": 0.519942144} +cnn_control {"epoch": 95, "loss": 0.4366649930414401, "val_miou": 0.4573246096974256, "best_val_miou": 0.4613928392731144, "seconds": 4.441013392060995, "peak_allocated_gb": 0.519942144} +cnn_control {"epoch": 96, "loss": 0.43322420630015823, "val_miou": 0.4582761184742419, "best_val_miou": 0.4613928392731144, "seconds": 4.604505687020719, "peak_allocated_gb": 0.519942144} +cnn_control {"epoch": 97, "loss": 0.4236476833098813, "val_miou": 0.4588808972128906, "best_val_miou": 0.4613928392731144, "seconds": 4.781666866037995, "peak_allocated_gb": 0.519942144} +cnn_control {"epoch": 98, "loss": 0.4151050024910977, "val_miou": 0.45871151746099453, "best_val_miou": 0.4613928392731144, "seconds": 4.107743626926094, "peak_allocated_gb": 0.519942144} +cnn_control {"epoch": 99, "loss": 0.416638403346664, "val_miou": 0.45858217481301455, "best_val_miou": 0.4613928392731144, "seconds": 4.147413664963096, "peak_allocated_gb": 0.519942144} +cnn_control {"epoch": 100, "loss": 0.41860655499132055, "val_miou": 0.4585871164962458, "best_val_miou": 0.4613928392731144, "seconds": 3.937407862395048, "peak_allocated_gb": 0.519942144} diff --git a/ablations/10_plateau_breakthrough/workspace/convnext_research_20261010/completion.json b/ablations/10_plateau_breakthrough/workspace/convnext_research_20261010/completion.json new file mode 100644 index 0000000000000000000000000000000000000000..e94cc4a5a00bb608f0f709388f5b1b6c295911f7 --- /dev/null +++ b/ablations/10_plateau_breakthrough/workspace/convnext_research_20261010/completion.json @@ -0,0 +1,264 @@ +{ + "finished": "2026-10-10T09:44:02.390599+00:00", + "status": { + "reference_validation": { + "status": "completed", + "started": "2026-10-10T07:23:21.116350+00:00", + "command": [ + "/usr/bin/python3", + "-u", + "/home/ubuntu/tsr/convnext_research.py", + "cache" + ], + "returncode": 0, + "ended": "2026-10-10T07:23:38.179111+00:00", + "seconds": 17.06251286016777 + }, + "cnn_control_train": { + "status": "completed", + "started": "2026-10-10T07:23:38.232271+00:00", + "command": [ + "/usr/bin/python3", + "-u", + "/home/ubuntu/tsr/convnext_research.py", + "train", + "--kind", + "cnn_control" + ], + "returncode": 0, + "ended": "2026-10-10T07:30:53.456081+00:00", + "seconds": 435.2235012841411 + }, + "cnn_control_select": { + "status": "completed", + "started": "2026-10-10T07:30:53.490443+00:00", + "command": [ + "/usr/bin/python3", + "-u", + "/home/ubuntu/tsr/convnext_research.py", + "select", + "--kind", + "cnn_control" + ], + "returncode": 0, + "ended": "2026-10-10T07:31:08.503418+00:00", + "seconds": 15.012741900980473 + }, + "temporal_cnv1_k3_train": { + "status": "completed", + "started": "2026-10-10T07:31:08.562021+00:00", + "command": [ + "/usr/bin/python3", + "-u", + "/home/ubuntu/tsr/convnext_research.py", + "train", + "--kind", + "temporal_cnv1_k3" + ], + "returncode": 0, + "ended": "2026-10-10T07:40:43.794720+00:00", + "seconds": 575.232279648073 + }, + "temporal_cnv1_k3_select": { + "status": "completed", + "started": "2026-10-10T07:40:43.846098+00:00", + "command": [ + "/usr/bin/python3", + "-u", + "/home/ubuntu/tsr/convnext_research.py", + "select", + "--kind", + "temporal_cnv1_k3" + ], + "returncode": 0, + "ended": "2026-10-10T07:41:00.115795+00:00", + "seconds": 16.26937573030591 + }, + "temporal_cnv1_k7_train": { + "status": "completed", + "started": "2026-10-10T07:41:00.171596+00:00", + "command": [ + "/usr/bin/python3", + "-u", + "/home/ubuntu/tsr/convnext_research.py", + "train", + "--kind", + "temporal_cnv1_k7" + ], + "returncode": 0, + "ended": "2026-10-10T07:50:47.238078+00:00", + "seconds": 587.0660405750386 + }, + "temporal_cnv1_k7_select": { + "status": "completed", + "started": "2026-10-10T07:50:47.295126+00:00", + "command": [ + "/usr/bin/python3", + "-u", + "/home/ubuntu/tsr/convnext_research.py", + "select", + "--kind", + "temporal_cnv1_k7" + ], + "returncode": 0, + "ended": "2026-10-10T07:51:02.075449+00:00", + "seconds": 14.779849317856133 + }, + "temporal_cnv2_k7_train": { + "status": "completed", + "started": "2026-10-10T07:51:02.130262+00:00", + "command": [ + "/usr/bin/python3", + "-u", + "/home/ubuntu/tsr/convnext_research.py", + "train", + "--kind", + "temporal_cnv2_k7" + ], + "returncode": 0, + "ended": "2026-10-10T08:12:54.374933+00:00", + "seconds": 1312.244280742947 + }, + "temporal_cnv2_k7_select": { + "status": "completed", + "started": "2026-10-10T08:12:54.429849+00:00", + "command": [ + "/usr/bin/python3", + "-u", + "/home/ubuntu/tsr/convnext_research.py", + "select", + "--kind", + "temporal_cnv2_k7" + ], + "returncode": 0, + "ended": "2026-10-10T08:13:12.111857+00:00", + "seconds": 17.681549177970737 + }, + "temporal_cnv2_k15_train": { + "status": "completed", + "started": "2026-10-10T08:13:12.164068+00:00", + "command": [ + "/usr/bin/python3", + "-u", + "/home/ubuntu/tsr/convnext_research.py", + "train", + "--kind", + "temporal_cnv2_k15" + ], + "returncode": 0, + "ended": "2026-10-10T08:35:50.131764+00:00", + "seconds": 1357.9673400577158 + }, + "temporal_cnv2_k15_select": { + "status": "completed", + "started": "2026-10-10T08:35:50.191108+00:00", + "command": [ + "/usr/bin/python3", + "-u", + "/home/ubuntu/tsr/convnext_research.py", + "select", + "--kind", + "temporal_cnv2_k15" + ], + "returncode": 0, + "ended": "2026-10-10T08:36:08.090194+00:00", + "seconds": 17.89855015417561 + }, + "spatial_cnv1_train": { + "status": "completed", + "started": "2026-10-10T08:36:08.140334+00:00", + "command": [ + "/usr/bin/python3", + "-u", + "/home/ubuntu/tsr/convnext_research.py", + "train", + "--kind", + "spatial_cnv1" + ], + "returncode": 0, + "ended": "2026-10-10T08:58:21.346897+00:00", + "seconds": 1333.2061504060403 + }, + "spatial_cnv1_select": { + "status": "completed", + "started": "2026-10-10T08:58:21.401599+00:00", + "command": [ + "/usr/bin/python3", + "-u", + "/home/ubuntu/tsr/convnext_research.py", + "select", + "--kind", + "spatial_cnv1" + ], + "returncode": 0, + "ended": "2026-10-10T08:58:38.474075+00:00", + "seconds": 17.072064687032253 + }, + "spatial_cnv2_train": { + "status": "completed", + "started": "2026-10-10T08:58:38.524415+00:00", + "command": [ + "/usr/bin/python3", + "-u", + "/home/ubuntu/tsr/convnext_research.py", + "train", + "--kind", + "spatial_cnv2" + ], + "returncode": 0, + "ended": "2026-10-10T09:20:48.950977+00:00", + "seconds": 1330.4261724222451 + }, + "spatial_cnv2_select": { + "status": "completed", + "started": "2026-10-10T09:20:49.000813+00:00", + "command": [ + "/usr/bin/python3", + "-u", + "/home/ubuntu/tsr/convnext_research.py", + "select", + "--kind", + "spatial_cnv2" + ], + "returncode": 0, + "ended": "2026-10-10T09:21:06.186939+00:00", + "seconds": 17.18570496281609 + }, + "spatial_inception_train": { + "status": "completed", + "started": "2026-10-10T09:21:06.238320+00:00", + "command": [ + "/usr/bin/python3", + "-u", + "/home/ubuntu/tsr/convnext_research.py", + "train", + "--kind", + "spatial_inception" + ], + "returncode": 0, + "ended": "2026-10-10T09:43:44.179723+00:00", + "seconds": 1357.9409661409445 + }, + "spatial_inception_select": { + "status": "completed", + "started": "2026-10-10T09:43:44.237736+00:00", + "command": [ + "/usr/bin/python3", + "-u", + "/home/ubuntu/tsr/convnext_research.py", + "select", + "--kind", + "spatial_inception" + ], + "returncode": 0, + "ended": "2026-10-10T09:44:02.382961+00:00", + "seconds": 18.144666293635964 + } + }, + "promotion": { + "frozen_at": "2026-10-10T09:44:02.390257+00:00", + "selected": [], + "ranked_eligible": [], + "test_used_for_selection": false + } +} \ No newline at end of file diff --git a/ablations/10_plateau_breakthrough/workspace/convnext_research_20261010/explicit_test_sweep.json b/ablations/10_plateau_breakthrough/workspace/convnext_research_20261010/explicit_test_sweep.json new file mode 100644 index 0000000000000000000000000000000000000000..8e7559572b119d340dff4e4c470333bc99814cf0 --- /dev/null +++ b/ablations/10_plateau_breakthrough/workspace/convnext_research_20261010/explicit_test_sweep.json @@ -0,0 +1,16 @@ +{ + "authorized_by_user_request": true, + "requested_at": "2026-10-10T14:30:32.813064+00:00", + "variants": [ + "cnn_control", + "temporal_cnv1_k3", + "temporal_cnv1_k7", + "temporal_cnv2_k7", + "temporal_cnv2_k15", + "spatial_cnv1", + "spatial_cnv2", + "spatial_inception" + ], + "selection_policy": "validation-selected blend/checkpoint; no test-based retuning", + "note": "Exploratory full fold-4 evaluation of all completed variants; original promotion.json remains unchanged." +} \ No newline at end of file diff --git a/ablations/10_plateau_breakthrough/workspace/convnext_research_20261010/explicit_test_sweep_results.json b/ablations/10_plateau_breakthrough/workspace/convnext_research_20261010/explicit_test_sweep_results.json new file mode 100644 index 0000000000000000000000000000000000000000..acb9fa46fcced6ede64cb141b24124d7e77e8330 --- /dev/null +++ b/ablations/10_plateau_breakthrough/workspace/convnext_research_20261010/explicit_test_sweep_results.json @@ -0,0 +1,45381 @@ +{ + "completed_at": "2026-10-10T14:43:00.958502+00:00", + "complete": true, + "results": [ + { + "kind": "cnn_control", + "metrics": { + "miou": 0.49455547330691263, + "oa": 0.8109266736579659, + "macro_f1": 0.6234136021853756, + "kappa": 0.7642966739749818, + "per_class_iou": [ + 0.8061330522981268, + 0.7198486670090578, + 0.8757351877577422, + 0.46213693236161063, + 0.8703389461776095, + 0.38416520104311963, + 0.4490553274645572, + 0.6216216216216216, + 0.7901944411308601, + 0.07114146695276376, + 0.5587868716244287, + 0.3175281724644782, + 0.4373326486446833, + 0.2655897022970766, + 0.6168043633350977, + 0.28662647573048294, + 0.0918118400487935, + 0.27714760156231727 + ], + "confusion_matrix": [ + [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + [ + 0, + 1311069, + 6756, + 8420, + 815, + 744, + 883, + 2246, + 19285, + 602, + 381, + 3742, + 6998, + 405, + 29504, + 1126, + 71312, + 1029, + 686, + 0 + ], + [ + 0, + 12671, + 493367, + 5115, + 3930, + 1130, + 1764, + 172, + 746, + 546, + 21217, + 15339, + 437, + 131, + 1045, + 166, + 699, + 2161, + 44, + 0 + ], + [ + 0, + 17785, + 2752, + 641744, + 302, + 960, + 172, + 3539, + 862, + 3810, + 169, + 19, + 2132, + 202, + 3012, + 4846, + 607, + 129, + 5247, + 0 + ], + [ + 0, + 9412, + 46049, + 1786, + 82625, + 1310, + 4247, + 55, + 196, + 62, + 7994, + 4414, + 287, + 376, + 482, + 80, + 252, + 3761, + 4, + 0 + ], + [ + 0, + 2675, + 1166, + 868, + 380, + 120018, + 262, + 124, + 19, + 220, + 688, + 194, + 22, + 35, + 1476, + 29, + 106, + 837, + 0, + 0 + ], + [ + 0, + 4040, + 7283, + 711, + 3621, + 289, + 25338, + 175, + 883, + 118, + 2677, + 5012, + 146, + 454, + 1986, + 330, + 163, + 536, + 0, + 0 + ], + [ + 0, + 1538, + 141, + 3611, + 17, + 249, + 89, + 47797, + 7620, + 3775, + 49, + 378, + 1239, + 1298, + 2624, + 9685, + 632, + 168, + 1023, + 0 + ], + [ + 0, + 18456, + 124, + 4622, + 0, + 0, + 17, + 1317, + 151754, + 0, + 1, + 338, + 854, + 23, + 403, + 328, + 9076, + 0, + 164, + 0 + ], + [ + 0, + 482, + 193, + 1058, + 35, + 123, + 379, + 620, + 116, + 66242, + 0, + 28, + 795, + 26, + 446, + 416, + 71, + 2, + 15, + 0 + ], + [ + 0, + 3092, + 44739, + 412, + 1763, + 216, + 156, + 5, + 11, + 5, + 7062, + 21, + 6, + 0, + 299, + 8, + 83, + 484, + 0, + 0 + ], + [ + 0, + 1322, + 2401, + 20, + 0, + 0, + 1773, + 184, + 1235, + 0, + 143, + 60525, + 38, + 0, + 1508, + 0, + 693, + 4, + 114, + 0 + ], + [ + 0, + 3196, + 123, + 4634, + 46, + 7, + 910, + 9697, + 3978, + 1955, + 63, + 3941, + 25923, + 639, + 1593, + 517, + 2180, + 171, + 1142, + 0 + ], + [ + 0, + 589, + 140, + 1406, + 6, + 31, + 92, + 2996, + 519, + 719, + 7, + 314, + 2523, + 11923, + 406, + 408, + 473, + 9, + 52, + 0 + ], + [ + 0, + 57524, + 1032, + 1194, + 723, + 333, + 1050, + 1045, + 7046, + 405, + 646, + 1114, + 551, + 254, + 47497, + 318, + 6554, + 377, + 131, + 0 + ], + [ + 0, + 1525, + 170, + 6485, + 90, + 129, + 5, + 653, + 17, + 376, + 8, + 2255, + 478, + 3, + 400, + 53604, + 52, + 13, + 2053, + 0 + ], + [ + 0, + 12728, + 331, + 778, + 2, + 0, + 34, + 422, + 10506, + 48, + 33, + 1127, + 965, + 73, + 710, + 23, + 49018, + 5, + 56, + 0 + ], + [ + 0, + 8636, + 11253, + 1214, + 3447, + 3258, + 322, + 34, + 20, + 20, + 6827, + 1, + 610, + 689, + 1495, + 80, + 44, + 4817, + 2, + 0 + ], + [ + 0, + 4694, + 43, + 2183, + 220, + 0, + 39, + 1222, + 3590, + 122, + 2, + 118, + 2844, + 42, + 3653, + 230, + 1161, + 11, + 11850, + 0 + ], + [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ] + ] + }, + "baseline": { + "miou": 0.49455547330691263, + "oa": 0.8109266736579659, + "macro_f1": 0.6234136021853756, + "kappa": 0.7642966739749818, + "per_class_iou": [ + 0.8061330522981268, + 0.7198486670090578, + 0.8757351877577422, + 0.46213693236161063, + 0.8703389461776095, + 0.38416520104311963, + 0.4490553274645572, + 0.6216216216216216, + 0.7901944411308601, + 0.07114146695276376, + 0.5587868716244287, + 0.3175281724644782, + 0.4373326486446833, + 0.2655897022970766, + 0.6168043633350977, + 0.28662647573048294, + 0.0918118400487935, + 0.27714760156231727 + ], + "confusion_matrix": [ + [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + [ + 0, + 1311069, + 6756, + 8420, + 815, + 744, + 883, + 2246, + 19285, + 602, + 381, + 3742, + 6998, + 405, + 29504, + 1126, + 71312, + 1029, + 686, + 0 + ], + [ + 0, + 12671, + 493367, + 5115, + 3930, + 1130, + 1764, + 172, + 746, + 546, + 21217, + 15339, + 437, + 131, + 1045, + 166, + 699, + 2161, + 44, + 0 + ], + [ + 0, + 17785, + 2752, + 641744, + 302, + 960, + 172, + 3539, + 862, + 3810, + 169, + 19, + 2132, + 202, + 3012, + 4846, + 607, + 129, + 5247, + 0 + ], + [ + 0, + 9412, + 46049, + 1786, + 82625, + 1310, + 4247, + 55, + 196, + 62, + 7994, + 4414, + 287, + 376, + 482, + 80, + 252, + 3761, + 4, + 0 + ], + [ + 0, + 2675, + 1166, + 868, + 380, + 120018, + 262, + 124, + 19, + 220, + 688, + 194, + 22, + 35, + 1476, + 29, + 106, + 837, + 0, + 0 + ], + [ + 0, + 4040, + 7283, + 711, + 3621, + 289, + 25338, + 175, + 883, + 118, + 2677, + 5012, + 146, + 454, + 1986, + 330, + 163, + 536, + 0, + 0 + ], + [ + 0, + 1538, + 141, + 3611, + 17, + 249, + 89, + 47797, + 7620, + 3775, + 49, + 378, + 1239, + 1298, + 2624, + 9685, + 632, + 168, + 1023, + 0 + ], + [ + 0, + 18456, + 124, + 4622, + 0, + 0, + 17, + 1317, + 151754, + 0, + 1, + 338, + 854, + 23, + 403, + 328, + 9076, + 0, + 164, + 0 + ], + [ + 0, + 482, + 193, + 1058, + 35, + 123, + 379, + 620, + 116, + 66242, + 0, + 28, + 795, + 26, + 446, + 416, + 71, + 2, + 15, + 0 + ], + [ + 0, + 3092, + 44739, + 412, + 1763, + 216, + 156, + 5, + 11, + 5, + 7062, + 21, + 6, + 0, + 299, + 8, + 83, + 484, + 0, + 0 + ], + [ + 0, + 1322, + 2401, + 20, + 0, + 0, + 1773, + 184, + 1235, + 0, + 143, + 60525, + 38, + 0, + 1508, + 0, + 693, + 4, + 114, + 0 + ], + [ + 0, + 3196, + 123, + 4634, + 46, + 7, + 910, + 9697, + 3978, + 1955, + 63, + 3941, + 25923, + 639, + 1593, + 517, + 2180, + 171, + 1142, + 0 + ], + [ + 0, + 589, + 140, + 1406, + 6, + 31, + 92, + 2996, + 519, + 719, + 7, + 314, + 2523, + 11923, + 406, + 408, + 473, + 9, + 52, + 0 + ], + [ + 0, + 57524, + 1032, + 1194, + 723, + 333, + 1050, + 1045, + 7046, + 405, + 646, + 1114, + 551, + 254, + 47497, + 318, + 6554, + 377, + 131, + 0 + ], + [ + 0, + 1525, + 170, + 6485, + 90, + 129, + 5, + 653, + 17, + 376, + 8, + 2255, + 478, + 3, + 400, + 53604, + 52, + 13, + 2053, + 0 + ], + [ + 0, + 12728, + 331, + 778, + 2, + 0, + 34, + 422, + 10506, + 48, + 33, + 1127, + 965, + 73, + 710, + 23, + 49018, + 5, + 56, + 0 + ], + [ + 0, + 8636, + 11253, + 1214, + 3447, + 3258, + 322, + 34, + 20, + 20, + 6827, + 1, + 610, + 689, + 1495, + 80, + 44, + 4817, + 2, + 0 + ], + [ + 0, + 4694, + 43, + 2183, + 220, + 0, + 39, + 1222, + 3590, + 122, + 2, + 118, + 2844, + 42, + 3653, + 230, + 1161, + 11, + 11850, + 0 + ], + [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ] + ] + }, + "standalone": { + "miou": 0.4266778826213718, + "oa": 0.7752192943702201, + "macro_f1": 0.5556453126881764, + "kappa": 0.7186114394046562, + "per_class_iou": [ + 0.7790742463552546, + 0.6869866622221532, + 0.8210746853050781, + 0.29118679756515975, + 0.7695933297043243, + 0.3177991046369946, + 0.3580516175936023, + 0.5833144784746076, + 0.6887001682882521, + 0.018319123020706457, + 0.49909281098994684, + 0.23546742913973148, + 0.4093449011102125, + 0.20079224079162106, + 0.4989499074670936, + 0.25451457866068566, + 0.05835040080296228, + 0.20958940505630608 + ], + "confusion_matrix": [ + [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + [ + 0, + 1300525, + 7446, + 16746, + 2308, + 1400, + 1351, + 2729, + 18522, + 559, + 897, + 5517, + 3855, + 355, + 37587, + 1894, + 58630, + 5186, + 496, + 0 + ], + [ + 0, + 23039, + 486379, + 7284, + 6433, + 2808, + 2042, + 157, + 698, + 520, + 12018, + 10775, + 347, + 539, + 1408, + 384, + 493, + 5261, + 95, + 0 + ], + [ + 0, + 24713, + 2948, + 621556, + 294, + 1044, + 274, + 1223, + 1590, + 6900, + 1007, + 185, + 1938, + 196, + 3333, + 11097, + 403, + 997, + 8591, + 0 + ], + [ + 0, + 16013, + 61212, + 1846, + 54486, + 5665, + 5344, + 92, + 192, + 27, + 2264, + 4833, + 288, + 293, + 1139, + 427, + 200, + 9059, + 12, + 0 + ], + [ + 0, + 4465, + 1694, + 1057, + 631, + 115930, + 161, + 59, + 34, + 269, + 835, + 429, + 85, + 83, + 776, + 71, + 196, + 2343, + 1, + 0 + ], + [ + 0, + 4481, + 8265, + 1232, + 5124, + 286, + 23213, + 171, + 887, + 172, + 2091, + 4177, + 61, + 437, + 1715, + 314, + 219, + 917, + 0, + 0 + ], + [ + 0, + 2027, + 155, + 6356, + 139, + 303, + 1858, + 38415, + 7743, + 4734, + 680, + 676, + 2861, + 774, + 2074, + 7390, + 779, + 3977, + 992, + 0 + ], + [ + 0, + 19888, + 172, + 7644, + 2, + 0, + 76, + 3726, + 141795, + 0, + 12, + 1116, + 1569, + 4, + 1561, + 668, + 8079, + 136, + 1029, + 0 + ], + [ + 0, + 2017, + 159, + 1358, + 209, + 2604, + 273, + 119, + 276, + 61795, + 32, + 24, + 533, + 87, + 232, + 937, + 206, + 176, + 10, + 0 + ], + [ + 0, + 4587, + 46739, + 582, + 2043, + 1039, + 424, + 18, + 28, + 21, + 1504, + 51, + 143, + 7, + 325, + 127, + 30, + 693, + 1, + 0 + ], + [ + 0, + 4310, + 2697, + 87, + 95, + 45, + 3434, + 197, + 1499, + 22, + 95, + 53915, + 109, + 118, + 2015, + 46, + 1234, + 30, + 12, + 0 + ], + [ + 0, + 3747, + 198, + 6434, + 582, + 63, + 939, + 10160, + 4113, + 2214, + 200, + 1886, + 18941, + 977, + 3052, + 2047, + 2657, + 391, + 2114, + 0 + ], + [ + 0, + 708, + 200, + 1622, + 211, + 39, + 1482, + 924, + 575, + 371, + 187, + 574, + 2023, + 11135, + 558, + 887, + 392, + 635, + 90, + 0 + ], + [ + 0, + 64737, + 894, + 2545, + 1168, + 1210, + 726, + 1486, + 7208, + 463, + 98, + 1609, + 737, + 135, + 38879, + 625, + 4378, + 628, + 268, + 0 + ], + [ + 0, + 1670, + 191, + 8498, + 96, + 138, + 2, + 774, + 31, + 1499, + 44, + 1876, + 1311, + 30, + 786, + 47990, + 15, + 341, + 3024, + 0 + ], + [ + 0, + 14944, + 303, + 1546, + 2, + 40, + 144, + 1018, + 8687, + 32, + 16, + 3998, + 1102, + 98, + 5007, + 20, + 39717, + 18, + 167, + 0 + ], + [ + 0, + 8815, + 13995, + 1557, + 3471, + 4775, + 725, + 14, + 98, + 207, + 3232, + 1, + 482, + 415, + 458, + 204, + 15, + 4302, + 3, + 0 + ], + [ + 0, + 3157, + 41, + 2320, + 917, + 60, + 26, + 2489, + 3427, + 670, + 30, + 339, + 2281, + 41, + 3808, + 728, + 1265, + 170, + 10255, + 0 + ], + [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ] + ] + }, + "delta_test_pp": 0.0, + "seconds": 506.4217182630673, + "validation_selection": { + "kind": "cnn_control", + "seed": 3407, + "checkpoint_epoch": 87, + "standalone": { + "miou": 0.4613928392731144, + "oa": 0.7604674328681141, + "macro_f1": 0.5759941645308279, + "kappa": 0.7334592941868356, + "per_class_iou": [ + 0.7620059058177485, + 0.7649862388400349, + 0.8101845791333945, + 0.2290852228303362, + 0.8758389261744967, + 0.39676840215439857, + 0.6524031942142534, + 0.6626579698328577, + 0.3693058568329718, + 0.0, + 0.7717776420281002, + 0.055872634424752175, + 0.2665094339622642, + 0.3076137987344356, + 0.6036308623298033, + 0.4603658536585366, + 0.009932043910088865, + 0.30613254203758655 + ], + "confusion_matrix": [ + [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + [ + 0, + 14709, + 61, + 84, + 15, + 14, + 16, + 2, + 587, + 0, + 1, + 203, + 68, + 3, + 639, + 7, + 357, + 5, + 9, + 0 + ], + [ + 0, + 384, + 11396, + 97, + 96, + 26, + 89, + 0, + 3, + 16, + 75, + 187, + 4, + 1, + 29, + 0, + 47, + 23, + 4, + 0 + ], + [ + 0, + 243, + 159, + 12378, + 23, + 5, + 1, + 190, + 14, + 43, + 16, + 0, + 42, + 13, + 90, + 289, + 37, + 59, + 266, + 0 + ], + [ + 0, + 62, + 686, + 2, + 586, + 82, + 21, + 0, + 0, + 0, + 184, + 1, + 25, + 7, + 60, + 12, + 0, + 319, + 0, + 0 + ], + [ + 0, + 105, + 17, + 19, + 14, + 5481, + 0, + 0, + 0, + 0, + 3, + 0, + 0, + 0, + 16, + 0, + 0, + 134, + 0, + 0 + ], + [ + 0, + 147, + 21, + 26, + 5, + 0, + 1105, + 36, + 224, + 0, + 11, + 738, + 0, + 0, + 78, + 0, + 8, + 9, + 0, + 0 + ], + [ + 0, + 20, + 0, + 47, + 0, + 0, + 17, + 4330, + 760, + 0, + 0, + 9, + 147, + 0, + 25, + 0, + 24, + 0, + 0, + 0 + ], + [ + 0, + 55, + 0, + 0, + 0, + 0, + 0, + 5, + 6502, + 0, + 0, + 6, + 0, + 0, + 29, + 0, + 1, + 0, + 0, + 0 + ], + [ + 0, + 17, + 2, + 16, + 3, + 4, + 0, + 20, + 7, + 2043, + 2, + 0, + 1, + 3, + 7, + 35, + 0, + 6, + 0, + 0 + ], + [ + 0, + 147, + 836, + 16, + 115, + 2, + 28, + 0, + 0, + 2, + 0, + 0, + 0, + 0, + 21, + 12, + 0, + 23, + 0, + 0 + ], + [ + 0, + 39, + 0, + 0, + 151, + 0, + 86, + 5, + 17, + 1, + 0, + 6317, + 1, + 1, + 50, + 0, + 74, + 0, + 0, + 0 + ], + [ + 0, + 99, + 20, + 369, + 3, + 0, + 72, + 668, + 374, + 3162, + 43, + 175, + 372, + 16, + 77, + 314, + 62, + 5, + 215, + 0 + ], + [ + 0, + 21, + 19, + 66, + 0, + 0, + 13, + 116, + 15, + 25, + 18, + 1, + 173, + 226, + 53, + 29, + 8, + 13, + 0, + 0 + ], + [ + 0, + 968, + 11, + 33, + 6, + 0, + 32, + 58, + 473, + 0, + 1, + 53, + 0, + 0, + 1507, + 0, + 357, + 5, + 0, + 0 + ], + [ + 0, + 85, + 0, + 75, + 0, + 0, + 2, + 0, + 0, + 114, + 0, + 0, + 10, + 8, + 0, + 1596, + 0, + 17, + 2, + 0 + ], + [ + 0, + 24, + 0, + 32, + 0, + 0, + 0, + 61, + 709, + 0, + 0, + 45, + 0, + 0, + 146, + 0, + 1812, + 0, + 0, + 0 + ], + [ + 0, + 57, + 588, + 209, + 80, + 336, + 0, + 0, + 0, + 3, + 3, + 0, + 0, + 0, + 0, + 0, + 0, + 19, + 0, + 0 + ], + [ + 0, + 50, + 0, + 319, + 0, + 0, + 0, + 97, + 31, + 0, + 0, + 25, + 141, + 0, + 75, + 37, + 132, + 0, + 619, + 0 + ], + [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ] + ] + }, + "chosen": { + "mode": "add", + "alpha": 0.0, + "metrics": { + "miou": 0.5256398451814701, + "oa": 0.7954606313128608, + "macro_f1": 0.6400266863319044, + "kappa": 0.7725060156424988, + "per_class_iou": [ + 0.7863696632193052, + 0.7940560621411685, + 0.8422681105804802, + 0.5216035634743875, + 0.8953563366655918, + 0.5666403785488959, + 0.6681021224238696, + 0.6854425749817118, + 0.3865969759193579, + 0.15913978494623657, + 0.8521227955584585, + 0.16817463736895016, + 0.15324165029469547, + 0.3526720731960907, + 0.8232323232323232, + 0.5073836723321259, + 0.010297482837528604, + 0.2888170055452865 + ], + "confusion_matrix": [ + [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + [ + 0, + 14827, + 104, + 46, + 8, + 16, + 20, + 1, + 480, + 0, + 3, + 211, + 80, + 3, + 659, + 16, + 296, + 4, + 6, + 0 + ], + [ + 0, + 160, + 11756, + 93, + 27, + 17, + 59, + 3, + 0, + 18, + 25, + 184, + 13, + 1, + 99, + 0, + 10, + 4, + 8, + 0 + ], + [ + 0, + 165, + 132, + 12522, + 19, + 10, + 2, + 144, + 0, + 31, + 1, + 0, + 2, + 6, + 113, + 137, + 34, + 11, + 539, + 0 + ], + [ + 0, + 23, + 477, + 28, + 1171, + 50, + 1, + 0, + 0, + 0, + 130, + 0, + 18, + 10, + 0, + 2, + 6, + 128, + 3, + 0 + ], + [ + 0, + 83, + 1, + 23, + 0, + 5553, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 19, + 8, + 1, + 101, + 0, + 0 + ], + [ + 0, + 96, + 76, + 5, + 7, + 0, + 1437, + 49, + 253, + 0, + 0, + 217, + 0, + 0, + 77, + 0, + 5, + 186, + 0, + 0 + ], + [ + 0, + 7, + 0, + 14, + 0, + 0, + 10, + 4344, + 415, + 65, + 0, + 10, + 472, + 0, + 33, + 1, + 4, + 0, + 4, + 0 + ], + [ + 0, + 29, + 0, + 0, + 0, + 0, + 0, + 0, + 6559, + 0, + 0, + 9, + 0, + 0, + 0, + 0, + 1, + 0, + 0, + 0 + ], + [ + 0, + 6, + 20, + 6, + 0, + 1, + 0, + 26, + 0, + 2071, + 0, + 0, + 16, + 14, + 5, + 1, + 0, + 0, + 0, + 0 + ], + [ + 0, + 34, + 886, + 0, + 14, + 0, + 2, + 0, + 0, + 5, + 222, + 0, + 0, + 0, + 5, + 0, + 30, + 4, + 0, + 0 + ], + [ + 0, + 17, + 0, + 0, + 91, + 0, + 14, + 5, + 10, + 0, + 0, + 6523, + 0, + 0, + 13, + 0, + 63, + 0, + 6, + 0 + ], + [ + 0, + 107, + 18, + 205, + 0, + 3, + 10, + 473, + 524, + 2954, + 6, + 129, + 1171, + 188, + 120, + 47, + 11, + 8, + 72, + 0 + ], + [ + 0, + 1, + 44, + 53, + 0, + 0, + 0, + 189, + 8, + 36, + 1, + 71, + 216, + 156, + 12, + 2, + 7, + 0, + 0, + 0 + ], + [ + 0, + 1027, + 18, + 38, + 0, + 0, + 10, + 43, + 402, + 0, + 0, + 58, + 0, + 0, + 1696, + 0, + 205, + 7, + 0, + 0 + ], + [ + 0, + 28, + 6, + 32, + 4, + 6, + 0, + 0, + 0, + 40, + 0, + 0, + 0, + 0, + 0, + 1793, + 0, + 0, + 0, + 0 + ], + [ + 0, + 51, + 0, + 8, + 0, + 0, + 0, + 19, + 875, + 0, + 0, + 14, + 0, + 0, + 41, + 0, + 1821, + 0, + 0, + 0 + ], + [ + 0, + 230, + 546, + 75, + 28, + 310, + 0, + 0, + 0, + 42, + 27, + 0, + 0, + 0, + 0, + 4, + 15, + 18, + 0, + 0 + ], + [ + 0, + 11, + 0, + 373, + 0, + 0, + 0, + 171, + 4, + 0, + 0, + 10, + 100, + 0, + 109, + 51, + 72, + 0, + 625, + 0 + ], + [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ] + ] + } + }, + "records": [ + { + "mode": "add", + "alpha": 0.0, + "metrics": { + "miou": 0.5256398451814701, + "oa": 0.7954606313128608, + "macro_f1": 0.6400266863319044, + "kappa": 0.7725060156424988, + "per_class_iou": [ + 0.7863696632193052, + 0.7940560621411685, + 0.8422681105804802, + 0.5216035634743875, + 0.8953563366655918, + 0.5666403785488959, + 0.6681021224238696, + 0.6854425749817118, + 0.3865969759193579, + 0.15913978494623657, + 0.8521227955584585, + 0.16817463736895016, + 0.15324165029469547, + 0.3526720731960907, + 0.8232323232323232, + 0.5073836723321259, + 0.010297482837528604, + 0.2888170055452865 + ], + "confusion_matrix": [ + [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + [ + 0, + 14827, + 104, + 46, + 8, + 16, + 20, + 1, + 480, + 0, + 3, + 211, + 80, + 3, + 659, + 16, + 296, + 4, + 6, + 0 + ], + [ + 0, + 160, + 11756, + 93, + 27, + 17, + 59, + 3, + 0, + 18, + 25, + 184, + 13, + 1, + 99, + 0, + 10, + 4, + 8, + 0 + ], + [ + 0, + 165, + 132, + 12522, + 19, + 10, + 2, + 144, + 0, + 31, + 1, + 0, + 2, + 6, + 113, + 137, + 34, + 11, + 539, + 0 + ], + [ + 0, + 23, + 477, + 28, + 1171, + 50, + 1, + 0, + 0, + 0, + 130, + 0, + 18, + 10, + 0, + 2, + 6, + 128, + 3, + 0 + ], + [ + 0, + 83, + 1, + 23, + 0, + 5553, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 19, + 8, + 1, + 101, + 0, + 0 + ], + [ + 0, + 96, + 76, + 5, + 7, + 0, + 1437, + 49, + 253, + 0, + 0, + 217, + 0, + 0, + 77, + 0, + 5, + 186, + 0, + 0 + ], + [ + 0, + 7, + 0, + 14, + 0, + 0, + 10, + 4344, + 415, + 65, + 0, + 10, + 472, + 0, + 33, + 1, + 4, + 0, + 4, + 0 + ], + [ + 0, + 29, + 0, + 0, + 0, + 0, + 0, + 0, + 6559, + 0, + 0, + 9, + 0, + 0, + 0, + 0, + 1, + 0, + 0, + 0 + ], + [ + 0, + 6, + 20, + 6, + 0, + 1, + 0, + 26, + 0, + 2071, + 0, + 0, + 16, + 14, + 5, + 1, + 0, + 0, + 0, + 0 + ], + [ + 0, + 34, + 886, + 0, + 14, + 0, + 2, + 0, + 0, + 5, + 222, + 0, + 0, + 0, + 5, + 0, + 30, + 4, + 0, + 0 + ], + [ + 0, + 17, + 0, + 0, + 91, + 0, + 14, + 5, + 10, + 0, + 0, + 6523, + 0, + 0, + 13, + 0, + 63, + 0, + 6, + 0 + ], + [ + 0, + 107, + 18, + 205, + 0, + 3, + 10, + 473, + 524, + 2954, + 6, + 129, + 1171, + 188, + 120, + 47, + 11, + 8, + 72, + 0 + ], + [ + 0, + 1, + 44, + 53, + 0, + 0, + 0, + 189, + 8, + 36, + 1, + 71, + 216, + 156, + 12, + 2, + 7, + 0, + 0, + 0 + ], + [ + 0, + 1027, + 18, + 38, + 0, + 0, + 10, + 43, + 402, + 0, + 0, + 58, + 0, + 0, + 1696, + 0, + 205, + 7, + 0, + 0 + ], + [ + 0, + 28, + 6, + 32, + 4, + 6, + 0, + 0, + 0, + 40, + 0, + 0, + 0, + 0, + 0, + 1793, + 0, + 0, + 0, + 0 + ], + [ + 0, + 51, + 0, + 8, + 0, + 0, + 0, + 19, + 875, + 0, + 0, + 14, + 0, + 0, + 41, + 0, + 1821, + 0, + 0, + 0 + ], + [ + 0, + 230, + 546, + 75, + 28, + 310, + 0, + 0, + 0, + 42, + 27, + 0, + 0, + 0, + 0, + 4, + 15, + 18, + 0, + 0 + ], + [ + 0, + 11, + 0, + 373, + 0, + 0, + 0, + 171, + 4, + 0, + 0, + 10, + 100, + 0, + 109, + 51, + 72, + 0, + 625, + 0 + ], + [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ] + ] + } + }, + { + "mode": "add", + "alpha": 0.1, + "metrics": { + "miou": 0.5231722743137501, + "oa": 0.7942288535898288, + "macro_f1": 0.6385655383062714, + "kappa": 0.771069245182827, + "per_class_iou": [ + 0.7879060416887101, + 0.7901900013475273, + 0.844276037824425, + 0.5115248226950354, + 0.8938466494845361, + 0.5533596837944664, + 0.6734600061293289, + 0.6839248434237996, + 0.3803827751196172, + 0.16197718631178706, + 0.8474951203643462, + 0.13722943722943723, + 0.17964071856287425, + 0.3617294520547945, + 0.7892178524083076, + 0.5092772085294932, + 0.008849557522123894, + 0.3028135431568908 + ], + "confusion_matrix": [ + [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + [ + 0, + 14893, + 97, + 51, + 4, + 15, + 11, + 0, + 489, + 0, + 3, + 217, + 76, + 3, + 593, + 15, + 304, + 4, + 5, + 0 + ], + [ + 0, + 193, + 11728, + 97, + 34, + 17, + 60, + 3, + 0, + 16, + 15, + 184, + 11, + 1, + 98, + 0, + 10, + 2, + 8, + 0 + ], + [ + 0, + 159, + 137, + 12589, + 13, + 10, + 2, + 160, + 0, + 35, + 4, + 0, + 6, + 5, + 82, + 163, + 34, + 17, + 452, + 0 + ], + [ + 0, + 27, + 509, + 23, + 1154, + 51, + 0, + 0, + 0, + 0, + 65, + 0, + 18, + 13, + 0, + 2, + 3, + 181, + 1, + 0 + ], + [ + 0, + 89, + 1, + 21, + 0, + 5549, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 19, + 7, + 0, + 103, + 0, + 0 + ], + [ + 0, + 103, + 72, + 4, + 5, + 0, + 1400, + 61, + 253, + 0, + 1, + 238, + 0, + 0, + 77, + 0, + 5, + 189, + 0, + 0 + ], + [ + 0, + 12, + 0, + 15, + 0, + 0, + 10, + 4395, + 448, + 37, + 0, + 8, + 436, + 0, + 14, + 1, + 3, + 0, + 0, + 0 + ], + [ + 0, + 36, + 0, + 0, + 0, + 0, + 0, + 0, + 6552, + 0, + 0, + 8, + 0, + 0, + 1, + 0, + 1, + 0, + 0, + 0 + ], + [ + 0, + 8, + 19, + 6, + 0, + 1, + 0, + 27, + 0, + 2067, + 0, + 0, + 13, + 12, + 8, + 5, + 0, + 0, + 0, + 0 + ], + [ + 0, + 38, + 890, + 1, + 18, + 1, + 2, + 0, + 0, + 4, + 213, + 0, + 0, + 0, + 4, + 0, + 27, + 4, + 0, + 0 + ], + [ + 0, + 18, + 0, + 0, + 99, + 0, + 12, + 6, + 10, + 0, + 0, + 6513, + 0, + 0, + 13, + 0, + 66, + 0, + 5, + 0 + ], + [ + 0, + 102, + 17, + 232, + 0, + 0, + 15, + 509, + 506, + 3061, + 11, + 139, + 951, + 172, + 96, + 112, + 14, + 9, + 100, + 0 + ], + [ + 0, + 2, + 45, + 55, + 0, + 0, + 0, + 174, + 9, + 35, + 1, + 61, + 215, + 180, + 10, + 2, + 7, + 0, + 0, + 0 + ], + [ + 0, + 1026, + 17, + 38, + 0, + 0, + 10, + 39, + 403, + 0, + 0, + 59, + 0, + 0, + 1690, + 0, + 219, + 3, + 0, + 0 + ], + [ + 0, + 31, + 6, + 37, + 3, + 5, + 0, + 0, + 0, + 40, + 0, + 0, + 0, + 0, + 0, + 1786, + 0, + 1, + 0, + 0 + ], + [ + 0, + 51, + 0, + 8, + 0, + 0, + 0, + 11, + 856, + 0, + 0, + 17, + 0, + 0, + 47, + 0, + 1839, + 0, + 0, + 0 + ], + [ + 0, + 212, + 555, + 96, + 33, + 319, + 0, + 0, + 0, + 40, + 13, + 0, + 0, + 0, + 0, + 2, + 9, + 16, + 0, + 0 + ], + [ + 0, + 15, + 0, + 359, + 0, + 0, + 0, + 157, + 8, + 0, + 0, + 12, + 109, + 0, + 106, + 45, + 80, + 0, + 635, + 0 + ], + [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ] + ] + } + }, + { + "mode": "add", + "alpha": 0.25, + "metrics": { + "miou": 0.5131626250214874, + "oa": 0.7898051648975483, + "macro_f1": 0.6298028742030701, + "kappa": 0.7661012949043479, + "per_class_iou": [ + 0.7868186375389161, + 0.7867958812840703, + 0.8436519067655113, + 0.48048568950563747, + 0.8901399388772719, + 0.518664047151277, + 0.6715261958997722, + 0.6824718632763651, + 0.3789377289377289, + 0.14139827179890024, + 0.8302370275464446, + 0.10706482155863073, + 0.20668058455114824, + 0.3624292555507183, + 0.7317991631799163, + 0.5035480349344978, + 0.0064, + 0.3078782020299662 + ], + "confusion_matrix": [ + [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + [ + 0, + 14911, + 91, + 59, + 1, + 16, + 6, + 0, + 504, + 0, + 2, + 217, + 71, + 2, + 563, + 14, + 316, + 1, + 6, + 0 + ], + [ + 0, + 228, + 11691, + 100, + 48, + 17, + 57, + 2, + 0, + 15, + 13, + 183, + 7, + 1, + 94, + 0, + 13, + 2, + 6, + 0 + ], + [ + 0, + 157, + 139, + 12632, + 11, + 10, + 2, + 169, + 1, + 35, + 7, + 0, + 12, + 2, + 54, + 192, + 27, + 29, + 389, + 0 + ], + [ + 0, + 31, + 529, + 19, + 1108, + 50, + 0, + 0, + 0, + 0, + 24, + 0, + 22, + 13, + 0, + 4, + 1, + 246, + 0, + 0 + ], + [ + 0, + 93, + 0, + 23, + 0, + 5534, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 19, + 5, + 0, + 115, + 0, + 0 + ], + [ + 0, + 112, + 60, + 7, + 4, + 0, + 1320, + 73, + 225, + 0, + 2, + 352, + 0, + 0, + 78, + 0, + 5, + 170, + 0, + 0 + ], + [ + 0, + 13, + 0, + 16, + 0, + 0, + 10, + 4422, + 512, + 13, + 0, + 9, + 368, + 0, + 10, + 0, + 6, + 0, + 0, + 0 + ], + [ + 0, + 41, + 0, + 0, + 0, + 0, + 0, + 0, + 6549, + 0, + 0, + 7, + 0, + 0, + 1, + 0, + 0, + 0, + 0, + 0 + ], + [ + 0, + 9, + 16, + 8, + 1, + 2, + 0, + 30, + 1, + 2069, + 0, + 0, + 9, + 5, + 8, + 8, + 0, + 0, + 0, + 0 + ], + [ + 0, + 58, + 895, + 4, + 27, + 1, + 2, + 0, + 0, + 4, + 180, + 0, + 0, + 0, + 4, + 0, + 23, + 4, + 0, + 0 + ], + [ + 0, + 18, + 0, + 0, + 121, + 0, + 13, + 7, + 11, + 0, + 0, + 6480, + 0, + 0, + 18, + 0, + 71, + 0, + 3, + 0 + ], + [ + 0, + 99, + 19, + 257, + 0, + 0, + 42, + 562, + 463, + 3105, + 20, + 149, + 735, + 139, + 73, + 213, + 23, + 8, + 139, + 0 + ], + [ + 0, + 8, + 40, + 53, + 0, + 0, + 0, + 170, + 12, + 31, + 1, + 45, + 210, + 198, + 18, + 3, + 7, + 0, + 0, + 0 + ], + [ + 0, + 1021, + 16, + 36, + 0, + 0, + 5, + 38, + 409, + 0, + 0, + 64, + 0, + 0, + 1665, + 0, + 249, + 1, + 0, + 0 + ], + [ + 0, + 39, + 4, + 48, + 0, + 5, + 0, + 0, + 0, + 58, + 0, + 0, + 2, + 0, + 0, + 1749, + 0, + 4, + 0, + 0 + ], + [ + 0, + 43, + 0, + 16, + 0, + 0, + 0, + 9, + 845, + 0, + 0, + 20, + 0, + 0, + 51, + 0, + 1845, + 0, + 0, + 0 + ], + [ + 0, + 183, + 573, + 114, + 46, + 327, + 0, + 0, + 0, + 33, + 2, + 0, + 0, + 0, + 0, + 1, + 4, + 12, + 0, + 0 + ], + [ + 0, + 18, + 0, + 345, + 0, + 0, + 0, + 146, + 15, + 0, + 0, + 17, + 118, + 0, + 99, + 41, + 90, + 0, + 637, + 0 + ], + [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ] + ] + } + }, + { + "mode": "add", + "alpha": 0.5, + "metrics": { + "miou": 0.4956732161265323, + "oa": 0.7804436542025043, + "macro_f1": 0.6127787902200139, + "kappa": 0.7556536472360379, + "per_class_iou": [ + 0.7803650094398993, + 0.7807933194154488, + 0.8335980937251787, + 0.41277847835224885, + 0.88654650788542, + 0.4536003080477474, + 0.6757788637751986, + 0.6660217900417473, + 0.3757775338455909, + 0.07854545454545454, + 0.8085133098945254, + 0.0785080463227553, + 0.26412918108419836, + 0.34351473435147345, + 0.677406523468576, + 0.49105263157894735, + 0.007684426229508197, + 0.30750367827366354 + ], + "confusion_matrix": [ + [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + [ + 0, + 14880, + 68, + 67, + 5, + 16, + 9, + 0, + 548, + 0, + 0, + 201, + 70, + 2, + 566, + 12, + 329, + 2, + 5, + 0 + ], + [ + 0, + 283, + 11594, + 100, + 64, + 19, + 68, + 1, + 1, + 17, + 27, + 187, + 5, + 1, + 75, + 0, + 21, + 11, + 3, + 0 + ], + [ + 0, + 174, + 149, + 12594, + 18, + 7, + 2, + 171, + 5, + 37, + 10, + 0, + 22, + 11, + 63, + 217, + 29, + 45, + 314, + 0 + ], + [ + 0, + 41, + 538, + 9, + 982, + 49, + 0, + 0, + 0, + 0, + 85, + 0, + 29, + 8, + 4, + 10, + 0, + 292, + 0, + 0 + ], + [ + 0, + 98, + 1, + 23, + 3, + 5509, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 19, + 1, + 0, + 135, + 0, + 0 + ], + [ + 0, + 129, + 37, + 18, + 3, + 0, + 1178, + 56, + 223, + 0, + 2, + 527, + 0, + 0, + 82, + 0, + 5, + 148, + 0, + 0 + ], + [ + 0, + 13, + 0, + 17, + 0, + 0, + 11, + 4425, + 725, + 0, + 0, + 9, + 143, + 0, + 15, + 0, + 21, + 0, + 0, + 0 + ], + [ + 0, + 45, + 0, + 0, + 0, + 0, + 0, + 2, + 6541, + 0, + 0, + 6, + 0, + 0, + 3, + 0, + 1, + 0, + 0, + 0 + ], + [ + 0, + 14, + 10, + 13, + 2, + 4, + 0, + 28, + 2, + 2054, + 0, + 0, + 4, + 2, + 8, + 23, + 0, + 2, + 0, + 0 + ], + [ + 0, + 108, + 907, + 12, + 35, + 1, + 1, + 0, + 0, + 4, + 108, + 0, + 0, + 0, + 13, + 1, + 6, + 6, + 0, + 0 + ], + [ + 0, + 23, + 0, + 0, + 138, + 0, + 21, + 7, + 9, + 0, + 0, + 6439, + 0, + 0, + 27, + 0, + 77, + 0, + 1, + 0 + ], + [ + 0, + 104, + 19, + 318, + 1, + 0, + 61, + 605, + 437, + 3128, + 37, + 178, + 522, + 47, + 77, + 278, + 39, + 5, + 190, + 0 + ], + [ + 0, + 17, + 26, + 65, + 0, + 0, + 6, + 125, + 15, + 28, + 12, + 14, + 198, + 229, + 32, + 20, + 8, + 1, + 0, + 0 + ], + [ + 0, + 995, + 14, + 35, + 0, + 0, + 9, + 33, + 437, + 0, + 0, + 58, + 0, + 0, + 1597, + 0, + 324, + 2, + 0, + 0 + ], + [ + 0, + 64, + 2, + 59, + 0, + 2, + 1, + 0, + 0, + 66, + 0, + 0, + 4, + 0, + 0, + 1703, + 0, + 8, + 0, + 0 + ], + [ + 0, + 34, + 0, + 24, + 0, + 0, + 0, + 16, + 801, + 0, + 0, + 20, + 0, + 0, + 68, + 0, + 1866, + 0, + 0, + 0 + ], + [ + 0, + 115, + 601, + 154, + 63, + 327, + 0, + 0, + 0, + 20, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 15, + 0, + 0 + ], + [ + 0, + 31, + 0, + 326, + 0, + 0, + 0, + 125, + 20, + 0, + 0, + 22, + 128, + 0, + 93, + 43, + 111, + 0, + 627, + 0 + ], + [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ] + ] + } + }, + { + "mode": "replace", + "alpha": 0.1, + "metrics": { + "miou": 0.5212361736883501, + "oa": 0.7897301871231028, + "macro_f1": 0.634597286240264, + "kappa": 0.7664244164888394, + "per_class_iou": [ + 0.7848168654173765, + 0.8042692491304644, + 0.8103925940941955, + 0.5514606741573034, + 0.8984173126614987, + 0.580632565404139, + 0.6315869631434663, + 0.6881551362683438, + 0.38625725519565624, + 0.15341264871634314, + 0.854807063440157, + 0.19133980036552792, + 0.11556829035339064, + 0.3336673346693387, + 0.8366013071895425, + 0.5090754395916052, + 0.019867549668874173, + 0.23192307692307693 + ], + "confusion_matrix": [ + [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + [ + 0, + 14742, + 118, + 47, + 30, + 16, + 41, + 5, + 481, + 0, + 3, + 209, + 87, + 3, + 710, + 19, + 260, + 5, + 4, + 0 + ], + [ + 0, + 113, + 11793, + 83, + 15, + 16, + 55, + 4, + 0, + 19, + 49, + 186, + 21, + 4, + 99, + 0, + 8, + 4, + 8, + 0 + ], + [ + 0, + 160, + 129, + 11993, + 23, + 11, + 3, + 183, + 0, + 33, + 2, + 0, + 2, + 6, + 162, + 130, + 35, + 4, + 992, + 0 + ], + [ + 0, + 22, + 366, + 31, + 1227, + 46, + 7, + 0, + 0, + 0, + 250, + 0, + 14, + 9, + 0, + 0, + 20, + 52, + 3, + 0 + ], + [ + 0, + 73, + 5, + 25, + 0, + 5563, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 19, + 8, + 2, + 94, + 0, + 0 + ], + [ + 0, + 75, + 73, + 3, + 14, + 0, + 1487, + 33, + 240, + 0, + 2, + 217, + 0, + 0, + 82, + 0, + 4, + 178, + 0, + 0 + ], + [ + 0, + 6, + 1, + 11, + 0, + 0, + 14, + 4147, + 374, + 107, + 0, + 8, + 619, + 1, + 73, + 1, + 4, + 0, + 13, + 0 + ], + [ + 0, + 24, + 0, + 0, + 0, + 0, + 0, + 0, + 6565, + 0, + 0, + 8, + 0, + 0, + 0, + 0, + 1, + 0, + 0, + 0 + ], + [ + 0, + 4, + 21, + 3, + 0, + 1, + 0, + 22, + 0, + 2063, + 0, + 0, + 25, + 23, + 4, + 0, + 0, + 0, + 0, + 0 + ], + [ + 0, + 31, + 878, + 0, + 4, + 0, + 1, + 0, + 0, + 5, + 245, + 0, + 0, + 0, + 5, + 0, + 30, + 3, + 0, + 0 + ], + [ + 0, + 9, + 0, + 0, + 74, + 0, + 17, + 5, + 10, + 0, + 0, + 6535, + 0, + 0, + 18, + 0, + 67, + 0, + 7, + 0 + ], + [ + 0, + 113, + 18, + 152, + 0, + 4, + 4, + 456, + 497, + 2891, + 2, + 109, + 1361, + 205, + 153, + 17, + 8, + 10, + 46, + 0 + ], + [ + 0, + 1, + 46, + 49, + 0, + 0, + 0, + 200, + 8, + 40, + 1, + 93, + 210, + 121, + 16, + 4, + 6, + 0, + 1, + 0 + ], + [ + 0, + 1029, + 18, + 37, + 0, + 2, + 10, + 52, + 437, + 0, + 0, + 60, + 1, + 0, + 1665, + 0, + 177, + 16, + 0, + 0 + ], + [ + 0, + 28, + 10, + 27, + 7, + 6, + 0, + 1, + 0, + 38, + 0, + 0, + 0, + 0, + 0, + 1792, + 0, + 0, + 0, + 0 + ], + [ + 0, + 55, + 0, + 6, + 0, + 0, + 0, + 37, + 895, + 0, + 0, + 7, + 0, + 0, + 34, + 0, + 1795, + 0, + 0, + 0 + ], + [ + 0, + 248, + 503, + 40, + 11, + 301, + 0, + 0, + 0, + 42, + 86, + 0, + 0, + 0, + 0, + 4, + 27, + 33, + 0, + 0 + ], + [ + 0, + 13, + 0, + 417, + 0, + 0, + 1, + 189, + 0, + 0, + 0, + 6, + 88, + 0, + 111, + 50, + 48, + 0, + 603, + 0 + ], + [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ] + ] + } + }, + { + "mode": "replace", + "alpha": 0.25, + "metrics": { + "miou": 0.5256398451814701, + "oa": 0.7954606313128608, + "macro_f1": 0.6400266863319044, + "kappa": 0.7725060156424988, + "per_class_iou": [ + 0.7863696632193052, + 0.7940560621411685, + 0.8422681105804802, + 0.5216035634743875, + 0.8953563366655918, + 0.5666403785488959, + 0.6681021224238696, + 0.6854425749817118, + 0.3865969759193579, + 0.15913978494623657, + 0.8521227955584585, + 0.16817463736895016, + 0.15324165029469547, + 0.3526720731960907, + 0.8232323232323232, + 0.5073836723321259, + 0.010297482837528604, + 0.2888170055452865 + ], + "confusion_matrix": [ + [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + [ + 0, + 14827, + 104, + 46, + 8, + 16, + 20, + 1, + 480, + 0, + 3, + 211, + 80, + 3, + 659, + 16, + 296, + 4, + 6, + 0 + ], + [ + 0, + 160, + 11756, + 93, + 27, + 17, + 59, + 3, + 0, + 18, + 25, + 184, + 13, + 1, + 99, + 0, + 10, + 4, + 8, + 0 + ], + [ + 0, + 165, + 132, + 12522, + 19, + 10, + 2, + 144, + 0, + 31, + 1, + 0, + 2, + 6, + 113, + 137, + 34, + 11, + 539, + 0 + ], + [ + 0, + 23, + 477, + 28, + 1171, + 50, + 1, + 0, + 0, + 0, + 130, + 0, + 18, + 10, + 0, + 2, + 6, + 128, + 3, + 0 + ], + [ + 0, + 83, + 1, + 23, + 0, + 5553, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 19, + 8, + 1, + 101, + 0, + 0 + ], + [ + 0, + 96, + 76, + 5, + 7, + 0, + 1437, + 49, + 253, + 0, + 0, + 217, + 0, + 0, + 77, + 0, + 5, + 186, + 0, + 0 + ], + [ + 0, + 7, + 0, + 14, + 0, + 0, + 10, + 4344, + 415, + 65, + 0, + 10, + 472, + 0, + 33, + 1, + 4, + 0, + 4, + 0 + ], + [ + 0, + 29, + 0, + 0, + 0, + 0, + 0, + 0, + 6559, + 0, + 0, + 9, + 0, + 0, + 0, + 0, + 1, + 0, + 0, + 0 + ], + [ + 0, + 6, + 20, + 6, + 0, + 1, + 0, + 26, + 0, + 2071, + 0, + 0, + 16, + 14, + 5, + 1, + 0, + 0, + 0, + 0 + ], + [ + 0, + 34, + 886, + 0, + 14, + 0, + 2, + 0, + 0, + 5, + 222, + 0, + 0, + 0, + 5, + 0, + 30, + 4, + 0, + 0 + ], + [ + 0, + 17, + 0, + 0, + 91, + 0, + 14, + 5, + 10, + 0, + 0, + 6523, + 0, + 0, + 13, + 0, + 63, + 0, + 6, + 0 + ], + [ + 0, + 107, + 18, + 205, + 0, + 3, + 10, + 473, + 524, + 2954, + 6, + 129, + 1171, + 188, + 120, + 47, + 11, + 8, + 72, + 0 + ], + [ + 0, + 1, + 44, + 53, + 0, + 0, + 0, + 189, + 8, + 36, + 1, + 71, + 216, + 156, + 12, + 2, + 7, + 0, + 0, + 0 + ], + [ + 0, + 1027, + 18, + 38, + 0, + 0, + 10, + 43, + 402, + 0, + 0, + 58, + 0, + 0, + 1696, + 0, + 205, + 7, + 0, + 0 + ], + [ + 0, + 28, + 6, + 32, + 4, + 6, + 0, + 0, + 0, + 40, + 0, + 0, + 0, + 0, + 0, + 1793, + 0, + 0, + 0, + 0 + ], + [ + 0, + 51, + 0, + 8, + 0, + 0, + 0, + 19, + 875, + 0, + 0, + 14, + 0, + 0, + 41, + 0, + 1821, + 0, + 0, + 0 + ], + [ + 0, + 230, + 546, + 75, + 28, + 310, + 0, + 0, + 0, + 42, + 27, + 0, + 0, + 0, + 0, + 4, + 15, + 18, + 0, + 0 + ], + [ + 0, + 11, + 0, + 373, + 0, + 0, + 0, + 171, + 4, + 0, + 0, + 10, + 100, + 0, + 109, + 51, + 72, + 0, + 625, + 0 + ], + [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ] + ] + } + }, + { + "mode": "replace", + "alpha": 0.5, + "metrics": { + "miou": 0.5090612468206375, + "oa": 0.7875772538854554, + "macro_f1": 0.6261832418365842, + "kappa": 0.7636132382344394, + "per_class_iou": [ + 0.7859325605900949, + 0.7847862672500842, + 0.8417616097008461, + 0.4688974688974689, + 0.8888531446035065, + 0.4957098283931357, + 0.6741316270566727, + 0.6773225739706187, + 0.3778793418647166, + 0.12577639751552794, + 0.8244294275149815, + 0.09631811487481591, + 0.2294557097118463, + 0.3591641271223335, + 0.7114754098360656, + 0.5004046398705152, + 0.005789473684210527, + 0.3150147203140334 + ], + "confusion_matrix": [ + [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + [ + 0, + 14917, + 80, + 63, + 1, + 16, + 9, + 0, + 521, + 0, + 2, + 206, + 70, + 2, + 557, + 14, + 316, + 0, + 6, + 0 + ], + [ + 0, + 246, + 11658, + 100, + 54, + 18, + 60, + 1, + 0, + 17, + 18, + 183, + 6, + 1, + 93, + 0, + 15, + 2, + 5, + 0 + ], + [ + 0, + 161, + 141, + 12634, + 13, + 8, + 2, + 174, + 2, + 37, + 8, + 0, + 16, + 6, + 56, + 201, + 29, + 38, + 342, + 0 + ], + [ + 0, + 31, + 532, + 15, + 1093, + 50, + 0, + 0, + 0, + 0, + 25, + 0, + 25, + 11, + 0, + 6, + 0, + 259, + 0, + 0 + ], + [ + 0, + 99, + 0, + 22, + 0, + 5526, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 19, + 4, + 0, + 119, + 0, + 0 + ], + [ + 0, + 120, + 49, + 9, + 3, + 0, + 1271, + 70, + 222, + 0, + 2, + 412, + 0, + 0, + 77, + 0, + 5, + 168, + 0, + 0 + ], + [ + 0, + 13, + 0, + 16, + 0, + 0, + 12, + 4425, + 585, + 9, + 0, + 9, + 292, + 0, + 10, + 0, + 8, + 0, + 0, + 0 + ], + [ + 0, + 43, + 0, + 0, + 0, + 0, + 0, + 0, + 6547, + 0, + 0, + 7, + 0, + 0, + 1, + 0, + 0, + 0, + 0, + 0 + ], + [ + 0, + 11, + 14, + 7, + 1, + 3, + 0, + 31, + 2, + 2067, + 0, + 0, + 7, + 4, + 8, + 11, + 0, + 0, + 0, + 0 + ], + [ + 0, + 67, + 896, + 9, + 29, + 1, + 2, + 0, + 0, + 4, + 162, + 0, + 0, + 0, + 5, + 0, + 23, + 4, + 0, + 0 + ], + [ + 0, + 20, + 0, + 0, + 130, + 0, + 12, + 7, + 9, + 0, + 0, + 6466, + 0, + 0, + 20, + 0, + 75, + 0, + 3, + 0 + ], + [ + 0, + 94, + 20, + 277, + 0, + 0, + 53, + 572, + 453, + 3118, + 29, + 158, + 654, + 117, + 68, + 242, + 29, + 6, + 156, + 0 + ], + [ + 0, + 13, + 37, + 62, + 0, + 0, + 1, + 145, + 14, + 30, + 2, + 31, + 205, + 215, + 23, + 10, + 7, + 1, + 0, + 0 + ], + [ + 0, + 1014, + 16, + 34, + 0, + 0, + 5, + 36, + 417, + 0, + 0, + 58, + 0, + 0, + 1650, + 0, + 272, + 2, + 0, + 0 + ], + [ + 0, + 48, + 4, + 51, + 0, + 4, + 0, + 0, + 0, + 58, + 0, + 0, + 2, + 0, + 0, + 1736, + 0, + 6, + 0, + 0 + ], + [ + 0, + 38, + 0, + 21, + 0, + 0, + 0, + 14, + 825, + 0, + 0, + 19, + 0, + 0, + 57, + 0, + 1855, + 0, + 0, + 0 + ], + [ + 0, + 158, + 589, + 123, + 53, + 328, + 0, + 0, + 0, + 31, + 0, + 0, + 0, + 0, + 0, + 0, + 2, + 11, + 0, + 0 + ], + [ + 0, + 24, + 0, + 332, + 0, + 0, + 0, + 135, + 18, + 0, + 0, + 18, + 121, + 0, + 96, + 43, + 97, + 0, + 642, + 0 + ], + [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ] + ] + } + } + ], + "reference_val_miou": 0.5256398451814701, + "delta_val_pp": 0.0, + "patch_bootstrap_delta_interval_pp": [ + 0.0, + 0.0 + ], + "bootstrap_caveat": "descriptive, after validation selection; not an independent significance test", + "selection_split": "validation", + "test_used_for_selection": false + }, + "test_policy": "exploratory all-variants sweep explicitly requested by user", + "patches": 482 + }, + { + "kind": "temporal_cnv1_k3", + "metrics": { + "miou": 0.49455547330691263, + "oa": 0.8109266736579659, + "macro_f1": 0.6234136021853756, + "kappa": 0.7642966739749818, + "per_class_iou": [ + 0.8061330522981268, + 0.7198486670090578, + 0.8757351877577422, + 0.46213693236161063, + 0.8703389461776095, + 0.38416520104311963, + 0.4490553274645572, + 0.6216216216216216, + 0.7901944411308601, + 0.07114146695276376, + 0.5587868716244287, + 0.3175281724644782, + 0.4373326486446833, + 0.2655897022970766, + 0.6168043633350977, + 0.28662647573048294, + 0.0918118400487935, + 0.27714760156231727 + ], + "confusion_matrix": [ + [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + [ + 0, + 1311069, + 6756, + 8420, + 815, + 744, + 883, + 2246, + 19285, + 602, + 381, + 3742, + 6998, + 405, + 29504, + 1126, + 71312, + 1029, + 686, + 0 + ], + [ + 0, + 12671, + 493367, + 5115, + 3930, + 1130, + 1764, + 172, + 746, + 546, + 21217, + 15339, + 437, + 131, + 1045, + 166, + 699, + 2161, + 44, + 0 + ], + [ + 0, + 17785, + 2752, + 641744, + 302, + 960, + 172, + 3539, + 862, + 3810, + 169, + 19, + 2132, + 202, + 3012, + 4846, + 607, + 129, + 5247, + 0 + ], + [ + 0, + 9412, + 46049, + 1786, + 82625, + 1310, + 4247, + 55, + 196, + 62, + 7994, + 4414, + 287, + 376, + 482, + 80, + 252, + 3761, + 4, + 0 + ], + [ + 0, + 2675, + 1166, + 868, + 380, + 120018, + 262, + 124, + 19, + 220, + 688, + 194, + 22, + 35, + 1476, + 29, + 106, + 837, + 0, + 0 + ], + [ + 0, + 4040, + 7283, + 711, + 3621, + 289, + 25338, + 175, + 883, + 118, + 2677, + 5012, + 146, + 454, + 1986, + 330, + 163, + 536, + 0, + 0 + ], + [ + 0, + 1538, + 141, + 3611, + 17, + 249, + 89, + 47797, + 7620, + 3775, + 49, + 378, + 1239, + 1298, + 2624, + 9685, + 632, + 168, + 1023, + 0 + ], + [ + 0, + 18456, + 124, + 4622, + 0, + 0, + 17, + 1317, + 151754, + 0, + 1, + 338, + 854, + 23, + 403, + 328, + 9076, + 0, + 164, + 0 + ], + [ + 0, + 482, + 193, + 1058, + 35, + 123, + 379, + 620, + 116, + 66242, + 0, + 28, + 795, + 26, + 446, + 416, + 71, + 2, + 15, + 0 + ], + [ + 0, + 3092, + 44739, + 412, + 1763, + 216, + 156, + 5, + 11, + 5, + 7062, + 21, + 6, + 0, + 299, + 8, + 83, + 484, + 0, + 0 + ], + [ + 0, + 1322, + 2401, + 20, + 0, + 0, + 1773, + 184, + 1235, + 0, + 143, + 60525, + 38, + 0, + 1508, + 0, + 693, + 4, + 114, + 0 + ], + [ + 0, + 3196, + 123, + 4634, + 46, + 7, + 910, + 9697, + 3978, + 1955, + 63, + 3941, + 25923, + 639, + 1593, + 517, + 2180, + 171, + 1142, + 0 + ], + [ + 0, + 589, + 140, + 1406, + 6, + 31, + 92, + 2996, + 519, + 719, + 7, + 314, + 2523, + 11923, + 406, + 408, + 473, + 9, + 52, + 0 + ], + [ + 0, + 57524, + 1032, + 1194, + 723, + 333, + 1050, + 1045, + 7046, + 405, + 646, + 1114, + 551, + 254, + 47497, + 318, + 6554, + 377, + 131, + 0 + ], + [ + 0, + 1525, + 170, + 6485, + 90, + 129, + 5, + 653, + 17, + 376, + 8, + 2255, + 478, + 3, + 400, + 53604, + 52, + 13, + 2053, + 0 + ], + [ + 0, + 12728, + 331, + 778, + 2, + 0, + 34, + 422, + 10506, + 48, + 33, + 1127, + 965, + 73, + 710, + 23, + 49018, + 5, + 56, + 0 + ], + [ + 0, + 8636, + 11253, + 1214, + 3447, + 3258, + 322, + 34, + 20, + 20, + 6827, + 1, + 610, + 689, + 1495, + 80, + 44, + 4817, + 2, + 0 + ], + [ + 0, + 4694, + 43, + 2183, + 220, + 0, + 39, + 1222, + 3590, + 122, + 2, + 118, + 2844, + 42, + 3653, + 230, + 1161, + 11, + 11850, + 0 + ], + [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ] + ] + }, + "baseline": { + "miou": 0.49455547330691263, + "oa": 0.8109266736579659, + "macro_f1": 0.6234136021853756, + "kappa": 0.7642966739749818, + "per_class_iou": [ + 0.8061330522981268, + 0.7198486670090578, + 0.8757351877577422, + 0.46213693236161063, + 0.8703389461776095, + 0.38416520104311963, + 0.4490553274645572, + 0.6216216216216216, + 0.7901944411308601, + 0.07114146695276376, + 0.5587868716244287, + 0.3175281724644782, + 0.4373326486446833, + 0.2655897022970766, + 0.6168043633350977, + 0.28662647573048294, + 0.0918118400487935, + 0.27714760156231727 + ], + "confusion_matrix": [ + [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + [ + 0, + 1311069, + 6756, + 8420, + 815, + 744, + 883, + 2246, + 19285, + 602, + 381, + 3742, + 6998, + 405, + 29504, + 1126, + 71312, + 1029, + 686, + 0 + ], + [ + 0, + 12671, + 493367, + 5115, + 3930, + 1130, + 1764, + 172, + 746, + 546, + 21217, + 15339, + 437, + 131, + 1045, + 166, + 699, + 2161, + 44, + 0 + ], + [ + 0, + 17785, + 2752, + 641744, + 302, + 960, + 172, + 3539, + 862, + 3810, + 169, + 19, + 2132, + 202, + 3012, + 4846, + 607, + 129, + 5247, + 0 + ], + [ + 0, + 9412, + 46049, + 1786, + 82625, + 1310, + 4247, + 55, + 196, + 62, + 7994, + 4414, + 287, + 376, + 482, + 80, + 252, + 3761, + 4, + 0 + ], + [ + 0, + 2675, + 1166, + 868, + 380, + 120018, + 262, + 124, + 19, + 220, + 688, + 194, + 22, + 35, + 1476, + 29, + 106, + 837, + 0, + 0 + ], + [ + 0, + 4040, + 7283, + 711, + 3621, + 289, + 25338, + 175, + 883, + 118, + 2677, + 5012, + 146, + 454, + 1986, + 330, + 163, + 536, + 0, + 0 + ], + [ + 0, + 1538, + 141, + 3611, + 17, + 249, + 89, + 47797, + 7620, + 3775, + 49, + 378, + 1239, + 1298, + 2624, + 9685, + 632, + 168, + 1023, + 0 + ], + [ + 0, + 18456, + 124, + 4622, + 0, + 0, + 17, + 1317, + 151754, + 0, + 1, + 338, + 854, + 23, + 403, + 328, + 9076, + 0, + 164, + 0 + ], + [ + 0, + 482, + 193, + 1058, + 35, + 123, + 379, + 620, + 116, + 66242, + 0, + 28, + 795, + 26, + 446, + 416, + 71, + 2, + 15, + 0 + ], + [ + 0, + 3092, + 44739, + 412, + 1763, + 216, + 156, + 5, + 11, + 5, + 7062, + 21, + 6, + 0, + 299, + 8, + 83, + 484, + 0, + 0 + ], + [ + 0, + 1322, + 2401, + 20, + 0, + 0, + 1773, + 184, + 1235, + 0, + 143, + 60525, + 38, + 0, + 1508, + 0, + 693, + 4, + 114, + 0 + ], + [ + 0, + 3196, + 123, + 4634, + 46, + 7, + 910, + 9697, + 3978, + 1955, + 63, + 3941, + 25923, + 639, + 1593, + 517, + 2180, + 171, + 1142, + 0 + ], + [ + 0, + 589, + 140, + 1406, + 6, + 31, + 92, + 2996, + 519, + 719, + 7, + 314, + 2523, + 11923, + 406, + 408, + 473, + 9, + 52, + 0 + ], + [ + 0, + 57524, + 1032, + 1194, + 723, + 333, + 1050, + 1045, + 7046, + 405, + 646, + 1114, + 551, + 254, + 47497, + 318, + 6554, + 377, + 131, + 0 + ], + [ + 0, + 1525, + 170, + 6485, + 90, + 129, + 5, + 653, + 17, + 376, + 8, + 2255, + 478, + 3, + 400, + 53604, + 52, + 13, + 2053, + 0 + ], + [ + 0, + 12728, + 331, + 778, + 2, + 0, + 34, + 422, + 10506, + 48, + 33, + 1127, + 965, + 73, + 710, + 23, + 49018, + 5, + 56, + 0 + ], + [ + 0, + 8636, + 11253, + 1214, + 3447, + 3258, + 322, + 34, + 20, + 20, + 6827, + 1, + 610, + 689, + 1495, + 80, + 44, + 4817, + 2, + 0 + ], + [ + 0, + 4694, + 43, + 2183, + 220, + 0, + 39, + 1222, + 3590, + 122, + 2, + 118, + 2844, + 42, + 3653, + 230, + 1161, + 11, + 11850, + 0 + ], + [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ] + ] + }, + "standalone": { + "miou": 0.32453175579426435, + "oa": 0.7043710430954524, + "macro_f1": 0.4441955767489147, + "kappa": 0.6343906959683091, + "per_class_iou": [ + 0.7485525197015596, + 0.5942026297240433, + 0.6723910918292869, + 0.15268789349271186, + 0.7072212077651294, + 0.021234676007005255, + 0.27379463615769956, + 0.48749815463749313, + 0.5086588109543225, + 0.057937764841843944, + 0.37808163026292674, + 0.1294381716773228, + 0.16591601116467902, + 0.1816892340015588, + 0.3652115961346218, + 0.2177487425565127, + 0.044748611272216424, + 0.1345582221158258 + ], + "confusion_matrix": [ + [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + [ + 0, + 1220196, + 8607, + 52503, + 2661, + 5686, + 371, + 4359, + 23019, + 5191, + 2382, + 14087, + 3098, + 438, + 46467, + 2983, + 69095, + 4213, + 647, + 0 + ], + [ + 0, + 13211, + 448478, + 30836, + 13901, + 2132, + 805, + 372, + 4050, + 1111, + 25012, + 10450, + 633, + 49, + 1566, + 1384, + 1112, + 4893, + 685, + 0 + ], + [ + 0, + 21199, + 47664, + 559188, + 3873, + 3012, + 526, + 2157, + 2847, + 9401, + 2085, + 518, + 963, + 277, + 6861, + 10770, + 974, + 5431, + 10543, + 0 + ], + [ + 0, + 7399, + 75281, + 7293, + 33007, + 3933, + 2731, + 162, + 389, + 1090, + 15168, + 6042, + 502, + 724, + 2117, + 1621, + 480, + 5280, + 173, + 0 + ], + [ + 0, + 5165, + 868, + 1139, + 1900, + 109219, + 17, + 159, + 215, + 2475, + 1368, + 213, + 263, + 251, + 885, + 110, + 199, + 4669, + 4, + 0 + ], + [ + 0, + 4019, + 11298, + 2329, + 12680, + 806, + 1358, + 216, + 809, + 1039, + 4199, + 8001, + 65, + 766, + 1321, + 2940, + 398, + 1392, + 126, + 0 + ], + [ + 0, + 1093, + 286, + 4582, + 1178, + 1428, + 160, + 38314, + 8778, + 9508, + 477, + 1044, + 1779, + 1669, + 2593, + 5028, + 1902, + 1588, + 526, + 0 + ], + [ + 0, + 24581, + 78, + 8722, + 14, + 0, + 17, + 12870, + 125483, + 70, + 104, + 2224, + 307, + 27, + 1423, + 2037, + 8334, + 431, + 755, + 0 + ], + [ + 0, + 1025, + 190, + 1979, + 1178, + 2217, + 17, + 1185, + 126, + 59009, + 155, + 129, + 493, + 703, + 105, + 207, + 230, + 2041, + 58, + 0 + ], + [ + 0, + 3247, + 35006, + 3395, + 5170, + 254, + 292, + 131, + 86, + 82, + 6768, + 504, + 196, + 20, + 489, + 1577, + 118, + 1005, + 22, + 0 + ], + [ + 0, + 3004, + 3371, + 169, + 143, + 11, + 3501, + 789, + 2055, + 1, + 385, + 51652, + 37, + 49, + 2242, + 91, + 1484, + 18, + 958, + 0 + ], + [ + 0, + 3060, + 611, + 4821, + 1443, + 798, + 140, + 19414, + 5730, + 2313, + 843, + 4534, + 9515, + 736, + 1631, + 1132, + 1748, + 946, + 1300, + 0 + ], + [ + 0, + 612, + 202, + 2036, + 195, + 87, + 5, + 3786, + 714, + 3647, + 312, + 1650, + 1445, + 5231, + 603, + 1130, + 177, + 548, + 233, + 0 + ], + [ + 0, + 52294, + 792, + 4350, + 679, + 1517, + 999, + 3701, + 7629, + 3212, + 297, + 4085, + 422, + 547, + 37531, + 1563, + 7029, + 777, + 370, + 0 + ], + [ + 0, + 1602, + 776, + 12102, + 832, + 252, + 479, + 2389, + 188, + 2448, + 186, + 2392, + 1224, + 1612, + 1609, + 37264, + 553, + 864, + 1544, + 0 + ], + [ + 0, + 13294, + 299, + 2190, + 37, + 8, + 21, + 2442, + 8504, + 165, + 88, + 8943, + 88, + 13, + 2207, + 561, + 37664, + 204, + 131, + 0 + ], + [ + 0, + 7358, + 8654, + 2319, + 6872, + 3112, + 7, + 42, + 54, + 2611, + 5352, + 54, + 249, + 840, + 1199, + 491, + 55, + 3472, + 28, + 0 + ], + [ + 0, + 1908, + 93, + 2587, + 25, + 62, + 102, + 3830, + 4732, + 598, + 40, + 1786, + 1031, + 194, + 5455, + 93, + 2223, + 520, + 6745, + 0 + ], + [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ] + ] + }, + "delta_test_pp": 0.0, + "standalone_delta_test_pp": -17.00237175126483, + "seconds": 41.0292493281886, + "validation_selection": { + "kind": "temporal_cnv1_k3", + "seed": 3407, + "checkpoint_epoch": 63, + "standalone": { + "miou": 0.34346012177732077, + "oa": 0.673718147834749, + "macro_f1": 0.44136850495727636, + "kappa": 0.6378031880460475, + "per_class_iou": [ + 0.7457516694717411, + 0.6644708752668497, + 0.6450739061303811, + 0.0344748333716387, + 0.7722526106414719, + 0.0068634179821551134, + 0.4754888829359764, + 0.7023994667851589, + 0.2976242530243405, + 0.005257623554153523, + 0.6383144318434512, + 0.04287589324777599, + 0.0, + 0.2883046237533998, + 0.3703118831425187, + 0.3601833660772757, + 0.00878972278566599, + 0.12384473197781885 + ], + "confusion_matrix": [ + [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + [ + 0, + 13736, + 141, + 345, + 10, + 8, + 65, + 61, + 618, + 17, + 22, + 474, + 1, + 3, + 934, + 11, + 296, + 30, + 8, + 0 + ], + [ + 0, + 117, + 10894, + 556, + 349, + 3, + 13, + 1, + 1, + 16, + 144, + 245, + 2, + 0, + 41, + 53, + 25, + 16, + 1, + 0 + ], + [ + 0, + 203, + 901, + 10954, + 176, + 1, + 0, + 249, + 16, + 26, + 9, + 16, + 4, + 16, + 204, + 194, + 43, + 1, + 855, + 0 + ], + [ + 0, + 55, + 1364, + 74, + 150, + 18, + 4, + 0, + 0, + 46, + 195, + 0, + 24, + 18, + 38, + 38, + 0, + 19, + 4, + 0 + ], + [ + 0, + 100, + 3, + 43, + 24, + 4659, + 0, + 0, + 0, + 840, + 26, + 0, + 0, + 0, + 22, + 29, + 0, + 43, + 0, + 0 + ], + [ + 0, + 39, + 188, + 137, + 806, + 0, + 20, + 230, + 161, + 0, + 245, + 369, + 0, + 0, + 117, + 30, + 51, + 13, + 2, + 0 + ], + [ + 0, + 14, + 0, + 45, + 89, + 0, + 0, + 3550, + 116, + 418, + 0, + 57, + 643, + 0, + 31, + 0, + 393, + 0, + 23, + 0 + ], + [ + 0, + 22, + 2, + 0, + 0, + 0, + 0, + 8, + 6323, + 0, + 0, + 54, + 0, + 0, + 26, + 0, + 21, + 0, + 142, + 0 + ], + [ + 0, + 0, + 8, + 66, + 28, + 10, + 0, + 8, + 0, + 2042, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 4, + 0, + 0 + ], + [ + 0, + 94, + 781, + 39, + 71, + 0, + 15, + 0, + 0, + 0, + 10, + 0, + 0, + 0, + 26, + 142, + 23, + 1, + 0, + 0 + ], + [ + 0, + 206, + 271, + 0, + 0, + 0, + 376, + 23, + 26, + 0, + 0, + 5741, + 0, + 0, + 44, + 0, + 47, + 0, + 8, + 0 + ], + [ + 0, + 58, + 22, + 412, + 212, + 195, + 14, + 982, + 298, + 2829, + 42, + 429, + 294, + 2, + 33, + 102, + 15, + 55, + 52, + 0 + ], + [ + 0, + 3, + 21, + 122, + 34, + 0, + 0, + 242, + 24, + 110, + 6, + 25, + 133, + 0, + 48, + 14, + 6, + 0, + 8, + 0 + ], + [ + 0, + 489, + 19, + 28, + 0, + 0, + 19, + 100, + 488, + 27, + 0, + 305, + 4, + 0, + 1590, + 0, + 432, + 0, + 3, + 0 + ], + [ + 0, + 41, + 13, + 656, + 4, + 6, + 0, + 0, + 0, + 51, + 0, + 0, + 0, + 0, + 136, + 938, + 0, + 1, + 63, + 0 + ], + [ + 0, + 54, + 0, + 25, + 0, + 0, + 0, + 67, + 552, + 2, + 0, + 188, + 0, + 0, + 280, + 0, + 1650, + 1, + 10, + 0 + ], + [ + 0, + 76, + 177, + 244, + 499, + 0, + 0, + 0, + 0, + 275, + 11, + 0, + 0, + 0, + 0, + 0, + 0, + 13, + 0, + 0 + ], + [ + 0, + 68, + 7, + 321, + 2, + 3, + 0, + 116, + 104, + 38, + 0, + 90, + 0, + 0, + 31, + 11, + 400, + 0, + 335, + 0 + ], + [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ] + ] + }, + "chosen": { + "mode": "add", + "alpha": 0.0, + "metrics": { + "miou": 0.5256398451814701, + "oa": 0.7954606313128608, + "macro_f1": 0.6400266863319044, + "kappa": 0.7725060156424988, + "per_class_iou": [ + 0.7863696632193052, + 0.7940560621411685, + 0.8422681105804802, + 0.5216035634743875, + 0.8953563366655918, + 0.5666403785488959, + 0.6681021224238696, + 0.6854425749817118, + 0.3865969759193579, + 0.15913978494623657, + 0.8521227955584585, + 0.16817463736895016, + 0.15324165029469547, + 0.3526720731960907, + 0.8232323232323232, + 0.5073836723321259, + 0.010297482837528604, + 0.2888170055452865 + ], + "confusion_matrix": [ + [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + [ + 0, + 14827, + 104, + 46, + 8, + 16, + 20, + 1, + 480, + 0, + 3, + 211, + 80, + 3, + 659, + 16, + 296, + 4, + 6, + 0 + ], + [ + 0, + 160, + 11756, + 93, + 27, + 17, + 59, + 3, + 0, + 18, + 25, + 184, + 13, + 1, + 99, + 0, + 10, + 4, + 8, + 0 + ], + [ + 0, + 165, + 132, + 12522, + 19, + 10, + 2, + 144, + 0, + 31, + 1, + 0, + 2, + 6, + 113, + 137, + 34, + 11, + 539, + 0 + ], + [ + 0, + 23, + 477, + 28, + 1171, + 50, + 1, + 0, + 0, + 0, + 130, + 0, + 18, + 10, + 0, + 2, + 6, + 128, + 3, + 0 + ], + [ + 0, + 83, + 1, + 23, + 0, + 5553, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 19, + 8, + 1, + 101, + 0, + 0 + ], + [ + 0, + 96, + 76, + 5, + 7, + 0, + 1437, + 49, + 253, + 0, + 0, + 217, + 0, + 0, + 77, + 0, + 5, + 186, + 0, + 0 + ], + [ + 0, + 7, + 0, + 14, + 0, + 0, + 10, + 4344, + 415, + 65, + 0, + 10, + 472, + 0, + 33, + 1, + 4, + 0, + 4, + 0 + ], + [ + 0, + 29, + 0, + 0, + 0, + 0, + 0, + 0, + 6559, + 0, + 0, + 9, + 0, + 0, + 0, + 0, + 1, + 0, + 0, + 0 + ], + [ + 0, + 6, + 20, + 6, + 0, + 1, + 0, + 26, + 0, + 2071, + 0, + 0, + 16, + 14, + 5, + 1, + 0, + 0, + 0, + 0 + ], + [ + 0, + 34, + 886, + 0, + 14, + 0, + 2, + 0, + 0, + 5, + 222, + 0, + 0, + 0, + 5, + 0, + 30, + 4, + 0, + 0 + ], + [ + 0, + 17, + 0, + 0, + 91, + 0, + 14, + 5, + 10, + 0, + 0, + 6523, + 0, + 0, + 13, + 0, + 63, + 0, + 6, + 0 + ], + [ + 0, + 107, + 18, + 205, + 0, + 3, + 10, + 473, + 524, + 2954, + 6, + 129, + 1171, + 188, + 120, + 47, + 11, + 8, + 72, + 0 + ], + [ + 0, + 1, + 44, + 53, + 0, + 0, + 0, + 189, + 8, + 36, + 1, + 71, + 216, + 156, + 12, + 2, + 7, + 0, + 0, + 0 + ], + [ + 0, + 1027, + 18, + 38, + 0, + 0, + 10, + 43, + 402, + 0, + 0, + 58, + 0, + 0, + 1696, + 0, + 205, + 7, + 0, + 0 + ], + [ + 0, + 28, + 6, + 32, + 4, + 6, + 0, + 0, + 0, + 40, + 0, + 0, + 0, + 0, + 0, + 1793, + 0, + 0, + 0, + 0 + ], + [ + 0, + 51, + 0, + 8, + 0, + 0, + 0, + 19, + 875, + 0, + 0, + 14, + 0, + 0, + 41, + 0, + 1821, + 0, + 0, + 0 + ], + [ + 0, + 230, + 546, + 75, + 28, + 310, + 0, + 0, + 0, + 42, + 27, + 0, + 0, + 0, + 0, + 4, + 15, + 18, + 0, + 0 + ], + [ + 0, + 11, + 0, + 373, + 0, + 0, + 0, + 171, + 4, + 0, + 0, + 10, + 100, + 0, + 109, + 51, + 72, + 0, + 625, + 0 + ], + [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ] + ] + } + }, + "records": [ + { + "mode": "add", + "alpha": 0.0, + "metrics": { + "miou": 0.5256398451814701, + "oa": 0.7954606313128608, + "macro_f1": 0.6400266863319044, + "kappa": 0.7725060156424988, + "per_class_iou": [ + 0.7863696632193052, + 0.7940560621411685, + 0.8422681105804802, + 0.5216035634743875, + 0.8953563366655918, + 0.5666403785488959, + 0.6681021224238696, + 0.6854425749817118, + 0.3865969759193579, + 0.15913978494623657, + 0.8521227955584585, + 0.16817463736895016, + 0.15324165029469547, + 0.3526720731960907, + 0.8232323232323232, + 0.5073836723321259, + 0.010297482837528604, + 0.2888170055452865 + ], + "confusion_matrix": [ + [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + [ + 0, + 14827, + 104, + 46, + 8, + 16, + 20, + 1, + 480, + 0, + 3, + 211, + 80, + 3, + 659, + 16, + 296, + 4, + 6, + 0 + ], + [ + 0, + 160, + 11756, + 93, + 27, + 17, + 59, + 3, + 0, + 18, + 25, + 184, + 13, + 1, + 99, + 0, + 10, + 4, + 8, + 0 + ], + [ + 0, + 165, + 132, + 12522, + 19, + 10, + 2, + 144, + 0, + 31, + 1, + 0, + 2, + 6, + 113, + 137, + 34, + 11, + 539, + 0 + ], + [ + 0, + 23, + 477, + 28, + 1171, + 50, + 1, + 0, + 0, + 0, + 130, + 0, + 18, + 10, + 0, + 2, + 6, + 128, + 3, + 0 + ], + [ + 0, + 83, + 1, + 23, + 0, + 5553, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 19, + 8, + 1, + 101, + 0, + 0 + ], + [ + 0, + 96, + 76, + 5, + 7, + 0, + 1437, + 49, + 253, + 0, + 0, + 217, + 0, + 0, + 77, + 0, + 5, + 186, + 0, + 0 + ], + [ + 0, + 7, + 0, + 14, + 0, + 0, + 10, + 4344, + 415, + 65, + 0, + 10, + 472, + 0, + 33, + 1, + 4, + 0, + 4, + 0 + ], + [ + 0, + 29, + 0, + 0, + 0, + 0, + 0, + 0, + 6559, + 0, + 0, + 9, + 0, + 0, + 0, + 0, + 1, + 0, + 0, + 0 + ], + [ + 0, + 6, + 20, + 6, + 0, + 1, + 0, + 26, + 0, + 2071, + 0, + 0, + 16, + 14, + 5, + 1, + 0, + 0, + 0, + 0 + ], + [ + 0, + 34, + 886, + 0, + 14, + 0, + 2, + 0, + 0, + 5, + 222, + 0, + 0, + 0, + 5, + 0, + 30, + 4, + 0, + 0 + ], + [ + 0, + 17, + 0, + 0, + 91, + 0, + 14, + 5, + 10, + 0, + 0, + 6523, + 0, + 0, + 13, + 0, + 63, + 0, + 6, + 0 + ], + [ + 0, + 107, + 18, + 205, + 0, + 3, + 10, + 473, + 524, + 2954, + 6, + 129, + 1171, + 188, + 120, + 47, + 11, + 8, + 72, + 0 + ], + [ + 0, + 1, + 44, + 53, + 0, + 0, + 0, + 189, + 8, + 36, + 1, + 71, + 216, + 156, + 12, + 2, + 7, + 0, + 0, + 0 + ], + [ + 0, + 1027, + 18, + 38, + 0, + 0, + 10, + 43, + 402, + 0, + 0, + 58, + 0, + 0, + 1696, + 0, + 205, + 7, + 0, + 0 + ], + [ + 0, + 28, + 6, + 32, + 4, + 6, + 0, + 0, + 0, + 40, + 0, + 0, + 0, + 0, + 0, + 1793, + 0, + 0, + 0, + 0 + ], + [ + 0, + 51, + 0, + 8, + 0, + 0, + 0, + 19, + 875, + 0, + 0, + 14, + 0, + 0, + 41, + 0, + 1821, + 0, + 0, + 0 + ], + [ + 0, + 230, + 546, + 75, + 28, + 310, + 0, + 0, + 0, + 42, + 27, + 0, + 0, + 0, + 0, + 4, + 15, + 18, + 0, + 0 + ], + [ + 0, + 11, + 0, + 373, + 0, + 0, + 0, + 171, + 4, + 0, + 0, + 10, + 100, + 0, + 109, + 51, + 72, + 0, + 625, + 0 + ], + [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ] + ] + } + }, + { + "mode": "add", + "alpha": 0.1, + "metrics": { + "miou": 0.5182074685098821, + "oa": 0.7914546759353477, + "macro_f1": 0.632549565193289, + "kappa": 0.7680034125166677, + "per_class_iou": [ + 0.786032926181625, + 0.7895796965220895, + 0.8354134685977441, + 0.5091395452518948, + 0.8949152542372881, + 0.5427215189873418, + 0.653892395551548, + 0.6903157894736842, + 0.3792411528639183, + 0.15345080763582966, + 0.8436935775083828, + 0.13629862700228834, + 0.15212981744421908, + 0.35157718821809064, + 0.8060992262175695, + 0.5087330191294704, + 0.006436512580456407, + 0.2880639097744361 + ], + "confusion_matrix": [ + [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + [ + 0, + 14801, + 105, + 47, + 4, + 15, + 27, + 0, + 493, + 0, + 3, + 211, + 77, + 3, + 671, + 14, + 300, + 4, + 5, + 0 + ], + [ + 0, + 163, + 11760, + 104, + 30, + 17, + 56, + 2, + 0, + 16, + 14, + 187, + 13, + 1, + 93, + 0, + 11, + 3, + 7, + 0 + ], + [ + 0, + 161, + 132, + 12517, + 12, + 10, + 2, + 163, + 0, + 33, + 1, + 0, + 0, + 4, + 129, + 145, + 25, + 9, + 525, + 0 + ], + [ + 0, + 33, + 550, + 34, + 1142, + 49, + 0, + 0, + 0, + 0, + 112, + 0, + 16, + 6, + 0, + 2, + 6, + 96, + 1, + 0 + ], + [ + 0, + 90, + 1, + 26, + 0, + 5544, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 19, + 8, + 0, + 101, + 0, + 0 + ], + [ + 0, + 87, + 75, + 5, + 9, + 0, + 1372, + 81, + 248, + 0, + 0, + 257, + 0, + 0, + 82, + 0, + 6, + 186, + 0, + 0 + ], + [ + 0, + 10, + 0, + 15, + 0, + 0, + 6, + 4351, + 380, + 55, + 0, + 16, + 525, + 0, + 15, + 1, + 4, + 0, + 1, + 0 + ], + [ + 0, + 27, + 0, + 0, + 0, + 0, + 0, + 0, + 6558, + 0, + 0, + 11, + 0, + 0, + 0, + 0, + 2, + 0, + 0, + 0 + ], + [ + 0, + 5, + 20, + 15, + 0, + 1, + 0, + 21, + 0, + 2079, + 0, + 0, + 13, + 8, + 4, + 0, + 0, + 0, + 0, + 0 + ], + [ + 0, + 38, + 896, + 0, + 16, + 0, + 2, + 0, + 0, + 4, + 209, + 0, + 0, + 0, + 5, + 0, + 28, + 4, + 0, + 0 + ], + [ + 0, + 13, + 0, + 0, + 82, + 0, + 12, + 5, + 10, + 0, + 0, + 6542, + 0, + 0, + 12, + 0, + 61, + 0, + 5, + 0 + ], + [ + 0, + 109, + 16, + 228, + 0, + 1, + 6, + 568, + 496, + 3090, + 6, + 161, + 953, + 168, + 97, + 72, + 9, + 8, + 58, + 0 + ], + [ + 0, + 1, + 46, + 61, + 0, + 0, + 0, + 206, + 10, + 33, + 1, + 64, + 205, + 150, + 10, + 2, + 7, + 0, + 0, + 0 + ], + [ + 0, + 1019, + 17, + 38, + 0, + 0, + 9, + 39, + 404, + 0, + 0, + 68, + 0, + 0, + 1683, + 0, + 224, + 3, + 0, + 0 + ], + [ + 0, + 29, + 6, + 53, + 4, + 6, + 0, + 0, + 0, + 40, + 0, + 0, + 0, + 0, + 0, + 1771, + 0, + 0, + 0, + 0 + ], + [ + 0, + 49, + 0, + 10, + 0, + 0, + 0, + 20, + 855, + 0, + 0, + 20, + 0, + 0, + 40, + 0, + 1835, + 0, + 0, + 0 + ], + [ + 0, + 201, + 553, + 101, + 39, + 307, + 0, + 0, + 0, + 45, + 23, + 0, + 0, + 0, + 0, + 2, + 13, + 11, + 0, + 0 + ], + [ + 0, + 15, + 0, + 378, + 0, + 0, + 0, + 170, + 6, + 0, + 0, + 17, + 97, + 0, + 106, + 42, + 82, + 0, + 613, + 0 + ], + [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ] + ] + } + }, + { + "mode": "add", + "alpha": 0.25, + "metrics": { + "miou": 0.49403197271012833, + "oa": 0.7806043208620301, + "macro_f1": 0.6084927904416739, + "kappa": 0.7557879449863211, + "per_class_iou": [ + 0.7819953151618398, + 0.776977466464019, + 0.8147954856807359, + 0.38564058469475493, + 0.8984425697598962, + 0.5065920894926089, + 0.631281679942071, + 0.6953754773016546, + 0.37524734664508, + 0.11634756995581738, + 0.8252170630426576, + 0.1014575593026579, + 0.13626373626373625, + 0.33685300207039337, + 0.741834451901566, + 0.4936708860759494, + 0.0036496350364963502, + 0.27093358999037537 + ], + "confusion_matrix": [ + [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + [ + 0, + 14689, + 108, + 56, + 1, + 12, + 31, + 0, + 534, + 0, + 0, + 228, + 68, + 2, + 722, + 14, + 312, + 0, + 3, + 0 + ], + [ + 0, + 148, + 11758, + 135, + 45, + 16, + 40, + 1, + 0, + 15, + 8, + 192, + 10, + 1, + 85, + 0, + 18, + 1, + 4, + 0 + ], + [ + 0, + 149, + 130, + 12490, + 9, + 9, + 2, + 181, + 0, + 33, + 1, + 0, + 0, + 2, + 148, + 169, + 24, + 9, + 512, + 0 + ], + [ + 0, + 43, + 824, + 41, + 897, + 49, + 0, + 0, + 0, + 0, + 111, + 0, + 20, + 2, + 0, + 1, + 0, + 59, + 0, + 0 + ], + [ + 0, + 98, + 2, + 31, + 0, + 5538, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 19, + 4, + 0, + 97, + 0, + 0 + ], + [ + 0, + 78, + 63, + 12, + 19, + 0, + 1268, + 133, + 241, + 0, + 22, + 299, + 0, + 0, + 96, + 0, + 6, + 171, + 0, + 0 + ], + [ + 0, + 13, + 0, + 13, + 0, + 0, + 4, + 4359, + 326, + 32, + 0, + 26, + 583, + 0, + 3, + 0, + 19, + 0, + 1, + 0 + ], + [ + 0, + 24, + 0, + 0, + 0, + 0, + 0, + 0, + 6556, + 0, + 0, + 14, + 0, + 0, + 1, + 0, + 3, + 0, + 0, + 0 + ], + [ + 0, + 0, + 19, + 45, + 2, + 0, + 0, + 9, + 0, + 2086, + 0, + 0, + 0, + 0, + 5, + 0, + 0, + 0, + 0, + 0 + ], + [ + 0, + 50, + 929, + 2, + 28, + 0, + 1, + 0, + 0, + 0, + 158, + 0, + 0, + 0, + 5, + 0, + 27, + 2, + 0, + 0 + ], + [ + 0, + 7, + 1, + 0, + 69, + 0, + 13, + 5, + 10, + 0, + 0, + 6558, + 0, + 0, + 13, + 0, + 61, + 0, + 5, + 0 + ], + [ + 0, + 104, + 15, + 288, + 0, + 0, + 0, + 764, + 445, + 3156, + 5, + 243, + 710, + 107, + 53, + 106, + 13, + 10, + 27, + 0 + ], + [ + 0, + 3, + 41, + 101, + 2, + 0, + 0, + 210, + 15, + 38, + 1, + 50, + 185, + 124, + 18, + 1, + 7, + 0, + 0, + 0 + ], + [ + 0, + 1010, + 14, + 38, + 0, + 0, + 4, + 36, + 409, + 0, + 0, + 92, + 0, + 0, + 1627, + 0, + 274, + 0, + 0, + 0 + ], + [ + 0, + 35, + 6, + 154, + 3, + 5, + 0, + 0, + 0, + 47, + 0, + 0, + 0, + 0, + 1, + 1658, + 0, + 0, + 0, + 0 + ], + [ + 0, + 39, + 0, + 20, + 0, + 0, + 0, + 18, + 831, + 0, + 0, + 26, + 0, + 0, + 62, + 0, + 1833, + 0, + 0, + 0 + ], + [ + 0, + 176, + 504, + 135, + 101, + 284, + 0, + 0, + 0, + 72, + 8, + 0, + 0, + 0, + 0, + 0, + 9, + 6, + 0, + 0 + ], + [ + 0, + 27, + 0, + 390, + 0, + 0, + 0, + 169, + 19, + 0, + 0, + 35, + 86, + 0, + 95, + 31, + 111, + 0, + 563, + 0 + ], + [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ] + ] + } + }, + { + "mode": "add", + "alpha": 0.5, + "metrics": { + "miou": 0.4310982473091249, + "oa": 0.749177922258759, + "macro_f1": 0.5367979591251394, + "kappa": 0.7207019891783092, + "per_class_iou": [ + 0.7751060061188342, + 0.75208319875977, + 0.7547111523015138, + 0.11947791164658635, + 0.9360691877225708, + 0.3195219123505976, + 0.586585196500486, + 0.7015229515229515, + 0.3493024037653387, + 0.0461441213653603, + 0.7766172106824926, + 0.06092037983929876, + 0.03329223181257707, + 0.294298605414274, + 0.5857205817540767, + 0.43868153174987884, + 0.007853403141361256, + 0.22186046511627908 + ], + "confusion_matrix": [ + [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + [ + 0, + 14441, + 103, + 128, + 5, + 7, + 41, + 2, + 623, + 0, + 3, + 355, + 46, + 3, + 700, + 22, + 298, + 1, + 2, + 0 + ], + [ + 0, + 126, + 11643, + 233, + 95, + 15, + 26, + 0, + 0, + 12, + 6, + 207, + 2, + 0, + 74, + 0, + 31, + 6, + 1, + 0 + ], + [ + 0, + 168, + 224, + 12215, + 58, + 7, + 0, + 195, + 2, + 24, + 4, + 1, + 0, + 4, + 169, + 181, + 30, + 0, + 586, + 0 + ], + [ + 0, + 47, + 1317, + 63, + 357, + 21, + 0, + 0, + 0, + 32, + 147, + 0, + 22, + 0, + 21, + 0, + 0, + 19, + 1, + 0 + ], + [ + 0, + 88, + 1, + 39, + 13, + 5520, + 0, + 0, + 0, + 31, + 6, + 0, + 0, + 0, + 21, + 0, + 1, + 69, + 0, + 0 + ], + [ + 0, + 65, + 43, + 54, + 222, + 0, + 802, + 202, + 208, + 0, + 209, + 358, + 0, + 0, + 103, + 0, + 22, + 120, + 0, + 0 + ], + [ + 0, + 10, + 0, + 29, + 9, + 0, + 3, + 4224, + 242, + 102, + 0, + 42, + 516, + 0, + 12, + 0, + 186, + 0, + 4, + 0 + ], + [ + 0, + 18, + 0, + 0, + 0, + 0, + 0, + 0, + 6541, + 0, + 0, + 26, + 0, + 0, + 7, + 0, + 6, + 0, + 0, + 0 + ], + [ + 0, + 0, + 17, + 54, + 7, + 3, + 0, + 6, + 0, + 2078, + 0, + 0, + 0, + 0, + 1, + 0, + 0, + 0, + 0, + 0 + ], + [ + 0, + 83, + 952, + 21, + 49, + 0, + 0, + 0, + 0, + 0, + 73, + 0, + 0, + 0, + 7, + 3, + 14, + 0, + 0, + 0 + ], + [ + 0, + 26, + 2, + 0, + 38, + 0, + 27, + 14, + 14, + 0, + 0, + 6543, + 0, + 0, + 22, + 0, + 54, + 0, + 2, + 0 + ], + [ + 0, + 67, + 10, + 434, + 35, + 0, + 0, + 937, + 363, + 3184, + 3, + 369, + 417, + 8, + 37, + 127, + 14, + 17, + 24, + 0 + ], + [ + 0, + 5, + 22, + 114, + 18, + 0, + 0, + 248, + 17, + 88, + 2, + 36, + 165, + 27, + 36, + 6, + 8, + 0, + 4, + 0 + ], + [ + 0, + 955, + 12, + 34, + 0, + 0, + 5, + 33, + 437, + 14, + 0, + 167, + 0, + 0, + 1435, + 0, + 412, + 0, + 0, + 0 + ], + [ + 0, + 37, + 2, + 471, + 2, + 6, + 0, + 0, + 0, + 56, + 0, + 0, + 0, + 0, + 5, + 1329, + 0, + 1, + 0, + 0 + ], + [ + 0, + 33, + 0, + 25, + 0, + 0, + 0, + 30, + 771, + 1, + 0, + 56, + 0, + 0, + 103, + 0, + 1810, + 0, + 0, + 0 + ], + [ + 0, + 80, + 295, + 230, + 390, + 49, + 0, + 0, + 0, + 238, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 12, + 0, + 0 + ], + [ + 0, + 43, + 4, + 388, + 0, + 0, + 0, + 155, + 49, + 1, + 0, + 66, + 48, + 0, + 54, + 21, + 220, + 0, + 477, + 0 + ], + [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ] + ] + } + }, + { + "mode": "replace", + "alpha": 0.1, + "metrics": { + "miou": 0.5167921102592491, + "oa": 0.7871059650175126, + "macro_f1": 0.6306392634403148, + "kappa": 0.7635368741626501, + "per_class_iou": [ + 0.7829122694808656, + 0.8065155033465373, + 0.8002691790040377, + 0.54, + 0.900355871886121, + 0.5631105900742478, + 0.6191479753123589, + 0.6917483401833702, + 0.3872053872053872, + 0.14882032667876588, + 0.8457364341085272, + 0.19236130471145804, + 0.11154219204655674, + 0.3314707643184993, + 0.8297373358348968, + 0.5075177304964539, + 0.01852995676343422, + 0.22527682321496756 + ], + "confusion_matrix": [ + [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + [ + 0, + 14689, + 122, + 53, + 56, + 14, + 48, + 3, + 502, + 0, + 3, + 214, + 85, + 3, + 716, + 19, + 245, + 5, + 3, + 0 + ], + [ + 0, + 104, + 11809, + 91, + 14, + 14, + 51, + 3, + 0, + 16, + 46, + 188, + 20, + 5, + 95, + 0, + 9, + 4, + 8, + 0 + ], + [ + 0, + 171, + 119, + 11892, + 21, + 11, + 3, + 208, + 1, + 33, + 0, + 0, + 2, + 6, + 203, + 126, + 38, + 1, + 1033, + 0 + ], + [ + 0, + 29, + 387, + 37, + 1215, + 42, + 5, + 0, + 0, + 0, + 278, + 0, + 15, + 3, + 0, + 0, + 20, + 13, + 3, + 0 + ], + [ + 0, + 72, + 6, + 26, + 0, + 5566, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 19, + 8, + 0, + 92, + 0, + 0 + ], + [ + 0, + 61, + 70, + 4, + 21, + 0, + 1441, + 37, + 237, + 0, + 2, + 266, + 0, + 0, + 85, + 0, + 5, + 179, + 0, + 0 + ], + [ + 0, + 5, + 1, + 8, + 0, + 0, + 13, + 4113, + 312, + 114, + 0, + 13, + 708, + 0, + 66, + 1, + 9, + 0, + 16, + 0 + ], + [ + 0, + 19, + 0, + 0, + 0, + 0, + 0, + 0, + 6564, + 0, + 0, + 13, + 0, + 0, + 0, + 0, + 2, + 0, + 0, + 0 + ], + [ + 0, + 2, + 21, + 8, + 0, + 0, + 0, + 21, + 0, + 2070, + 0, + 0, + 22, + 19, + 3, + 0, + 0, + 0, + 0, + 0 + ], + [ + 0, + 27, + 880, + 0, + 4, + 0, + 1, + 0, + 0, + 5, + 246, + 0, + 0, + 0, + 5, + 0, + 32, + 2, + 0, + 0 + ], + [ + 0, + 8, + 2, + 0, + 64, + 0, + 18, + 4, + 11, + 0, + 0, + 6546, + 0, + 0, + 16, + 0, + 65, + 0, + 8, + 0 + ], + [ + 0, + 115, + 17, + 147, + 1, + 5, + 2, + 476, + 490, + 2892, + 0, + 123, + 1380, + 199, + 144, + 13, + 10, + 12, + 20, + 0 + ], + [ + 0, + 2, + 45, + 52, + 0, + 2, + 0, + 204, + 7, + 40, + 1, + 97, + 206, + 115, + 14, + 4, + 5, + 0, + 2, + 0 + ], + [ + 0, + 1026, + 18, + 37, + 0, + 3, + 9, + 52, + 436, + 0, + 0, + 68, + 0, + 0, + 1661, + 0, + 178, + 16, + 0, + 0 + ], + [ + 0, + 28, + 8, + 52, + 7, + 6, + 0, + 1, + 0, + 38, + 0, + 0, + 0, + 0, + 0, + 1769, + 0, + 0, + 0, + 0 + ], + [ + 0, + 55, + 0, + 6, + 0, + 0, + 0, + 48, + 895, + 0, + 0, + 7, + 0, + 0, + 29, + 0, + 1789, + 0, + 0, + 0 + ], + [ + 0, + 243, + 469, + 46, + 15, + 296, + 0, + 0, + 0, + 42, + 121, + 0, + 0, + 0, + 0, + 4, + 29, + 30, + 0, + 0 + ], + [ + 0, + 15, + 0, + 425, + 0, + 0, + 1, + 207, + 0, + 0, + 0, + 9, + 70, + 0, + 112, + 48, + 49, + 0, + 590, + 0 + ], + [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ] + ] + } + }, + { + "mode": "replace", + "alpha": 0.25, + "metrics": { + "miou": 0.5016742412669202, + "oa": 0.7813005430533092, + "macro_f1": 0.6153761747668886, + "kappa": 0.7569062589365165, + "per_class_iou": [ + 0.7812533361802071, + 0.7981217485305047, + 0.7926370653823316, + 0.47381864623243936, + 0.9033674963396779, + 0.5164486722156163, + 0.6169313711205012, + 0.6956429555814693, + 0.377467850027169, + 0.14209827357237717, + 0.8248211820805622, + 0.14608646510313647, + 0.10083160083160084, + 0.336105476673428, + 0.7946302402260952, + 0.5029174770769658, + 0.005628517823639775, + 0.22132796780684105 + ], + "confusion_matrix": [ + [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + [ + 0, + 14636, + 120, + 58, + 33, + 14, + 49, + 1, + 531, + 0, + 3, + 243, + 77, + 3, + 729, + 17, + 261, + 4, + 1, + 0 + ], + [ + 0, + 106, + 11813, + 122, + 31, + 14, + 40, + 2, + 0, + 16, + 18, + 192, + 10, + 2, + 87, + 0, + 14, + 4, + 6, + 0 + ], + [ + 0, + 160, + 112, + 12014, + 20, + 9, + 2, + 235, + 0, + 32, + 0, + 0, + 0, + 3, + 200, + 136, + 27, + 3, + 915, + 0 + ], + [ + 0, + 46, + 564, + 42, + 1113, + 42, + 1, + 0, + 0, + 0, + 203, + 0, + 17, + 0, + 0, + 0, + 8, + 8, + 3, + 0 + ], + [ + 0, + 90, + 6, + 27, + 0, + 5553, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 19, + 8, + 0, + 86, + 0, + 0 + ], + [ + 0, + 57, + 68, + 12, + 36, + 0, + 1303, + 74, + 253, + 0, + 7, + 318, + 0, + 0, + 98, + 0, + 6, + 176, + 0, + 0 + ], + [ + 0, + 6, + 0, + 10, + 0, + 0, + 3, + 4234, + 265, + 97, + 0, + 27, + 682, + 0, + 32, + 0, + 17, + 0, + 6, + 0 + ], + [ + 0, + 16, + 0, + 0, + 0, + 0, + 0, + 0, + 6562, + 0, + 0, + 18, + 0, + 0, + 0, + 0, + 2, + 0, + 0, + 0 + ], + [ + 0, + 0, + 20, + 45, + 1, + 0, + 0, + 11, + 0, + 2084, + 0, + 0, + 1, + 1, + 3, + 0, + 0, + 0, + 0, + 0 + ], + [ + 0, + 30, + 899, + 4, + 13, + 0, + 1, + 0, + 0, + 1, + 214, + 0, + 0, + 0, + 5, + 1, + 33, + 1, + 0, + 0 + ], + [ + 0, + 6, + 3, + 0, + 55, + 0, + 13, + 2, + 10, + 0, + 0, + 6573, + 0, + 0, + 13, + 0, + 60, + 0, + 7, + 0 + ], + [ + 0, + 112, + 15, + 192, + 5, + 2, + 0, + 632, + 490, + 3061, + 0, + 207, + 1034, + 157, + 92, + 8, + 9, + 10, + 20, + 0 + ], + [ + 0, + 2, + 45, + 75, + 4, + 0, + 0, + 232, + 12, + 39, + 1, + 84, + 185, + 97, + 9, + 4, + 6, + 0, + 1, + 0 + ], + [ + 0, + 1018, + 15, + 38, + 0, + 2, + 6, + 41, + 411, + 0, + 0, + 89, + 0, + 0, + 1657, + 0, + 215, + 12, + 0, + 0 + ], + [ + 0, + 29, + 8, + 134, + 6, + 6, + 0, + 1, + 0, + 38, + 0, + 0, + 0, + 0, + 0, + 1687, + 0, + 0, + 0, + 0 + ], + [ + 0, + 50, + 0, + 8, + 0, + 0, + 0, + 45, + 857, + 0, + 0, + 20, + 0, + 0, + 39, + 0, + 1810, + 0, + 0, + 0 + ], + [ + 0, + 209, + 449, + 91, + 98, + 269, + 0, + 0, + 0, + 71, + 72, + 0, + 0, + 0, + 0, + 1, + 26, + 9, + 0, + 0 + ], + [ + 0, + 17, + 0, + 431, + 0, + 0, + 0, + 208, + 6, + 0, + 0, + 29, + 60, + 0, + 100, + 39, + 86, + 0, + 550, + 0 + ], + [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ] + ] + } + }, + { + "mode": "replace", + "alpha": 0.5, + "metrics": { + "miou": 0.4360680383987605, + "oa": 0.7498527222287679, + "macro_f1": 0.5433641250986441, + "kappa": 0.7216336968631941, + "per_class_iou": [ + 0.7771201033146793, + 0.7577035355173533, + 0.745483991528591, + 0.12956810631229235, + 0.9428669175504618, + 0.3272583201267829, + 0.5822418309664966, + 0.7033616152937386, + 0.3473103909121283, + 0.07530864197530865, + 0.7780548628428927, + 0.07368268674001158, + 0.039568345323741004, + 0.3114754098360656, + 0.6065795403334836, + 0.448779260005034, + 0.005917159763313609, + 0.1969439728353141 + ], + "confusion_matrix": [ + [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + [ + 0, + 14442, + 113, + 125, + 2, + 9, + 52, + 2, + 620, + 1, + 3, + 357, + 49, + 3, + 695, + 26, + 278, + 2, + 1, + 0 + ], + [ + 0, + 105, + 11680, + 231, + 70, + 15, + 21, + 0, + 0, + 15, + 8, + 201, + 2, + 1, + 91, + 0, + 26, + 9, + 2, + 0 + ], + [ + 0, + 152, + 241, + 11968, + 61, + 7, + 1, + 231, + 2, + 23, + 6, + 1, + 0, + 6, + 196, + 162, + 28, + 0, + 783, + 0 + ], + [ + 0, + 49, + 1243, + 69, + 390, + 11, + 0, + 0, + 0, + 34, + 205, + 0, + 21, + 0, + 9, + 0, + 0, + 14, + 2, + 0 + ], + [ + 0, + 101, + 2, + 38, + 10, + 5512, + 0, + 0, + 0, + 44, + 5, + 0, + 0, + 0, + 21, + 2, + 0, + 54, + 0, + 0 + ], + [ + 0, + 57, + 54, + 40, + 243, + 0, + 826, + 176, + 210, + 0, + 191, + 362, + 0, + 0, + 105, + 0, + 18, + 126, + 0, + 0 + ], + [ + 0, + 8, + 0, + 15, + 11, + 0, + 3, + 4223, + 200, + 133, + 0, + 42, + 595, + 0, + 12, + 0, + 133, + 0, + 4, + 0 + ], + [ + 0, + 13, + 0, + 0, + 0, + 0, + 0, + 0, + 6549, + 0, + 0, + 24, + 0, + 0, + 4, + 0, + 8, + 0, + 0, + 0 + ], + [ + 0, + 0, + 18, + 54, + 8, + 2, + 0, + 5, + 0, + 2079, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + [ + 0, + 49, + 940, + 15, + 43, + 0, + 0, + 0, + 0, + 0, + 122, + 0, + 0, + 0, + 8, + 3, + 22, + 0, + 0, + 0 + ], + [ + 0, + 37, + 3, + 0, + 23, + 0, + 32, + 13, + 10, + 0, + 0, + 6552, + 0, + 0, + 17, + 0, + 53, + 0, + 2, + 0 + ], + [ + 0, + 84, + 11, + 359, + 35, + 0, + 0, + 919, + 381, + 3161, + 0, + 357, + 509, + 28, + 45, + 93, + 11, + 21, + 32, + 0 + ], + [ + 0, + 3, + 26, + 105, + 17, + 0, + 0, + 264, + 16, + 73, + 0, + 51, + 162, + 33, + 30, + 4, + 8, + 0, + 4, + 0 + ], + [ + 0, + 936, + 12, + 34, + 0, + 0, + 7, + 35, + 418, + 20, + 0, + 168, + 0, + 0, + 1520, + 0, + 354, + 0, + 0, + 0 + ], + [ + 0, + 35, + 2, + 465, + 2, + 5, + 0, + 0, + 0, + 50, + 0, + 0, + 0, + 0, + 4, + 1346, + 0, + 0, + 0, + 0 + ], + [ + 0, + 35, + 0, + 23, + 0, + 0, + 0, + 44, + 811, + 2, + 0, + 47, + 0, + 0, + 84, + 0, + 1783, + 0, + 0, + 0 + ], + [ + 0, + 99, + 269, + 203, + 438, + 8, + 0, + 0, + 0, + 263, + 0, + 0, + 0, + 0, + 0, + 0, + 6, + 9, + 0, + 0 + ], + [ + 0, + 41, + 4, + 410, + 0, + 0, + 0, + 185, + 45, + 1, + 0, + 69, + 33, + 0, + 55, + 20, + 199, + 0, + 464, + 0 + ], + [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ] + ] + } + } + ], + "reference_val_miou": 0.5256398451814701, + "delta_val_pp": 0.0, + "patch_bootstrap_delta_interval_pp": [ + 0.0, + 0.0 + ], + "bootstrap_caveat": "descriptive, after validation selection; not an independent significance test", + "selection_split": "validation", + "test_used_for_selection": false + }, + "test_policy": "exploratory all-variants sweep explicitly requested by user; no test retuning", + "patches": 482 + }, + { + "kind": "temporal_cnv1_k7", + "metrics": { + "miou": 0.49455547330691263, + "oa": 0.8109266736579659, + "macro_f1": 0.6234136021853756, + "kappa": 0.7642966739749818, + "per_class_iou": [ + 0.8061330522981268, + 0.7198486670090578, + 0.8757351877577422, + 0.46213693236161063, + 0.8703389461776095, + 0.38416520104311963, + 0.4490553274645572, + 0.6216216216216216, + 0.7901944411308601, + 0.07114146695276376, + 0.5587868716244287, + 0.3175281724644782, + 0.4373326486446833, + 0.2655897022970766, + 0.6168043633350977, + 0.28662647573048294, + 0.0918118400487935, + 0.27714760156231727 + ], + "confusion_matrix": [ + [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + [ + 0, + 1311069, + 6756, + 8420, + 815, + 744, + 883, + 2246, + 19285, + 602, + 381, + 3742, + 6998, + 405, + 29504, + 1126, + 71312, + 1029, + 686, + 0 + ], + [ + 0, + 12671, + 493367, + 5115, + 3930, + 1130, + 1764, + 172, + 746, + 546, + 21217, + 15339, + 437, + 131, + 1045, + 166, + 699, + 2161, + 44, + 0 + ], + [ + 0, + 17785, + 2752, + 641744, + 302, + 960, + 172, + 3539, + 862, + 3810, + 169, + 19, + 2132, + 202, + 3012, + 4846, + 607, + 129, + 5247, + 0 + ], + [ + 0, + 9412, + 46049, + 1786, + 82625, + 1310, + 4247, + 55, + 196, + 62, + 7994, + 4414, + 287, + 376, + 482, + 80, + 252, + 3761, + 4, + 0 + ], + [ + 0, + 2675, + 1166, + 868, + 380, + 120018, + 262, + 124, + 19, + 220, + 688, + 194, + 22, + 35, + 1476, + 29, + 106, + 837, + 0, + 0 + ], + [ + 0, + 4040, + 7283, + 711, + 3621, + 289, + 25338, + 175, + 883, + 118, + 2677, + 5012, + 146, + 454, + 1986, + 330, + 163, + 536, + 0, + 0 + ], + [ + 0, + 1538, + 141, + 3611, + 17, + 249, + 89, + 47797, + 7620, + 3775, + 49, + 378, + 1239, + 1298, + 2624, + 9685, + 632, + 168, + 1023, + 0 + ], + [ + 0, + 18456, + 124, + 4622, + 0, + 0, + 17, + 1317, + 151754, + 0, + 1, + 338, + 854, + 23, + 403, + 328, + 9076, + 0, + 164, + 0 + ], + [ + 0, + 482, + 193, + 1058, + 35, + 123, + 379, + 620, + 116, + 66242, + 0, + 28, + 795, + 26, + 446, + 416, + 71, + 2, + 15, + 0 + ], + [ + 0, + 3092, + 44739, + 412, + 1763, + 216, + 156, + 5, + 11, + 5, + 7062, + 21, + 6, + 0, + 299, + 8, + 83, + 484, + 0, + 0 + ], + [ + 0, + 1322, + 2401, + 20, + 0, + 0, + 1773, + 184, + 1235, + 0, + 143, + 60525, + 38, + 0, + 1508, + 0, + 693, + 4, + 114, + 0 + ], + [ + 0, + 3196, + 123, + 4634, + 46, + 7, + 910, + 9697, + 3978, + 1955, + 63, + 3941, + 25923, + 639, + 1593, + 517, + 2180, + 171, + 1142, + 0 + ], + [ + 0, + 589, + 140, + 1406, + 6, + 31, + 92, + 2996, + 519, + 719, + 7, + 314, + 2523, + 11923, + 406, + 408, + 473, + 9, + 52, + 0 + ], + [ + 0, + 57524, + 1032, + 1194, + 723, + 333, + 1050, + 1045, + 7046, + 405, + 646, + 1114, + 551, + 254, + 47497, + 318, + 6554, + 377, + 131, + 0 + ], + [ + 0, + 1525, + 170, + 6485, + 90, + 129, + 5, + 653, + 17, + 376, + 8, + 2255, + 478, + 3, + 400, + 53604, + 52, + 13, + 2053, + 0 + ], + [ + 0, + 12728, + 331, + 778, + 2, + 0, + 34, + 422, + 10506, + 48, + 33, + 1127, + 965, + 73, + 710, + 23, + 49018, + 5, + 56, + 0 + ], + [ + 0, + 8636, + 11253, + 1214, + 3447, + 3258, + 322, + 34, + 20, + 20, + 6827, + 1, + 610, + 689, + 1495, + 80, + 44, + 4817, + 2, + 0 + ], + [ + 0, + 4694, + 43, + 2183, + 220, + 0, + 39, + 1222, + 3590, + 122, + 2, + 118, + 2844, + 42, + 3653, + 230, + 1161, + 11, + 11850, + 0 + ], + [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ] + ] + }, + "baseline": { + "miou": 0.49455547330691263, + "oa": 0.8109266736579659, + "macro_f1": 0.6234136021853756, + "kappa": 0.7642966739749818, + "per_class_iou": [ + 0.8061330522981268, + 0.7198486670090578, + 0.8757351877577422, + 0.46213693236161063, + 0.8703389461776095, + 0.38416520104311963, + 0.4490553274645572, + 0.6216216216216216, + 0.7901944411308601, + 0.07114146695276376, + 0.5587868716244287, + 0.3175281724644782, + 0.4373326486446833, + 0.2655897022970766, + 0.6168043633350977, + 0.28662647573048294, + 0.0918118400487935, + 0.27714760156231727 + ], + "confusion_matrix": [ + [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + [ + 0, + 1311069, + 6756, + 8420, + 815, + 744, + 883, + 2246, + 19285, + 602, + 381, + 3742, + 6998, + 405, + 29504, + 1126, + 71312, + 1029, + 686, + 0 + ], + [ + 0, + 12671, + 493367, + 5115, + 3930, + 1130, + 1764, + 172, + 746, + 546, + 21217, + 15339, + 437, + 131, + 1045, + 166, + 699, + 2161, + 44, + 0 + ], + [ + 0, + 17785, + 2752, + 641744, + 302, + 960, + 172, + 3539, + 862, + 3810, + 169, + 19, + 2132, + 202, + 3012, + 4846, + 607, + 129, + 5247, + 0 + ], + [ + 0, + 9412, + 46049, + 1786, + 82625, + 1310, + 4247, + 55, + 196, + 62, + 7994, + 4414, + 287, + 376, + 482, + 80, + 252, + 3761, + 4, + 0 + ], + [ + 0, + 2675, + 1166, + 868, + 380, + 120018, + 262, + 124, + 19, + 220, + 688, + 194, + 22, + 35, + 1476, + 29, + 106, + 837, + 0, + 0 + ], + [ + 0, + 4040, + 7283, + 711, + 3621, + 289, + 25338, + 175, + 883, + 118, + 2677, + 5012, + 146, + 454, + 1986, + 330, + 163, + 536, + 0, + 0 + ], + [ + 0, + 1538, + 141, + 3611, + 17, + 249, + 89, + 47797, + 7620, + 3775, + 49, + 378, + 1239, + 1298, + 2624, + 9685, + 632, + 168, + 1023, + 0 + ], + [ + 0, + 18456, + 124, + 4622, + 0, + 0, + 17, + 1317, + 151754, + 0, + 1, + 338, + 854, + 23, + 403, + 328, + 9076, + 0, + 164, + 0 + ], + [ + 0, + 482, + 193, + 1058, + 35, + 123, + 379, + 620, + 116, + 66242, + 0, + 28, + 795, + 26, + 446, + 416, + 71, + 2, + 15, + 0 + ], + [ + 0, + 3092, + 44739, + 412, + 1763, + 216, + 156, + 5, + 11, + 5, + 7062, + 21, + 6, + 0, + 299, + 8, + 83, + 484, + 0, + 0 + ], + [ + 0, + 1322, + 2401, + 20, + 0, + 0, + 1773, + 184, + 1235, + 0, + 143, + 60525, + 38, + 0, + 1508, + 0, + 693, + 4, + 114, + 0 + ], + [ + 0, + 3196, + 123, + 4634, + 46, + 7, + 910, + 9697, + 3978, + 1955, + 63, + 3941, + 25923, + 639, + 1593, + 517, + 2180, + 171, + 1142, + 0 + ], + [ + 0, + 589, + 140, + 1406, + 6, + 31, + 92, + 2996, + 519, + 719, + 7, + 314, + 2523, + 11923, + 406, + 408, + 473, + 9, + 52, + 0 + ], + [ + 0, + 57524, + 1032, + 1194, + 723, + 333, + 1050, + 1045, + 7046, + 405, + 646, + 1114, + 551, + 254, + 47497, + 318, + 6554, + 377, + 131, + 0 + ], + [ + 0, + 1525, + 170, + 6485, + 90, + 129, + 5, + 653, + 17, + 376, + 8, + 2255, + 478, + 3, + 400, + 53604, + 52, + 13, + 2053, + 0 + ], + [ + 0, + 12728, + 331, + 778, + 2, + 0, + 34, + 422, + 10506, + 48, + 33, + 1127, + 965, + 73, + 710, + 23, + 49018, + 5, + 56, + 0 + ], + [ + 0, + 8636, + 11253, + 1214, + 3447, + 3258, + 322, + 34, + 20, + 20, + 6827, + 1, + 610, + 689, + 1495, + 80, + 44, + 4817, + 2, + 0 + ], + [ + 0, + 4694, + 43, + 2183, + 220, + 0, + 39, + 1222, + 3590, + 122, + 2, + 118, + 2844, + 42, + 3653, + 230, + 1161, + 11, + 11850, + 0 + ], + [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ] + ] + }, + "standalone": { + "miou": 0.3069074007532148, + "oa": 0.6761532235628664, + "macro_f1": 0.4260895602520703, + "kappa": 0.5978011999035246, + "per_class_iou": [ + 0.7144823334980683, + 0.5442047937495862, + 0.6095177470203574, + 0.14836951085325598, + 0.6652970922882427, + 0.06362638245454302, + 0.26244854552951985, + 0.4445944546663799, + 0.5569927600211901, + 0.017620084833199587, + 0.3415073147250263, + 0.1864087227877257, + 0.12848353239232718, + 0.14179531160663236, + 0.35610098323577766, + 0.20132484321619323, + 0.018974134151687857, + 0.12258466652815292 + ], + "confusion_matrix": [ + [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + [ + 0, + 1210068, + 17634, + 39728, + 2382, + 2271, + 707, + 3465, + 24717, + 1671, + 1051, + 13468, + 3788, + 957, + 65218, + 2385, + 74826, + 1184, + 483, + 0 + ], + [ + 0, + 29687, + 460271, + 11969, + 10757, + 5515, + 3103, + 333, + 1435, + 383, + 8759, + 13784, + 5993, + 828, + 2332, + 907, + 2046, + 2165, + 413, + 0 + ], + [ + 0, + 45872, + 83083, + 484502, + 1995, + 4046, + 452, + 4099, + 3033, + 8532, + 3153, + 1033, + 6552, + 2899, + 7469, + 13148, + 3253, + 4348, + 10820, + 0 + ], + [ + 0, + 10681, + 86939, + 2029, + 29665, + 5193, + 5449, + 345, + 206, + 61, + 6159, + 7421, + 1245, + 834, + 3173, + 562, + 566, + 2614, + 250, + 0 + ], + [ + 0, + 6569, + 5227, + 1202, + 3858, + 103145, + 169, + 57, + 98, + 747, + 2532, + 572, + 589, + 403, + 2319, + 504, + 415, + 712, + 1, + 0 + ], + [ + 0, + 3978, + 17240, + 1586, + 6323, + 1250, + 4752, + 987, + 812, + 653, + 1795, + 7779, + 264, + 245, + 1777, + 1130, + 741, + 2045, + 405, + 0 + ], + [ + 0, + 2436, + 3090, + 8685, + 220, + 167, + 107, + 36278, + 8531, + 2457, + 745, + 1284, + 5527, + 946, + 5044, + 4083, + 1022, + 278, + 1033, + 0 + ], + [ + 0, + 25504, + 254, + 7742, + 0, + 0, + 36, + 16575, + 111635, + 0, + 18, + 4565, + 3008, + 6, + 2001, + 1525, + 11591, + 1, + 3016, + 0 + ], + [ + 0, + 3485, + 369, + 4474, + 178, + 4185, + 65, + 695, + 616, + 50468, + 391, + 34, + 4286, + 490, + 296, + 322, + 489, + 192, + 12, + 0 + ], + [ + 0, + 5475, + 41615, + 2211, + 3256, + 211, + 216, + 88, + 78, + 4, + 1537, + 1505, + 423, + 26, + 987, + 155, + 212, + 105, + 258, + 0 + ], + [ + 0, + 1486, + 3535, + 94, + 15, + 0, + 8739, + 232, + 2332, + 0, + 55, + 48952, + 1067, + 170, + 641, + 96, + 1520, + 4, + 1022, + 0 + ], + [ + 0, + 3466, + 977, + 5290, + 596, + 392, + 346, + 11965, + 4530, + 1239, + 710, + 4182, + 20071, + 737, + 1880, + 808, + 2397, + 186, + 943, + 0 + ], + [ + 0, + 654, + 667, + 1824, + 621, + 273, + 48, + 1913, + 847, + 924, + 338, + 1968, + 6108, + 4260, + 1166, + 436, + 207, + 215, + 144, + 0 + ], + [ + 0, + 60694, + 1930, + 3394, + 593, + 670, + 994, + 3698, + 6424, + 717, + 185, + 4309, + 1008, + 475, + 33480, + 594, + 8316, + 90, + 223, + 0 + ], + [ + 0, + 4068, + 3103, + 10752, + 123, + 166, + 198, + 3736, + 560, + 1581, + 449, + 1290, + 3819, + 954, + 1141, + 34008, + 471, + 77, + 1820, + 0 + ], + [ + 0, + 12484, + 241, + 1698, + 16, + 2, + 90, + 3832, + 5314, + 147, + 170, + 8752, + 821, + 34, + 5483, + 45, + 37656, + 30, + 44, + 0 + ], + [ + 0, + 8852, + 18657, + 1637, + 5593, + 1571, + 149, + 170, + 31, + 231, + 2318, + 0, + 264, + 230, + 1460, + 438, + 54, + 1082, + 32, + 0 + ], + [ + 0, + 2235, + 527, + 2290, + 22, + 5, + 56, + 4106, + 4053, + 214, + 40, + 1435, + 2195, + 309, + 5934, + 47, + 2056, + 10, + 6490, + 0 + ], + [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ] + ] + }, + "delta_test_pp": 0.0, + "standalone_delta_test_pp": -18.76480725536978, + "seconds": 40.53995610913262, + "validation_selection": { + "kind": "temporal_cnv1_k7", + "seed": 3407, + "checkpoint_epoch": 75, + "standalone": { + "miou": 0.3388080549779667, + "oa": 0.6592688595880507, + "macro_f1": 0.45075580713411373, + "kappa": 0.6207877708949721, + "per_class_iou": [ + 0.7153989059758489, + 0.5676727310968556, + 0.6167668419734536, + 0.0408017179670723, + 0.7538663554128976, + 0.1342629482071713, + 0.5363781200212427, + 0.6086384786566862, + 0.37536199599019826, + 0.0, + 0.5060762844423053, + 0.09577026453529495, + 0.02944507361268403, + 0.26982164930248986, + 0.3654259126700072, + 0.3513394817742644, + 0.0, + 0.13151822796492849 + ], + "confusion_matrix": [ + [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + [ + 0, + 13863, + 178, + 181, + 37, + 37, + 54, + 28, + 747, + 0, + 0, + 284, + 60, + 0, + 804, + 4, + 496, + 6, + 1, + 0 + ], + [ + 0, + 256, + 10796, + 329, + 223, + 153, + 144, + 0, + 0, + 0, + 128, + 185, + 24, + 0, + 90, + 6, + 132, + 10, + 1, + 0 + ], + [ + 0, + 242, + 2338, + 9851, + 28, + 0, + 9, + 209, + 9, + 24, + 18, + 0, + 55, + 0, + 108, + 337, + 301, + 5, + 334, + 0 + ], + [ + 0, + 79, + 1714, + 99, + 114, + 20, + 4, + 2, + 0, + 0, + 4, + 0, + 0, + 0, + 2, + 0, + 0, + 7, + 2, + 0 + ], + [ + 0, + 175, + 185, + 9, + 54, + 5167, + 8, + 0, + 1, + 139, + 3, + 7, + 1, + 1, + 4, + 21, + 14, + 0, + 0, + 0 + ], + [ + 0, + 31, + 47, + 90, + 258, + 4, + 674, + 98, + 664, + 0, + 0, + 68, + 46, + 0, + 145, + 207, + 51, + 17, + 8, + 0 + ], + [ + 0, + 14, + 2, + 52, + 0, + 0, + 5, + 4040, + 288, + 5, + 0, + 146, + 337, + 0, + 231, + 134, + 14, + 0, + 111, + 0 + ], + [ + 0, + 70, + 0, + 0, + 0, + 0, + 9, + 409, + 6017, + 0, + 0, + 57, + 15, + 0, + 14, + 0, + 7, + 0, + 0, + 0 + ], + [ + 0, + 158, + 9, + 128, + 6, + 0, + 29, + 9, + 4, + 1685, + 0, + 0, + 92, + 19, + 22, + 0, + 0, + 5, + 0, + 0 + ], + [ + 0, + 104, + 994, + 13, + 41, + 10, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 18, + 16, + 6, + 0, + 0, + 0 + ], + [ + 0, + 25, + 28, + 2, + 0, + 0, + 2126, + 14, + 46, + 0, + 0, + 4206, + 0, + 9, + 66, + 60, + 159, + 0, + 1, + 0 + ], + [ + 0, + 337, + 160, + 273, + 27, + 730, + 4, + 833, + 213, + 2057, + 71, + 246, + 677, + 58, + 23, + 54, + 121, + 0, + 162, + 0 + ], + [ + 0, + 7, + 21, + 127, + 0, + 0, + 0, + 154, + 143, + 17, + 1, + 0, + 233, + 26, + 55, + 8, + 4, + 0, + 0, + 0 + ], + [ + 0, + 533, + 17, + 20, + 6, + 0, + 182, + 30, + 557, + 3, + 0, + 347, + 0, + 0, + 1528, + 8, + 273, + 0, + 0, + 0 + ], + [ + 0, + 110, + 2, + 592, + 0, + 40, + 4, + 3, + 0, + 68, + 0, + 0, + 0, + 0, + 51, + 1021, + 0, + 0, + 18, + 0 + ], + [ + 0, + 35, + 4, + 13, + 0, + 0, + 1, + 42, + 507, + 2, + 0, + 203, + 17, + 0, + 402, + 0, + 1600, + 0, + 3, + 0 + ], + [ + 0, + 212, + 833, + 7, + 67, + 71, + 0, + 0, + 0, + 8, + 16, + 0, + 0, + 0, + 81, + 0, + 0, + 0, + 0, + 0 + ], + [ + 0, + 210, + 9, + 169, + 0, + 0, + 33, + 322, + 109, + 0, + 0, + 26, + 143, + 0, + 43, + 30, + 147, + 0, + 285, + 0 + ], + [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ] + ] + }, + "chosen": { + "mode": "add", + "alpha": 0.0, + "metrics": { + "miou": 0.5256398451814701, + "oa": 0.7954606313128608, + "macro_f1": 0.6400266863319044, + "kappa": 0.7725060156424988, + "per_class_iou": [ + 0.7863696632193052, + 0.7940560621411685, + 0.8422681105804802, + 0.5216035634743875, + 0.8953563366655918, + 0.5666403785488959, + 0.6681021224238696, + 0.6854425749817118, + 0.3865969759193579, + 0.15913978494623657, + 0.8521227955584585, + 0.16817463736895016, + 0.15324165029469547, + 0.3526720731960907, + 0.8232323232323232, + 0.5073836723321259, + 0.010297482837528604, + 0.2888170055452865 + ], + "confusion_matrix": [ + [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + [ + 0, + 14827, + 104, + 46, + 8, + 16, + 20, + 1, + 480, + 0, + 3, + 211, + 80, + 3, + 659, + 16, + 296, + 4, + 6, + 0 + ], + [ + 0, + 160, + 11756, + 93, + 27, + 17, + 59, + 3, + 0, + 18, + 25, + 184, + 13, + 1, + 99, + 0, + 10, + 4, + 8, + 0 + ], + [ + 0, + 165, + 132, + 12522, + 19, + 10, + 2, + 144, + 0, + 31, + 1, + 0, + 2, + 6, + 113, + 137, + 34, + 11, + 539, + 0 + ], + [ + 0, + 23, + 477, + 28, + 1171, + 50, + 1, + 0, + 0, + 0, + 130, + 0, + 18, + 10, + 0, + 2, + 6, + 128, + 3, + 0 + ], + [ + 0, + 83, + 1, + 23, + 0, + 5553, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 19, + 8, + 1, + 101, + 0, + 0 + ], + [ + 0, + 96, + 76, + 5, + 7, + 0, + 1437, + 49, + 253, + 0, + 0, + 217, + 0, + 0, + 77, + 0, + 5, + 186, + 0, + 0 + ], + [ + 0, + 7, + 0, + 14, + 0, + 0, + 10, + 4344, + 415, + 65, + 0, + 10, + 472, + 0, + 33, + 1, + 4, + 0, + 4, + 0 + ], + [ + 0, + 29, + 0, + 0, + 0, + 0, + 0, + 0, + 6559, + 0, + 0, + 9, + 0, + 0, + 0, + 0, + 1, + 0, + 0, + 0 + ], + [ + 0, + 6, + 20, + 6, + 0, + 1, + 0, + 26, + 0, + 2071, + 0, + 0, + 16, + 14, + 5, + 1, + 0, + 0, + 0, + 0 + ], + [ + 0, + 34, + 886, + 0, + 14, + 0, + 2, + 0, + 0, + 5, + 222, + 0, + 0, + 0, + 5, + 0, + 30, + 4, + 0, + 0 + ], + [ + 0, + 17, + 0, + 0, + 91, + 0, + 14, + 5, + 10, + 0, + 0, + 6523, + 0, + 0, + 13, + 0, + 63, + 0, + 6, + 0 + ], + [ + 0, + 107, + 18, + 205, + 0, + 3, + 10, + 473, + 524, + 2954, + 6, + 129, + 1171, + 188, + 120, + 47, + 11, + 8, + 72, + 0 + ], + [ + 0, + 1, + 44, + 53, + 0, + 0, + 0, + 189, + 8, + 36, + 1, + 71, + 216, + 156, + 12, + 2, + 7, + 0, + 0, + 0 + ], + [ + 0, + 1027, + 18, + 38, + 0, + 0, + 10, + 43, + 402, + 0, + 0, + 58, + 0, + 0, + 1696, + 0, + 205, + 7, + 0, + 0 + ], + [ + 0, + 28, + 6, + 32, + 4, + 6, + 0, + 0, + 0, + 40, + 0, + 0, + 0, + 0, + 0, + 1793, + 0, + 0, + 0, + 0 + ], + [ + 0, + 51, + 0, + 8, + 0, + 0, + 0, + 19, + 875, + 0, + 0, + 14, + 0, + 0, + 41, + 0, + 1821, + 0, + 0, + 0 + ], + [ + 0, + 230, + 546, + 75, + 28, + 310, + 0, + 0, + 0, + 42, + 27, + 0, + 0, + 0, + 0, + 4, + 15, + 18, + 0, + 0 + ], + [ + 0, + 11, + 0, + 373, + 0, + 0, + 0, + 171, + 4, + 0, + 0, + 10, + 100, + 0, + 109, + 51, + 72, + 0, + 625, + 0 + ], + [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ] + ] + } + }, + "records": [ + { + "mode": "add", + "alpha": 0.0, + "metrics": { + "miou": 0.5256398451814701, + "oa": 0.7954606313128608, + "macro_f1": 0.6400266863319044, + "kappa": 0.7725060156424988, + "per_class_iou": [ + 0.7863696632193052, + 0.7940560621411685, + 0.8422681105804802, + 0.5216035634743875, + 0.8953563366655918, + 0.5666403785488959, + 0.6681021224238696, + 0.6854425749817118, + 0.3865969759193579, + 0.15913978494623657, + 0.8521227955584585, + 0.16817463736895016, + 0.15324165029469547, + 0.3526720731960907, + 0.8232323232323232, + 0.5073836723321259, + 0.010297482837528604, + 0.2888170055452865 + ], + "confusion_matrix": [ + [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + [ + 0, + 14827, + 104, + 46, + 8, + 16, + 20, + 1, + 480, + 0, + 3, + 211, + 80, + 3, + 659, + 16, + 296, + 4, + 6, + 0 + ], + [ + 0, + 160, + 11756, + 93, + 27, + 17, + 59, + 3, + 0, + 18, + 25, + 184, + 13, + 1, + 99, + 0, + 10, + 4, + 8, + 0 + ], + [ + 0, + 165, + 132, + 12522, + 19, + 10, + 2, + 144, + 0, + 31, + 1, + 0, + 2, + 6, + 113, + 137, + 34, + 11, + 539, + 0 + ], + [ + 0, + 23, + 477, + 28, + 1171, + 50, + 1, + 0, + 0, + 0, + 130, + 0, + 18, + 10, + 0, + 2, + 6, + 128, + 3, + 0 + ], + [ + 0, + 83, + 1, + 23, + 0, + 5553, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 19, + 8, + 1, + 101, + 0, + 0 + ], + [ + 0, + 96, + 76, + 5, + 7, + 0, + 1437, + 49, + 253, + 0, + 0, + 217, + 0, + 0, + 77, + 0, + 5, + 186, + 0, + 0 + ], + [ + 0, + 7, + 0, + 14, + 0, + 0, + 10, + 4344, + 415, + 65, + 0, + 10, + 472, + 0, + 33, + 1, + 4, + 0, + 4, + 0 + ], + [ + 0, + 29, + 0, + 0, + 0, + 0, + 0, + 0, + 6559, + 0, + 0, + 9, + 0, + 0, + 0, + 0, + 1, + 0, + 0, + 0 + ], + [ + 0, + 6, + 20, + 6, + 0, + 1, + 0, + 26, + 0, + 2071, + 0, + 0, + 16, + 14, + 5, + 1, + 0, + 0, + 0, + 0 + ], + [ + 0, + 34, + 886, + 0, + 14, + 0, + 2, + 0, + 0, + 5, + 222, + 0, + 0, + 0, + 5, + 0, + 30, + 4, + 0, + 0 + ], + [ + 0, + 17, + 0, + 0, + 91, + 0, + 14, + 5, + 10, + 0, + 0, + 6523, + 0, + 0, + 13, + 0, + 63, + 0, + 6, + 0 + ], + [ + 0, + 107, + 18, + 205, + 0, + 3, + 10, + 473, + 524, + 2954, + 6, + 129, + 1171, + 188, + 120, + 47, + 11, + 8, + 72, + 0 + ], + [ + 0, + 1, + 44, + 53, + 0, + 0, + 0, + 189, + 8, + 36, + 1, + 71, + 216, + 156, + 12, + 2, + 7, + 0, + 0, + 0 + ], + [ + 0, + 1027, + 18, + 38, + 0, + 0, + 10, + 43, + 402, + 0, + 0, + 58, + 0, + 0, + 1696, + 0, + 205, + 7, + 0, + 0 + ], + [ + 0, + 28, + 6, + 32, + 4, + 6, + 0, + 0, + 0, + 40, + 0, + 0, + 0, + 0, + 0, + 1793, + 0, + 0, + 0, + 0 + ], + [ + 0, + 51, + 0, + 8, + 0, + 0, + 0, + 19, + 875, + 0, + 0, + 14, + 0, + 0, + 41, + 0, + 1821, + 0, + 0, + 0 + ], + [ + 0, + 230, + 546, + 75, + 28, + 310, + 0, + 0, + 0, + 42, + 27, + 0, + 0, + 0, + 0, + 4, + 15, + 18, + 0, + 0 + ], + [ + 0, + 11, + 0, + 373, + 0, + 0, + 0, + 171, + 4, + 0, + 0, + 10, + 100, + 0, + 109, + 51, + 72, + 0, + 625, + 0 + ], + [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ] + ] + } + }, + { + "mode": "add", + "alpha": 0.1, + "metrics": { + "miou": 0.5190025513215529, + "oa": 0.7926864536583799, + "macro_f1": 0.6331493336475037, + "kappa": 0.7692904675369805, + "per_class_iou": [ + 0.7874299015977145, + 0.7813498402555911, + 0.8433872374689659, + 0.49797205948625506, + 0.8972159274846229, + 0.5549407114624506, + 0.6586763153927333, + 0.6821729628473306, + 0.3801470588235294, + 0.14754098360655737, + 0.8506722360005221, + 0.13810888252148998, + 0.147117296222664, + 0.36004273504273504, + 0.7983834755276156, + 0.5123439667128987, + 0.00650887573964497, + 0.29803545759463346 + ], + "confusion_matrix": [ + [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + [ + 0, + 14884, + 102, + 48, + 5, + 11, + 18, + 0, + 503, + 0, + 3, + 204, + 76, + 2, + 602, + 15, + 299, + 3, + 5, + 0 + ], + [ + 0, + 175, + 11739, + 94, + 21, + 17, + 59, + 2, + 0, + 16, + 33, + 185, + 14, + 1, + 97, + 0, + 14, + 3, + 7, + 0 + ], + [ + 0, + 152, + 142, + 12569, + 13, + 8, + 2, + 169, + 0, + 32, + 2, + 0, + 1, + 5, + 70, + 179, + 34, + 7, + 483, + 0 + ], + [ + 0, + 26, + 622, + 36, + 1105, + 51, + 0, + 0, + 0, + 0, + 79, + 0, + 18, + 10, + 0, + 2, + 5, + 91, + 2, + 0 + ], + [ + 0, + 93, + 13, + 23, + 0, + 5543, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 19, + 8, + 0, + 90, + 0, + 0 + ], + [ + 0, + 91, + 62, + 6, + 7, + 0, + 1404, + 79, + 290, + 0, + 0, + 198, + 0, + 0, + 80, + 0, + 5, + 186, + 0, + 0 + ], + [ + 0, + 11, + 0, + 17, + 0, + 0, + 9, + 4369, + 412, + 44, + 0, + 15, + 481, + 0, + 17, + 1, + 2, + 0, + 1, + 0 + ], + [ + 0, + 34, + 0, + 0, + 0, + 0, + 0, + 0, + 6555, + 0, + 0, + 8, + 0, + 0, + 0, + 0, + 1, + 0, + 0, + 0 + ], + [ + 0, + 4, + 20, + 8, + 0, + 1, + 0, + 22, + 0, + 2068, + 0, + 0, + 18, + 12, + 11, + 2, + 0, + 0, + 0, + 0 + ], + [ + 0, + 40, + 913, + 0, + 11, + 0, + 0, + 0, + 0, + 4, + 198, + 0, + 0, + 0, + 5, + 0, + 29, + 2, + 0, + 0 + ], + [ + 0, + 16, + 0, + 0, + 91, + 0, + 18, + 5, + 10, + 0, + 0, + 6517, + 0, + 0, + 13, + 0, + 67, + 0, + 5, + 0 + ], + [ + 0, + 122, + 18, + 228, + 0, + 1, + 8, + 551, + 508, + 3068, + 6, + 151, + 964, + 180, + 102, + 61, + 13, + 7, + 58, + 0 + ], + [ + 0, + 1, + 45, + 60, + 0, + 0, + 0, + 204, + 13, + 26, + 1, + 66, + 213, + 148, + 10, + 2, + 7, + 0, + 0, + 0 + ], + [ + 0, + 1011, + 17, + 37, + 0, + 0, + 8, + 40, + 428, + 0, + 0, + 59, + 0, + 0, + 1685, + 0, + 213, + 6, + 0, + 0 + ], + [ + 0, + 29, + 6, + 48, + 4, + 4, + 0, + 0, + 0, + 40, + 0, + 0, + 0, + 0, + 0, + 1778, + 0, + 0, + 0, + 0 + ], + [ + 0, + 52, + 0, + 8, + 0, + 0, + 0, + 15, + 840, + 0, + 0, + 20, + 0, + 0, + 47, + 0, + 1847, + 0, + 0, + 0 + ], + [ + 0, + 240, + 587, + 68, + 20, + 296, + 0, + 0, + 0, + 44, + 16, + 0, + 0, + 0, + 0, + 3, + 10, + 11, + 0, + 0 + ], + [ + 0, + 25, + 0, + 354, + 0, + 0, + 0, + 167, + 7, + 0, + 0, + 13, + 113, + 0, + 103, + 45, + 77, + 0, + 622, + 0 + ], + [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ] + ] + } + }, + { + "mode": "add", + "alpha": 0.25, + "metrics": { + "miou": 0.4935752270645599, + "oa": 0.7824894763338011, + "macro_f1": 0.6061355461078186, + "kappa": 0.7576164361895923, + "per_class_iou": [ + 0.7824712946381545, + 0.744603629417383, + 0.8342281434347452, + 0.3440909090909091, + 0.8967762943666558, + 0.5203725261932479, + 0.6477607542722451, + 0.672514619883041, + 0.3801470588235294, + 0.07614607614607614, + 0.8442654890245487, + 0.11476817401259301, + 0.11318795430944964, + 0.3509229098805646, + 0.7492314448836188, + 0.50382096069869, + 0.0013149243918474688, + 0.3077309236947791 + ], + "confusion_matrix": [ + [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + [ + 0, + 14856, + 92, + 55, + 8, + 5, + 12, + 0, + 605, + 0, + 0, + 199, + 71, + 2, + 547, + 14, + 310, + 0, + 4, + 0 + ], + [ + 0, + 187, + 11694, + 117, + 10, + 18, + 65, + 0, + 0, + 12, + 49, + 186, + 16, + 1, + 87, + 0, + 31, + 1, + 3, + 0 + ], + [ + 0, + 145, + 189, + 12586, + 7, + 7, + 2, + 187, + 0, + 30, + 1, + 0, + 1, + 2, + 39, + 218, + 37, + 1, + 416, + 0 + ], + [ + 0, + 43, + 1078, + 54, + 757, + 47, + 0, + 0, + 0, + 0, + 30, + 0, + 10, + 8, + 0, + 3, + 0, + 17, + 0, + 0 + ], + [ + 0, + 103, + 83, + 25, + 19, + 5508, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 19, + 8, + 0, + 24, + 0, + 0 + ], + [ + 0, + 78, + 48, + 21, + 10, + 0, + 1341, + 97, + 398, + 0, + 0, + 148, + 0, + 0, + 84, + 0, + 6, + 177, + 0, + 0 + ], + [ + 0, + 14, + 0, + 21, + 0, + 0, + 6, + 4397, + 389, + 23, + 0, + 30, + 488, + 0, + 8, + 0, + 2, + 0, + 1, + 0 + ], + [ + 0, + 32, + 0, + 0, + 0, + 0, + 1, + 0, + 6555, + 0, + 0, + 8, + 0, + 0, + 0, + 0, + 2, + 0, + 0, + 0 + ], + [ + 0, + 4, + 20, + 21, + 0, + 0, + 6, + 12, + 0, + 2068, + 0, + 0, + 15, + 2, + 15, + 3, + 0, + 0, + 0, + 0 + ], + [ + 0, + 62, + 989, + 0, + 12, + 1, + 0, + 0, + 0, + 3, + 98, + 0, + 0, + 0, + 6, + 1, + 29, + 1, + 0, + 0 + ], + [ + 0, + 16, + 0, + 0, + 59, + 0, + 68, + 2, + 10, + 0, + 0, + 6500, + 0, + 0, + 18, + 0, + 65, + 0, + 4, + 0 + ], + [ + 0, + 153, + 23, + 278, + 0, + 1, + 5, + 699, + 432, + 3085, + 4, + 199, + 802, + 152, + 67, + 83, + 21, + 4, + 38, + 0 + ], + [ + 0, + 2, + 38, + 95, + 0, + 0, + 0, + 190, + 52, + 23, + 0, + 36, + 225, + 109, + 19, + 0, + 7, + 0, + 0, + 0 + ], + [ + 0, + 991, + 16, + 35, + 0, + 0, + 4, + 38, + 456, + 0, + 0, + 115, + 0, + 0, + 1616, + 0, + 232, + 1, + 0, + 0 + ], + [ + 0, + 34, + 6, + 101, + 3, + 4, + 0, + 0, + 0, + 55, + 0, + 0, + 0, + 0, + 0, + 1706, + 0, + 0, + 0, + 0 + ], + [ + 0, + 51, + 0, + 10, + 0, + 0, + 0, + 14, + 789, + 0, + 0, + 20, + 0, + 0, + 99, + 0, + 1846, + 0, + 0, + 0 + ], + [ + 0, + 241, + 646, + 59, + 25, + 270, + 0, + 0, + 0, + 43, + 1, + 0, + 0, + 0, + 0, + 2, + 6, + 2, + 0, + 0 + ], + [ + 0, + 50, + 0, + 327, + 0, + 0, + 0, + 170, + 18, + 0, + 0, + 16, + 116, + 0, + 93, + 36, + 87, + 0, + 613, + 0 + ], + [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ] + ] + } + }, + { + "mode": "add", + "alpha": 0.5, + "metrics": { + "miou": 0.43291494120907553, + "oa": 0.7462645001660222, + "macro_f1": 0.5425354460940128, + "kappa": 0.7170854587652294, + "per_class_iou": [ + 0.7755069791941006, + 0.6734586334094502, + 0.7619539932799173, + 0.12387483926275182, + 0.8899278215223098, + 0.3454828660436137, + 0.629376725265146, + 0.6556703098365587, + 0.3728750923872875, + 0.0022304832713754648, + 0.7618987501578084, + 0.07043863409058437, + 0.07274826789838337, + 0.3341121495327103, + 0.5835777126099707, + 0.46839006910673153, + 0.0, + 0.27094561489465946 + ], + "confusion_matrix": [ + [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + [ + 0, + 14723, + 95, + 63, + 15, + 5, + 21, + 0, + 713, + 0, + 0, + 212, + 56, + 2, + 537, + 9, + 324, + 1, + 4, + 0 + ], + [ + 0, + 203, + 11502, + 152, + 85, + 20, + 64, + 0, + 0, + 7, + 86, + 189, + 19, + 0, + 72, + 1, + 76, + 1, + 0, + 0 + ], + [ + 0, + 187, + 859, + 11792, + 7, + 1, + 3, + 195, + 3, + 26, + 3, + 0, + 3, + 0, + 38, + 270, + 90, + 0, + 391, + 0 + ], + [ + 0, + 58, + 1567, + 86, + 289, + 40, + 0, + 0, + 0, + 0, + 5, + 0, + 2, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + [ + 0, + 121, + 124, + 27, + 54, + 5425, + 1, + 0, + 0, + 0, + 0, + 1, + 0, + 0, + 18, + 9, + 3, + 6, + 0, + 0 + ], + [ + 0, + 65, + 28, + 45, + 53, + 1, + 1109, + 106, + 579, + 0, + 0, + 118, + 9, + 0, + 91, + 59, + 20, + 125, + 0, + 0 + ], + [ + 0, + 14, + 0, + 39, + 0, + 0, + 6, + 4332, + 361, + 9, + 0, + 68, + 491, + 0, + 29, + 24, + 4, + 0, + 2, + 0 + ], + [ + 0, + 44, + 0, + 0, + 0, + 0, + 3, + 4, + 6539, + 0, + 0, + 5, + 1, + 0, + 0, + 0, + 2, + 0, + 0, + 0 + ], + [ + 0, + 6, + 18, + 70, + 0, + 0, + 21, + 0, + 0, + 2018, + 0, + 0, + 12, + 0, + 17, + 3, + 0, + 1, + 0, + 0 + ], + [ + 0, + 96, + 1049, + 1, + 9, + 5, + 0, + 0, + 0, + 0, + 3, + 0, + 0, + 0, + 11, + 7, + 21, + 0, + 0, + 0 + ], + [ + 0, + 14, + 0, + 0, + 0, + 0, + 571, + 5, + 24, + 0, + 0, + 6035, + 0, + 0, + 25, + 0, + 66, + 0, + 2, + 0 + ], + [ + 0, + 283, + 81, + 293, + 6, + 14, + 2, + 825, + 318, + 3083, + 36, + 235, + 493, + 68, + 44, + 76, + 73, + 0, + 116, + 0 + ], + [ + 0, + 8, + 26, + 130, + 0, + 0, + 0, + 154, + 107, + 21, + 1, + 9, + 234, + 63, + 35, + 2, + 6, + 0, + 0, + 0 + ], + [ + 0, + 670, + 17, + 26, + 0, + 0, + 109, + 33, + 533, + 0, + 0, + 260, + 0, + 0, + 1573, + 0, + 283, + 0, + 0, + 0 + ], + [ + 0, + 62, + 0, + 383, + 0, + 0, + 1, + 2, + 0, + 68, + 0, + 0, + 0, + 0, + 0, + 1393, + 0, + 0, + 0, + 0 + ], + [ + 0, + 50, + 0, + 13, + 0, + 0, + 0, + 12, + 679, + 0, + 0, + 52, + 1, + 0, + 192, + 0, + 1830, + 0, + 0, + 0 + ], + [ + 0, + 189, + 736, + 16, + 57, + 221, + 0, + 0, + 0, + 32, + 12, + 0, + 0, + 0, + 32, + 0, + 0, + 0, + 0, + 0 + ], + [ + 0, + 135, + 2, + 264, + 0, + 0, + 0, + 168, + 58, + 0, + 0, + 30, + 125, + 0, + 63, + 18, + 110, + 0, + 553, + 0 + ], + [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ] + ] + } + }, + { + "mode": "replace", + "alpha": 0.1, + "metrics": { + "miou": 0.5167009177958669, + "oa": 0.7871916539025932, + "macro_f1": 0.6303862870867428, + "kappa": 0.7635603406741439, + "per_class_iou": [ + 0.7847292476438954, + 0.794716269038954, + 0.8028045574057844, + 0.5278776978417267, + 0.9012145748987854, + 0.5710403726708074, + 0.6211892544521581, + 0.6878600607520687, + 0.38773975178638587, + 0.15184243964421856, + 0.8522920203735145, + 0.18935488365612374, + 0.1089866156787763, + 0.3318557324199073, + 0.8306976744186046, + 0.5137823245240125, + 0.01694915254237288, + 0.2256838905775076 + ], + "confusion_matrix": [ + [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + [ + 0, + 14738, + 115, + 52, + 56, + 14, + 49, + 4, + 498, + 0, + 3, + 216, + 81, + 3, + 671, + 19, + 252, + 5, + 4, + 0 + ], + [ + 0, + 110, + 11792, + 86, + 5, + 15, + 57, + 3, + 0, + 15, + 64, + 187, + 24, + 2, + 97, + 0, + 8, + 4, + 8, + 0 + ], + [ + 0, + 166, + 129, + 11908, + 19, + 9, + 3, + 210, + 0, + 28, + 0, + 0, + 2, + 5, + 168, + 138, + 39, + 0, + 1044, + 0 + ], + [ + 0, + 27, + 501, + 40, + 1174, + 42, + 3, + 0, + 0, + 0, + 210, + 0, + 9, + 9, + 0, + 0, + 19, + 9, + 4, + 0 + ], + [ + 0, + 73, + 25, + 26, + 0, + 5565, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 18, + 8, + 0, + 74, + 0, + 0 + ], + [ + 0, + 59, + 66, + 5, + 18, + 1, + 1471, + 48, + 268, + 0, + 2, + 199, + 0, + 0, + 89, + 0, + 4, + 178, + 0, + 0 + ], + [ + 0, + 5, + 1, + 10, + 0, + 0, + 15, + 4116, + 336, + 112, + 0, + 12, + 680, + 0, + 69, + 2, + 4, + 0, + 17, + 0 + ], + [ + 0, + 22, + 0, + 0, + 0, + 0, + 1, + 0, + 6567, + 0, + 0, + 7, + 0, + 0, + 0, + 0, + 1, + 0, + 0, + 0 + ], + [ + 0, + 5, + 21, + 5, + 0, + 0, + 0, + 18, + 0, + 2062, + 0, + 0, + 25, + 23, + 7, + 0, + 0, + 0, + 0, + 0 + ], + [ + 0, + 28, + 888, + 0, + 2, + 0, + 0, + 0, + 0, + 5, + 239, + 0, + 0, + 0, + 5, + 0, + 33, + 2, + 0, + 0 + ], + [ + 0, + 8, + 0, + 0, + 66, + 0, + 28, + 4, + 10, + 0, + 0, + 6526, + 0, + 0, + 23, + 0, + 69, + 0, + 8, + 0 + ], + [ + 0, + 120, + 21, + 165, + 1, + 4, + 2, + 468, + 484, + 2880, + 0, + 127, + 1359, + 208, + 151, + 16, + 10, + 9, + 21, + 0 + ], + [ + 0, + 1, + 46, + 52, + 0, + 1, + 0, + 209, + 11, + 31, + 1, + 93, + 213, + 114, + 14, + 4, + 6, + 0, + 0, + 0 + ], + [ + 0, + 1023, + 18, + 37, + 0, + 2, + 9, + 52, + 462, + 0, + 0, + 62, + 5, + 0, + 1647, + 0, + 170, + 17, + 0, + 0 + ], + [ + 0, + 26, + 10, + 33, + 7, + 6, + 0, + 2, + 0, + 38, + 0, + 0, + 0, + 0, + 0, + 1786, + 1, + 0, + 0, + 0 + ], + [ + 0, + 54, + 0, + 6, + 0, + 0, + 0, + 40, + 880, + 0, + 0, + 7, + 0, + 0, + 34, + 0, + 1808, + 0, + 0, + 0 + ], + [ + 0, + 257, + 520, + 31, + 3, + 292, + 0, + 0, + 0, + 43, + 92, + 0, + 0, + 0, + 0, + 4, + 26, + 27, + 0, + 0 + ], + [ + 0, + 17, + 0, + 417, + 0, + 0, + 1, + 189, + 0, + 0, + 0, + 5, + 92, + 0, + 113, + 50, + 48, + 0, + 594, + 0 + ], + [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ] + ] + } + }, + { + "mode": "replace", + "alpha": 0.25, + "metrics": { + "miou": 0.5033289536425035, + "oa": 0.782992898533649, + "macro_f1": 0.6170834757758071, + "kappa": 0.7585346205823219, + "per_class_iou": [ + 0.7869957537154989, + 0.7619479929965631, + 0.8095206257939427, + 0.45619757688723206, + 0.9017114914425428, + 0.5248306997742663, + 0.6307806691449814, + 0.6747173689619733, + 0.3831012070566388, + 0.12672978878368535, + 0.8447625243981782, + 0.15451730931607094, + 0.09753694581280788, + 0.33543373240915775, + 0.8002767527675276, + 0.5162200282087447, + 0.008524590163934427, + 0.24611610793131644 + ], + "confusion_matrix": [ + [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + [ + 0, + 14827, + 108, + 48, + 33, + 8, + 41, + 2, + 559, + 0, + 3, + 206, + 75, + 2, + 575, + 16, + 270, + 4, + 3, + 0 + ], + [ + 0, + 134, + 11750, + 97, + 2, + 17, + 60, + 0, + 0, + 13, + 74, + 188, + 22, + 1, + 91, + 0, + 19, + 3, + 6, + 0 + ], + [ + 0, + 134, + 183, + 12108, + 9, + 8, + 2, + 221, + 0, + 25, + 1, + 0, + 3, + 2, + 96, + 173, + 38, + 0, + 865, + 0 + ], + [ + 0, + 33, + 853, + 57, + 979, + 38, + 0, + 0, + 0, + 0, + 61, + 0, + 8, + 8, + 0, + 0, + 5, + 2, + 3, + 0 + ], + [ + 0, + 96, + 81, + 26, + 5, + 5532, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 17, + 8, + 0, + 24, + 0, + 0 + ], + [ + 0, + 58, + 54, + 18, + 20, + 0, + 1395, + 72, + 381, + 0, + 0, + 143, + 0, + 0, + 87, + 0, + 6, + 174, + 0, + 0 + ], + [ + 0, + 8, + 0, + 18, + 0, + 0, + 8, + 4242, + 329, + 94, + 0, + 25, + 591, + 0, + 52, + 2, + 3, + 0, + 7, + 0 + ], + [ + 0, + 23, + 0, + 0, + 0, + 0, + 2, + 0, + 6565, + 0, + 0, + 7, + 0, + 0, + 0, + 0, + 1, + 0, + 0, + 0 + ], + [ + 0, + 3, + 22, + 15, + 0, + 0, + 4, + 13, + 0, + 2063, + 0, + 0, + 23, + 12, + 11, + 0, + 0, + 0, + 0, + 0 + ], + [ + 0, + 36, + 943, + 1, + 2, + 0, + 0, + 0, + 0, + 5, + 174, + 0, + 0, + 0, + 5, + 2, + 34, + 0, + 0, + 0 + ], + [ + 0, + 11, + 0, + 0, + 12, + 0, + 118, + 2, + 10, + 0, + 0, + 6492, + 0, + 0, + 24, + 0, + 68, + 0, + 5, + 0 + ], + [ + 0, + 143, + 20, + 207, + 0, + 3, + 2, + 589, + 479, + 2980, + 0, + 164, + 1098, + 194, + 108, + 8, + 13, + 7, + 31, + 0 + ], + [ + 0, + 2, + 41, + 82, + 0, + 0, + 0, + 201, + 32, + 23, + 0, + 72, + 226, + 99, + 13, + 0, + 5, + 0, + 0, + 0 + ], + [ + 0, + 988, + 17, + 35, + 0, + 0, + 13, + 40, + 517, + 0, + 0, + 111, + 0, + 0, + 1597, + 0, + 170, + 16, + 0, + 0 + ], + [ + 0, + 29, + 6, + 90, + 6, + 5, + 0, + 0, + 0, + 38, + 0, + 0, + 0, + 0, + 0, + 1735, + 0, + 0, + 0, + 0 + ], + [ + 0, + 54, + 0, + 7, + 0, + 0, + 0, + 27, + 819, + 0, + 0, + 14, + 0, + 0, + 78, + 0, + 1830, + 0, + 0, + 0 + ], + [ + 0, + 270, + 616, + 22, + 10, + 267, + 0, + 0, + 0, + 41, + 32, + 0, + 0, + 0, + 3, + 4, + 17, + 13, + 0, + 0 + ], + [ + 0, + 38, + 0, + 366, + 0, + 0, + 0, + 179, + 6, + 0, + 0, + 13, + 112, + 0, + 97, + 46, + 67, + 0, + 602, + 0 + ], + [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ] + ] + } + }, + { + "mode": "replace", + "alpha": 0.5, + "metrics": { + "miou": 0.4332495930777849, + "oa": 0.7428262336521674, + "macro_f1": 0.5448831552781153, + "kappa": 0.7134735235251789, + "per_class_iou": [ + 0.7769852591535901, + 0.6716800746181648, + 0.7433450201272562, + 0.13846153846153847, + 0.8932325886990802, + 0.33295063145809417, + 0.6267615865175069, + 0.6585783326621023, + 0.37458317895516857, + 0.017937219730941704, + 0.7374032237593603, + 0.08724641793162151, + 0.07386990077177508, + 0.3299914675767918, + 0.6087711680416847, + 0.47658688865764826, + 0.0, + 0.2501081782778018 + ], + "confusion_matrix": [ + [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + [ + 0, + 14706, + 99, + 59, + 22, + 5, + 41, + 1, + 738, + 0, + 0, + 210, + 60, + 2, + 513, + 11, + 312, + 1, + 0, + 0 + ], + [ + 0, + 187, + 11522, + 149, + 74, + 18, + 62, + 0, + 0, + 5, + 102, + 188, + 20, + 1, + 78, + 0, + 69, + 2, + 0, + 0 + ], + [ + 0, + 162, + 960, + 11449, + 6, + 2, + 2, + 211, + 2, + 23, + 4, + 0, + 3, + 0, + 51, + 234, + 75, + 0, + 684, + 0 + ], + [ + 0, + 65, + 1534, + 85, + 324, + 31, + 0, + 0, + 0, + 0, + 6, + 0, + 2, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + [ + 0, + 112, + 127, + 28, + 53, + 5438, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 0, + 14, + 9, + 4, + 3, + 0, + 0 + ], + [ + 0, + 53, + 34, + 43, + 62, + 1, + 1160, + 92, + 573, + 0, + 0, + 94, + 8, + 0, + 90, + 48, + 17, + 133, + 0, + 0 + ], + [ + 0, + 13, + 0, + 34, + 0, + 0, + 7, + 4314, + 294, + 36, + 0, + 70, + 552, + 0, + 27, + 23, + 5, + 0, + 4, + 0 + ], + [ + 0, + 40, + 0, + 0, + 0, + 0, + 5, + 4, + 6541, + 0, + 0, + 5, + 1, + 0, + 0, + 0, + 2, + 0, + 0, + 0 + ], + [ + 0, + 5, + 20, + 64, + 0, + 0, + 23, + 0, + 0, + 2022, + 0, + 0, + 13, + 0, + 19, + 0, + 0, + 0, + 0, + 0 + ], + [ + 0, + 78, + 1047, + 1, + 7, + 4, + 0, + 0, + 0, + 0, + 24, + 0, + 0, + 0, + 8, + 3, + 30, + 0, + 0, + 0 + ], + [ + 0, + 11, + 0, + 0, + 0, + 0, + 804, + 3, + 20, + 0, + 0, + 5810, + 0, + 0, + 22, + 0, + 69, + 0, + 3, + 0 + ], + [ + 0, + 268, + 77, + 255, + 4, + 29, + 0, + 799, + 331, + 3048, + 14, + 239, + 615, + 108, + 55, + 48, + 62, + 0, + 94, + 0 + ], + [ + 0, + 6, + 30, + 123, + 0, + 0, + 0, + 167, + 109, + 19, + 0, + 15, + 227, + 67, + 28, + 0, + 5, + 0, + 0, + 0 + ], + [ + 0, + 692, + 17, + 27, + 0, + 0, + 132, + 35, + 523, + 1, + 0, + 254, + 0, + 0, + 1547, + 0, + 266, + 10, + 0, + 0 + ], + [ + 0, + 53, + 4, + 384, + 3, + 1, + 0, + 0, + 0, + 62, + 0, + 0, + 0, + 0, + 0, + 1402, + 0, + 0, + 0, + 0 + ], + [ + 0, + 52, + 0, + 11, + 0, + 0, + 0, + 18, + 696, + 0, + 0, + 34, + 1, + 0, + 185, + 0, + 1832, + 0, + 0, + 0 + ], + [ + 0, + 219, + 726, + 8, + 62, + 208, + 0, + 0, + 0, + 38, + 10, + 0, + 0, + 0, + 23, + 1, + 0, + 0, + 0, + 0 + ], + [ + 0, + 131, + 2, + 263, + 0, + 0, + 0, + 174, + 48, + 0, + 0, + 27, + 116, + 0, + 71, + 17, + 99, + 0, + 578, + 0 + ], + [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ] + ] + } + } + ], + "reference_val_miou": 0.5256398451814701, + "delta_val_pp": 0.0, + "patch_bootstrap_delta_interval_pp": [ + 0.0, + 0.0 + ], + "bootstrap_caveat": "descriptive, after validation selection; not an independent significance test", + "selection_split": "validation", + "test_used_for_selection": false + }, + "test_policy": "exploratory all-variants sweep explicitly requested by user; no test retuning", + "patches": 482 + }, + { + "kind": "temporal_cnv2_k7", + "metrics": { + "miou": 0.49455547330691263, + "oa": 0.8109266736579659, + "macro_f1": 0.6234136021853756, + "kappa": 0.7642966739749818, + "per_class_iou": [ + 0.8061330522981268, + 0.7198486670090578, + 0.8757351877577422, + 0.46213693236161063, + 0.8703389461776095, + 0.38416520104311963, + 0.4490553274645572, + 0.6216216216216216, + 0.7901944411308601, + 0.07114146695276376, + 0.5587868716244287, + 0.3175281724644782, + 0.4373326486446833, + 0.2655897022970766, + 0.6168043633350977, + 0.28662647573048294, + 0.0918118400487935, + 0.27714760156231727 + ], + "confusion_matrix": [ + [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + [ + 0, + 1311069, + 6756, + 8420, + 815, + 744, + 883, + 2246, + 19285, + 602, + 381, + 3742, + 6998, + 405, + 29504, + 1126, + 71312, + 1029, + 686, + 0 + ], + [ + 0, + 12671, + 493367, + 5115, + 3930, + 1130, + 1764, + 172, + 746, + 546, + 21217, + 15339, + 437, + 131, + 1045, + 166, + 699, + 2161, + 44, + 0 + ], + [ + 0, + 17785, + 2752, + 641744, + 302, + 960, + 172, + 3539, + 862, + 3810, + 169, + 19, + 2132, + 202, + 3012, + 4846, + 607, + 129, + 5247, + 0 + ], + [ + 0, + 9412, + 46049, + 1786, + 82625, + 1310, + 4247, + 55, + 196, + 62, + 7994, + 4414, + 287, + 376, + 482, + 80, + 252, + 3761, + 4, + 0 + ], + [ + 0, + 2675, + 1166, + 868, + 380, + 120018, + 262, + 124, + 19, + 220, + 688, + 194, + 22, + 35, + 1476, + 29, + 106, + 837, + 0, + 0 + ], + [ + 0, + 4040, + 7283, + 711, + 3621, + 289, + 25338, + 175, + 883, + 118, + 2677, + 5012, + 146, + 454, + 1986, + 330, + 163, + 536, + 0, + 0 + ], + [ + 0, + 1538, + 141, + 3611, + 17, + 249, + 89, + 47797, + 7620, + 3775, + 49, + 378, + 1239, + 1298, + 2624, + 9685, + 632, + 168, + 1023, + 0 + ], + [ + 0, + 18456, + 124, + 4622, + 0, + 0, + 17, + 1317, + 151754, + 0, + 1, + 338, + 854, + 23, + 403, + 328, + 9076, + 0, + 164, + 0 + ], + [ + 0, + 482, + 193, + 1058, + 35, + 123, + 379, + 620, + 116, + 66242, + 0, + 28, + 795, + 26, + 446, + 416, + 71, + 2, + 15, + 0 + ], + [ + 0, + 3092, + 44739, + 412, + 1763, + 216, + 156, + 5, + 11, + 5, + 7062, + 21, + 6, + 0, + 299, + 8, + 83, + 484, + 0, + 0 + ], + [ + 0, + 1322, + 2401, + 20, + 0, + 0, + 1773, + 184, + 1235, + 0, + 143, + 60525, + 38, + 0, + 1508, + 0, + 693, + 4, + 114, + 0 + ], + [ + 0, + 3196, + 123, + 4634, + 46, + 7, + 910, + 9697, + 3978, + 1955, + 63, + 3941, + 25923, + 639, + 1593, + 517, + 2180, + 171, + 1142, + 0 + ], + [ + 0, + 589, + 140, + 1406, + 6, + 31, + 92, + 2996, + 519, + 719, + 7, + 314, + 2523, + 11923, + 406, + 408, + 473, + 9, + 52, + 0 + ], + [ + 0, + 57524, + 1032, + 1194, + 723, + 333, + 1050, + 1045, + 7046, + 405, + 646, + 1114, + 551, + 254, + 47497, + 318, + 6554, + 377, + 131, + 0 + ], + [ + 0, + 1525, + 170, + 6485, + 90, + 129, + 5, + 653, + 17, + 376, + 8, + 2255, + 478, + 3, + 400, + 53604, + 52, + 13, + 2053, + 0 + ], + [ + 0, + 12728, + 331, + 778, + 2, + 0, + 34, + 422, + 10506, + 48, + 33, + 1127, + 965, + 73, + 710, + 23, + 49018, + 5, + 56, + 0 + ], + [ + 0, + 8636, + 11253, + 1214, + 3447, + 3258, + 322, + 34, + 20, + 20, + 6827, + 1, + 610, + 689, + 1495, + 80, + 44, + 4817, + 2, + 0 + ], + [ + 0, + 4694, + 43, + 2183, + 220, + 0, + 39, + 1222, + 3590, + 122, + 2, + 118, + 2844, + 42, + 3653, + 230, + 1161, + 11, + 11850, + 0 + ], + [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ] + ] + }, + "baseline": { + "miou": 0.49455547330691263, + "oa": 0.8109266736579659, + "macro_f1": 0.6234136021853756, + "kappa": 0.7642966739749818, + "per_class_iou": [ + 0.8061330522981268, + 0.7198486670090578, + 0.8757351877577422, + 0.46213693236161063, + 0.8703389461776095, + 0.38416520104311963, + 0.4490553274645572, + 0.6216216216216216, + 0.7901944411308601, + 0.07114146695276376, + 0.5587868716244287, + 0.3175281724644782, + 0.4373326486446833, + 0.2655897022970766, + 0.6168043633350977, + 0.28662647573048294, + 0.0918118400487935, + 0.27714760156231727 + ], + "confusion_matrix": [ + [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + [ + 0, + 1311069, + 6756, + 8420, + 815, + 744, + 883, + 2246, + 19285, + 602, + 381, + 3742, + 6998, + 405, + 29504, + 1126, + 71312, + 1029, + 686, + 0 + ], + [ + 0, + 12671, + 493367, + 5115, + 3930, + 1130, + 1764, + 172, + 746, + 546, + 21217, + 15339, + 437, + 131, + 1045, + 166, + 699, + 2161, + 44, + 0 + ], + [ + 0, + 17785, + 2752, + 641744, + 302, + 960, + 172, + 3539, + 862, + 3810, + 169, + 19, + 2132, + 202, + 3012, + 4846, + 607, + 129, + 5247, + 0 + ], + [ + 0, + 9412, + 46049, + 1786, + 82625, + 1310, + 4247, + 55, + 196, + 62, + 7994, + 4414, + 287, + 376, + 482, + 80, + 252, + 3761, + 4, + 0 + ], + [ + 0, + 2675, + 1166, + 868, + 380, + 120018, + 262, + 124, + 19, + 220, + 688, + 194, + 22, + 35, + 1476, + 29, + 106, + 837, + 0, + 0 + ], + [ + 0, + 4040, + 7283, + 711, + 3621, + 289, + 25338, + 175, + 883, + 118, + 2677, + 5012, + 146, + 454, + 1986, + 330, + 163, + 536, + 0, + 0 + ], + [ + 0, + 1538, + 141, + 3611, + 17, + 249, + 89, + 47797, + 7620, + 3775, + 49, + 378, + 1239, + 1298, + 2624, + 9685, + 632, + 168, + 1023, + 0 + ], + [ + 0, + 18456, + 124, + 4622, + 0, + 0, + 17, + 1317, + 151754, + 0, + 1, + 338, + 854, + 23, + 403, + 328, + 9076, + 0, + 164, + 0 + ], + [ + 0, + 482, + 193, + 1058, + 35, + 123, + 379, + 620, + 116, + 66242, + 0, + 28, + 795, + 26, + 446, + 416, + 71, + 2, + 15, + 0 + ], + [ + 0, + 3092, + 44739, + 412, + 1763, + 216, + 156, + 5, + 11, + 5, + 7062, + 21, + 6, + 0, + 299, + 8, + 83, + 484, + 0, + 0 + ], + [ + 0, + 1322, + 2401, + 20, + 0, + 0, + 1773, + 184, + 1235, + 0, + 143, + 60525, + 38, + 0, + 1508, + 0, + 693, + 4, + 114, + 0 + ], + [ + 0, + 3196, + 123, + 4634, + 46, + 7, + 910, + 9697, + 3978, + 1955, + 63, + 3941, + 25923, + 639, + 1593, + 517, + 2180, + 171, + 1142, + 0 + ], + [ + 0, + 589, + 140, + 1406, + 6, + 31, + 92, + 2996, + 519, + 719, + 7, + 314, + 2523, + 11923, + 406, + 408, + 473, + 9, + 52, + 0 + ], + [ + 0, + 57524, + 1032, + 1194, + 723, + 333, + 1050, + 1045, + 7046, + 405, + 646, + 1114, + 551, + 254, + 47497, + 318, + 6554, + 377, + 131, + 0 + ], + [ + 0, + 1525, + 170, + 6485, + 90, + 129, + 5, + 653, + 17, + 376, + 8, + 2255, + 478, + 3, + 400, + 53604, + 52, + 13, + 2053, + 0 + ], + [ + 0, + 12728, + 331, + 778, + 2, + 0, + 34, + 422, + 10506, + 48, + 33, + 1127, + 965, + 73, + 710, + 23, + 49018, + 5, + 56, + 0 + ], + [ + 0, + 8636, + 11253, + 1214, + 3447, + 3258, + 322, + 34, + 20, + 20, + 6827, + 1, + 610, + 689, + 1495, + 80, + 44, + 4817, + 2, + 0 + ], + [ + 0, + 4694, + 43, + 2183, + 220, + 0, + 39, + 1222, + 3590, + 122, + 2, + 118, + 2844, + 42, + 3653, + 230, + 1161, + 11, + 11850, + 0 + ], + [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ] + ] + }, + "standalone": { + "miou": 0.3534588907897333, + "oa": 0.7207348740783527, + "macro_f1": 0.4779745995312434, + "kappa": 0.652604300255473, + "per_class_iou": [ + 0.7420109584956738, + 0.6197249711855649, + 0.6618617613836052, + 0.24179789687012088, + 0.6649685328927365, + 0.15124449208050494, + 0.34988350606571866, + 0.5299468778189836, + 0.6250459979182657, + 0.015551455360168694, + 0.4163388782128273, + 0.21682168508421534, + 0.13756634254058034, + 0.19556823420931305, + 0.43427822727185783, + 0.2400693538017962, + 0.025994849618580243, + 0.09358601340468645 + ], + "confusion_matrix": [ + [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + [ + 0, + 1254279, + 16711, + 30624, + 3789, + 5513, + 537, + 3940, + 18129, + 2154, + 1088, + 10148, + 3573, + 231, + 45374, + 4036, + 61228, + 2946, + 1703, + 0 + ], + [ + 0, + 29823, + 467787, + 7229, + 9314, + 6349, + 2228, + 416, + 3659, + 769, + 8668, + 14468, + 1568, + 306, + 1979, + 323, + 480, + 4972, + 342, + 0 + ], + [ + 0, + 46763, + 23885, + 510353, + 4379, + 8220, + 995, + 6117, + 3255, + 12638, + 367, + 1085, + 10941, + 1279, + 5342, + 18680, + 1030, + 1601, + 31359, + 0 + ], + [ + 0, + 11546, + 67244, + 3329, + 46770, + 9024, + 3824, + 114, + 346, + 1034, + 4393, + 9869, + 515, + 123, + 1855, + 298, + 206, + 2873, + 29, + 0 + ], + [ + 0, + 3864, + 2528, + 671, + 920, + 115910, + 72, + 120, + 80, + 619, + 868, + 704, + 243, + 13, + 1345, + 736, + 18, + 400, + 8, + 0 + ], + [ + 0, + 4551, + 13030, + 1162, + 3863, + 2091, + 10160, + 177, + 920, + 712, + 1579, + 9320, + 591, + 119, + 1146, + 545, + 249, + 3435, + 112, + 0 + ], + [ + 0, + 4578, + 1258, + 6801, + 150, + 1543, + 293, + 43550, + 7168, + 1039, + 12, + 710, + 3941, + 141, + 1690, + 6843, + 475, + 472, + 1269, + 0 + ], + [ + 0, + 23500, + 575, + 6703, + 1, + 0, + 31, + 7501, + 132182, + 53, + 28, + 2441, + 3373, + 1, + 2278, + 347, + 6416, + 9, + 2038, + 0 + ], + [ + 0, + 2900, + 141, + 2330, + 82, + 2482, + 39, + 362, + 248, + 59450, + 10, + 602, + 841, + 49, + 192, + 542, + 178, + 578, + 21, + 0 + ], + [ + 0, + 4656, + 45249, + 833, + 1532, + 1797, + 105, + 90, + 89, + 52, + 1239, + 620, + 106, + 0, + 348, + 404, + 157, + 929, + 156, + 0 + ], + [ + 0, + 2402, + 2489, + 24, + 29, + 8, + 2239, + 460, + 2729, + 0, + 52, + 55463, + 83, + 0, + 3136, + 1, + 770, + 31, + 44, + 0 + ], + [ + 0, + 3996, + 619, + 5948, + 188, + 565, + 303, + 11113, + 4735, + 1554, + 89, + 2567, + 22309, + 468, + 1542, + 749, + 1034, + 151, + 2785, + 0 + ], + [ + 0, + 2438, + 657, + 1030, + 159, + 294, + 1023, + 1638, + 724, + 993, + 130, + 1135, + 7613, + 3551, + 398, + 434, + 149, + 133, + 114, + 0 + ], + [ + 0, + 58027, + 1952, + 2423, + 750, + 2435, + 986, + 2402, + 7179, + 455, + 219, + 2787, + 996, + 210, + 40722, + 1419, + 3520, + 193, + 1119, + 0 + ], + [ + 0, + 2010, + 924, + 6249, + 115, + 141, + 154, + 1848, + 125, + 1553, + 3, + 662, + 1830, + 161, + 3512, + 45409, + 49, + 138, + 3433, + 0 + ], + [ + 0, + 14545, + 323, + 2359, + 27, + 14, + 183, + 2085, + 8441, + 51, + 9, + 5263, + 1424, + 33, + 4632, + 123, + 36969, + 34, + 344, + 0 + ], + [ + 0, + 6830, + 16401, + 1978, + 4700, + 4711, + 374, + 12, + 234, + 168, + 3741, + 225, + 1122, + 65, + 229, + 285, + 1, + 1605, + 88, + 0 + ], + [ + 0, + 1946, + 164, + 3105, + 36, + 3, + 28, + 4142, + 3887, + 222, + 53, + 650, + 3416, + 1, + 5432, + 481, + 1174, + 79, + 7205, + 0 + ], + [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ] + ] + }, + "delta_test_pp": 0.0, + "standalone_delta_test_pp": -14.109658251717933, + "seconds": 132.49661641614512, + "validation_selection": { + "kind": "temporal_cnv2_k7", + "seed": 3407, + "checkpoint_epoch": 73, + "standalone": { + "miou": 0.40321619164025735, + "oa": 0.7163483681622947, + "macro_f1": 0.5145819436264608, + "kappa": 0.6847067841601968, + "per_class_iou": [ + 0.7455158113011924, + 0.6654477880350078, + 0.655436447166922, + 0.2501005227181343, + 0.8656811317755524, + 0.29034287511796164, + 0.5551532033426184, + 0.6752254641909814, + 0.3692639913622458, + 0.0, + 0.7477188655980271, + 0.09855321587165163, + 0.01608910891089109, + 0.32511100148001976, + 0.43216984526808205, + 0.4645644708086169, + 0.0, + 0.1015177065767285 + ], + "confusion_matrix": [ + [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + [ + 0, + 14381, + 224, + 79, + 23, + 37, + 31, + 12, + 326, + 4, + 6, + 97, + 87, + 0, + 1221, + 27, + 171, + 21, + 33, + 0 + ], + [ + 0, + 343, + 11101, + 114, + 217, + 49, + 171, + 1, + 7, + 11, + 30, + 220, + 32, + 2, + 48, + 8, + 19, + 102, + 2, + 0 + ], + [ + 0, + 263, + 758, + 10272, + 136, + 4, + 7, + 280, + 56, + 43, + 11, + 45, + 65, + 1, + 454, + 434, + 17, + 7, + 1015, + 0 + ], + [ + 0, + 49, + 1129, + 137, + 622, + 49, + 0, + 0, + 0, + 0, + 2, + 24, + 30, + 0, + 0, + 0, + 0, + 5, + 0, + 0 + ], + [ + 0, + 67, + 96, + 79, + 54, + 5446, + 0, + 0, + 0, + 4, + 0, + 16, + 12, + 0, + 2, + 4, + 0, + 9, + 0, + 0 + ], + [ + 0, + 56, + 108, + 16, + 3, + 4, + 923, + 4, + 182, + 0, + 15, + 488, + 0, + 9, + 82, + 120, + 6, + 387, + 5, + 0 + ], + [ + 0, + 41, + 14, + 346, + 0, + 0, + 16, + 3986, + 556, + 0, + 0, + 82, + 143, + 0, + 68, + 117, + 0, + 0, + 10, + 0 + ], + [ + 0, + 83, + 0, + 0, + 0, + 0, + 0, + 95, + 6364, + 0, + 0, + 15, + 0, + 0, + 23, + 0, + 5, + 0, + 13, + 0 + ], + [ + 0, + 25, + 2, + 59, + 0, + 3, + 0, + 3, + 0, + 2052, + 0, + 0, + 0, + 0, + 0, + 22, + 0, + 0, + 0, + 0 + ], + [ + 0, + 121, + 1035, + 5, + 0, + 3, + 10, + 0, + 0, + 0, + 0, + 28, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + [ + 0, + 84, + 30, + 0, + 0, + 0, + 399, + 24, + 88, + 0, + 0, + 6064, + 0, + 0, + 25, + 0, + 26, + 0, + 2, + 0 + ], + [ + 0, + 270, + 101, + 171, + 3, + 8, + 44, + 652, + 356, + 3201, + 17, + 158, + 688, + 0, + 52, + 87, + 4, + 0, + 234, + 0 + ], + [ + 0, + 62, + 22, + 56, + 0, + 0, + 72, + 51, + 93, + 25, + 1, + 1, + 380, + 13, + 1, + 9, + 6, + 0, + 4, + 0 + ], + [ + 0, + 606, + 28, + 51, + 2, + 0, + 0, + 138, + 567, + 0, + 0, + 71, + 10, + 0, + 1977, + 4, + 50, + 0, + 0, + 0 + ], + [ + 0, + 82, + 0, + 216, + 2, + 0, + 18, + 163, + 0, + 89, + 0, + 0, + 0, + 0, + 12, + 1201, + 1, + 6, + 119, + 0 + ], + [ + 0, + 88, + 0, + 14, + 0, + 0, + 0, + 102, + 515, + 0, + 0, + 95, + 5, + 0, + 516, + 4, + 1488, + 0, + 2, + 0 + ], + [ + 0, + 100, + 627, + 152, + 0, + 340, + 2, + 0, + 0, + 14, + 34, + 0, + 0, + 0, + 0, + 25, + 1, + 0, + 0, + 0 + ], + [ + 0, + 170, + 31, + 309, + 0, + 5, + 1, + 276, + 81, + 0, + 3, + 28, + 171, + 0, + 73, + 9, + 68, + 0, + 301, + 0 + ], + [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ] + ] + }, + "chosen": { + "mode": "add", + "alpha": 0.0, + "metrics": { + "miou": 0.5256398451814701, + "oa": 0.7954606313128608, + "macro_f1": 0.6400266863319044, + "kappa": 0.7725060156424988, + "per_class_iou": [ + 0.7863696632193052, + 0.7940560621411685, + 0.8422681105804802, + 0.5216035634743875, + 0.8953563366655918, + 0.5666403785488959, + 0.6681021224238696, + 0.6854425749817118, + 0.3865969759193579, + 0.15913978494623657, + 0.8521227955584585, + 0.16817463736895016, + 0.15324165029469547, + 0.3526720731960907, + 0.8232323232323232, + 0.5073836723321259, + 0.010297482837528604, + 0.2888170055452865 + ], + "confusion_matrix": [ + [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + [ + 0, + 14827, + 104, + 46, + 8, + 16, + 20, + 1, + 480, + 0, + 3, + 211, + 80, + 3, + 659, + 16, + 296, + 4, + 6, + 0 + ], + [ + 0, + 160, + 11756, + 93, + 27, + 17, + 59, + 3, + 0, + 18, + 25, + 184, + 13, + 1, + 99, + 0, + 10, + 4, + 8, + 0 + ], + [ + 0, + 165, + 132, + 12522, + 19, + 10, + 2, + 144, + 0, + 31, + 1, + 0, + 2, + 6, + 113, + 137, + 34, + 11, + 539, + 0 + ], + [ + 0, + 23, + 477, + 28, + 1171, + 50, + 1, + 0, + 0, + 0, + 130, + 0, + 18, + 10, + 0, + 2, + 6, + 128, + 3, + 0 + ], + [ + 0, + 83, + 1, + 23, + 0, + 5553, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 19, + 8, + 1, + 101, + 0, + 0 + ], + [ + 0, + 96, + 76, + 5, + 7, + 0, + 1437, + 49, + 253, + 0, + 0, + 217, + 0, + 0, + 77, + 0, + 5, + 186, + 0, + 0 + ], + [ + 0, + 7, + 0, + 14, + 0, + 0, + 10, + 4344, + 415, + 65, + 0, + 10, + 472, + 0, + 33, + 1, + 4, + 0, + 4, + 0 + ], + [ + 0, + 29, + 0, + 0, + 0, + 0, + 0, + 0, + 6559, + 0, + 0, + 9, + 0, + 0, + 0, + 0, + 1, + 0, + 0, + 0 + ], + [ + 0, + 6, + 20, + 6, + 0, + 1, + 0, + 26, + 0, + 2071, + 0, + 0, + 16, + 14, + 5, + 1, + 0, + 0, + 0, + 0 + ], + [ + 0, + 34, + 886, + 0, + 14, + 0, + 2, + 0, + 0, + 5, + 222, + 0, + 0, + 0, + 5, + 0, + 30, + 4, + 0, + 0 + ], + [ + 0, + 17, + 0, + 0, + 91, + 0, + 14, + 5, + 10, + 0, + 0, + 6523, + 0, + 0, + 13, + 0, + 63, + 0, + 6, + 0 + ], + [ + 0, + 107, + 18, + 205, + 0, + 3, + 10, + 473, + 524, + 2954, + 6, + 129, + 1171, + 188, + 120, + 47, + 11, + 8, + 72, + 0 + ], + [ + 0, + 1, + 44, + 53, + 0, + 0, + 0, + 189, + 8, + 36, + 1, + 71, + 216, + 156, + 12, + 2, + 7, + 0, + 0, + 0 + ], + [ + 0, + 1027, + 18, + 38, + 0, + 0, + 10, + 43, + 402, + 0, + 0, + 58, + 0, + 0, + 1696, + 0, + 205, + 7, + 0, + 0 + ], + [ + 0, + 28, + 6, + 32, + 4, + 6, + 0, + 0, + 0, + 40, + 0, + 0, + 0, + 0, + 0, + 1793, + 0, + 0, + 0, + 0 + ], + [ + 0, + 51, + 0, + 8, + 0, + 0, + 0, + 19, + 875, + 0, + 0, + 14, + 0, + 0, + 41, + 0, + 1821, + 0, + 0, + 0 + ], + [ + 0, + 230, + 546, + 75, + 28, + 310, + 0, + 0, + 0, + 42, + 27, + 0, + 0, + 0, + 0, + 4, + 15, + 18, + 0, + 0 + ], + [ + 0, + 11, + 0, + 373, + 0, + 0, + 0, + 171, + 4, + 0, + 0, + 10, + 100, + 0, + 109, + 51, + 72, + 0, + 625, + 0 + ], + [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ] + ] + } + }, + "records": [ + { + "mode": "add", + "alpha": 0.0, + "metrics": { + "miou": 0.5256398451814701, + "oa": 0.7954606313128608, + "macro_f1": 0.6400266863319044, + "kappa": 0.7725060156424988, + "per_class_iou": [ + 0.7863696632193052, + 0.7940560621411685, + 0.8422681105804802, + 0.5216035634743875, + 0.8953563366655918, + 0.5666403785488959, + 0.6681021224238696, + 0.6854425749817118, + 0.3865969759193579, + 0.15913978494623657, + 0.8521227955584585, + 0.16817463736895016, + 0.15324165029469547, + 0.3526720731960907, + 0.8232323232323232, + 0.5073836723321259, + 0.010297482837528604, + 0.2888170055452865 + ], + "confusion_matrix": [ + [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + [ + 0, + 14827, + 104, + 46, + 8, + 16, + 20, + 1, + 480, + 0, + 3, + 211, + 80, + 3, + 659, + 16, + 296, + 4, + 6, + 0 + ], + [ + 0, + 160, + 11756, + 93, + 27, + 17, + 59, + 3, + 0, + 18, + 25, + 184, + 13, + 1, + 99, + 0, + 10, + 4, + 8, + 0 + ], + [ + 0, + 165, + 132, + 12522, + 19, + 10, + 2, + 144, + 0, + 31, + 1, + 0, + 2, + 6, + 113, + 137, + 34, + 11, + 539, + 0 + ], + [ + 0, + 23, + 477, + 28, + 1171, + 50, + 1, + 0, + 0, + 0, + 130, + 0, + 18, + 10, + 0, + 2, + 6, + 128, + 3, + 0 + ], + [ + 0, + 83, + 1, + 23, + 0, + 5553, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 19, + 8, + 1, + 101, + 0, + 0 + ], + [ + 0, + 96, + 76, + 5, + 7, + 0, + 1437, + 49, + 253, + 0, + 0, + 217, + 0, + 0, + 77, + 0, + 5, + 186, + 0, + 0 + ], + [ + 0, + 7, + 0, + 14, + 0, + 0, + 10, + 4344, + 415, + 65, + 0, + 10, + 472, + 0, + 33, + 1, + 4, + 0, + 4, + 0 + ], + [ + 0, + 29, + 0, + 0, + 0, + 0, + 0, + 0, + 6559, + 0, + 0, + 9, + 0, + 0, + 0, + 0, + 1, + 0, + 0, + 0 + ], + [ + 0, + 6, + 20, + 6, + 0, + 1, + 0, + 26, + 0, + 2071, + 0, + 0, + 16, + 14, + 5, + 1, + 0, + 0, + 0, + 0 + ], + [ + 0, + 34, + 886, + 0, + 14, + 0, + 2, + 0, + 0, + 5, + 222, + 0, + 0, + 0, + 5, + 0, + 30, + 4, + 0, + 0 + ], + [ + 0, + 17, + 0, + 0, + 91, + 0, + 14, + 5, + 10, + 0, + 0, + 6523, + 0, + 0, + 13, + 0, + 63, + 0, + 6, + 0 + ], + [ + 0, + 107, + 18, + 205, + 0, + 3, + 10, + 473, + 524, + 2954, + 6, + 129, + 1171, + 188, + 120, + 47, + 11, + 8, + 72, + 0 + ], + [ + 0, + 1, + 44, + 53, + 0, + 0, + 0, + 189, + 8, + 36, + 1, + 71, + 216, + 156, + 12, + 2, + 7, + 0, + 0, + 0 + ], + [ + 0, + 1027, + 18, + 38, + 0, + 0, + 10, + 43, + 402, + 0, + 0, + 58, + 0, + 0, + 1696, + 0, + 205, + 7, + 0, + 0 + ], + [ + 0, + 28, + 6, + 32, + 4, + 6, + 0, + 0, + 0, + 40, + 0, + 0, + 0, + 0, + 0, + 1793, + 0, + 0, + 0, + 0 + ], + [ + 0, + 51, + 0, + 8, + 0, + 0, + 0, + 19, + 875, + 0, + 0, + 14, + 0, + 0, + 41, + 0, + 1821, + 0, + 0, + 0 + ], + [ + 0, + 230, + 546, + 75, + 28, + 310, + 0, + 0, + 0, + 42, + 27, + 0, + 0, + 0, + 0, + 4, + 15, + 18, + 0, + 0 + ], + [ + 0, + 11, + 0, + 373, + 0, + 0, + 0, + 171, + 4, + 0, + 0, + 10, + 100, + 0, + 109, + 51, + 72, + 0, + 625, + 0 + ], + [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ] + ] + } + }, + { + "mode": "add", + "alpha": 0.1, + "metrics": { + "miou": 0.5216519009443068, + "oa": 0.7940253424877626, + "macro_f1": 0.6358232034975959, + "kappa": 0.7707987982836775, + "per_class_iou": [ + 0.7885408951433711, + 0.785475234270415, + 0.8427411235653399, + 0.51599819738621, + 0.8947453255963894, + 0.5482213438735178, + 0.6648326455754241, + 0.6852781263069845, + 0.3824393828067597, + 0.14583333333333334, + 0.8470420342501297, + 0.15005020800459046, + 0.15208747514910537, + 0.3603281447202356, + 0.8129562043795621, + 0.5105366676032593, + 0.007553747821034283, + 0.2950741272118603 + ], + "confusion_matrix": [ + [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + [ + 0, + 14905, + 104, + 47, + 4, + 15, + 20, + 0, + 478, + 0, + 3, + 204, + 76, + 3, + 610, + 16, + 286, + 4, + 5, + 0 + ], + [ + 0, + 185, + 11735, + 92, + 25, + 18, + 62, + 2, + 0, + 18, + 22, + 184, + 10, + 1, + 101, + 0, + 11, + 3, + 8, + 0 + ], + [ + 0, + 166, + 137, + 12556, + 12, + 9, + 2, + 174, + 0, + 33, + 0, + 0, + 2, + 5, + 114, + 149, + 32, + 8, + 469, + 0 + ], + [ + 0, + 20, + 570, + 32, + 1145, + 51, + 0, + 0, + 0, + 0, + 92, + 0, + 18, + 10, + 0, + 2, + 5, + 99, + 3, + 0 + ], + [ + 0, + 84, + 3, + 28, + 0, + 5551, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 19, + 5, + 0, + 99, + 0, + 0 + ], + [ + 0, + 90, + 64, + 5, + 5, + 0, + 1387, + 43, + 257, + 0, + 0, + 269, + 0, + 0, + 86, + 0, + 5, + 197, + 0, + 0 + ], + [ + 0, + 11, + 1, + 19, + 0, + 0, + 9, + 4350, + 418, + 61, + 0, + 10, + 464, + 0, + 32, + 1, + 2, + 0, + 1, + 0 + ], + [ + 0, + 35, + 0, + 0, + 0, + 0, + 0, + 0, + 6554, + 0, + 0, + 8, + 0, + 0, + 0, + 0, + 1, + 0, + 0, + 0 + ], + [ + 0, + 4, + 20, + 7, + 0, + 2, + 0, + 23, + 0, + 2082, + 0, + 0, + 16, + 9, + 2, + 1, + 0, + 0, + 0, + 0 + ], + [ + 0, + 39, + 914, + 0, + 10, + 0, + 0, + 0, + 0, + 5, + 196, + 0, + 0, + 0, + 5, + 0, + 30, + 3, + 0, + 0 + ], + [ + 0, + 19, + 0, + 0, + 85, + 0, + 15, + 6, + 11, + 0, + 0, + 6529, + 0, + 0, + 14, + 0, + 60, + 0, + 3, + 0 + ], + [ + 0, + 120, + 21, + 211, + 0, + 2, + 7, + 502, + 513, + 3038, + 5, + 141, + 1046, + 182, + 111, + 54, + 9, + 8, + 76, + 0 + ], + [ + 0, + 4, + 45, + 51, + 0, + 0, + 0, + 185, + 9, + 39, + 1, + 64, + 226, + 153, + 11, + 2, + 6, + 0, + 0, + 0 + ], + [ + 0, + 1025, + 18, + 38, + 0, + 0, + 7, + 40, + 400, + 0, + 0, + 58, + 0, + 0, + 1713, + 0, + 200, + 5, + 0, + 0 + ], + [ + 0, + 28, + 6, + 44, + 4, + 5, + 0, + 0, + 0, + 40, + 0, + 0, + 0, + 0, + 0, + 1782, + 0, + 0, + 0, + 0 + ], + [ + 0, + 52, + 0, + 8, + 0, + 0, + 0, + 19, + 871, + 0, + 0, + 18, + 0, + 0, + 44, + 0, + 1817, + 0, + 0, + 0 + ], + [ + 0, + 222, + 560, + 81, + 27, + 313, + 0, + 0, + 0, + 44, + 19, + 0, + 0, + 0, + 0, + 3, + 13, + 13, + 0, + 0 + ], + [ + 0, + 18, + 0, + 368, + 0, + 0, + 0, + 170, + 9, + 0, + 0, + 10, + 113, + 0, + 101, + 50, + 70, + 0, + 617, + 0 + ], + [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ] + ] + } + }, + { + "mode": "add", + "alpha": 0.25, + "metrics": { + "miou": 0.5102471079440807, + "oa": 0.7902228982123156, + "macro_f1": 0.6231387918406224, + "kappa": 0.7663660485606661, + "per_class_iou": [ + 0.7898756847871892, + 0.7747325320301149, + 0.8382264829239066, + 0.5052201543349978, + 0.8927536231884058, + 0.4927706135209066, + 0.653654860587792, + 0.6854779604229924, + 0.38145454545454544, + 0.09664848012470771, + 0.8329931104873692, + 0.12923121055651177, + 0.13109756097560976, + 0.36265137029955385, + 0.7954033348355115, + 0.5126074498567336, + 0.0036188178528347406, + 0.3060301507537688 + ], + "confusion_matrix": [ + [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + [ + 0, + 14995, + 99, + 49, + 3, + 13, + 23, + 0, + 476, + 0, + 2, + 192, + 71, + 2, + 567, + 19, + 262, + 1, + 6, + 0 + ], + [ + 0, + 200, + 11731, + 93, + 22, + 22, + 67, + 1, + 0, + 18, + 11, + 183, + 5, + 1, + 101, + 0, + 14, + 2, + 6, + 0 + ], + [ + 0, + 163, + 142, + 12591, + 7, + 8, + 2, + 213, + 1, + 35, + 0, + 0, + 1, + 5, + 121, + 169, + 27, + 4, + 379, + 0 + ], + [ + 0, + 22, + 699, + 50, + 1113, + 50, + 0, + 0, + 0, + 0, + 54, + 0, + 12, + 10, + 0, + 0, + 1, + 36, + 0, + 0 + ], + [ + 0, + 81, + 17, + 40, + 0, + 5544, + 0, + 0, + 0, + 0, + 0, + 5, + 0, + 0, + 14, + 2, + 0, + 86, + 0, + 0 + ], + [ + 0, + 91, + 56, + 7, + 4, + 0, + 1261, + 34, + 250, + 0, + 0, + 388, + 0, + 0, + 85, + 0, + 5, + 227, + 0, + 0 + ], + [ + 0, + 17, + 0, + 82, + 0, + 0, + 12, + 4337, + 424, + 32, + 0, + 8, + 445, + 0, + 21, + 0, + 1, + 0, + 0, + 0 + ], + [ + 0, + 42, + 0, + 0, + 0, + 0, + 0, + 0, + 6547, + 0, + 0, + 7, + 0, + 0, + 0, + 0, + 2, + 0, + 0, + 0 + ], + [ + 0, + 9, + 17, + 5, + 0, + 1, + 0, + 19, + 0, + 2098, + 0, + 0, + 12, + 4, + 0, + 1, + 0, + 0, + 0, + 0 + ], + [ + 0, + 58, + 972, + 0, + 8, + 1, + 4, + 0, + 0, + 4, + 124, + 0, + 0, + 0, + 3, + 0, + 28, + 0, + 0, + 0 + ], + [ + 0, + 23, + 0, + 0, + 84, + 0, + 17, + 6, + 10, + 0, + 0, + 6529, + 0, + 0, + 15, + 0, + 56, + 0, + 2, + 0 + ], + [ + 0, + 140, + 24, + 224, + 0, + 0, + 5, + 571, + 466, + 3124, + 7, + 170, + 901, + 166, + 92, + 72, + 7, + 6, + 71, + 0 + ], + [ + 0, + 11, + 36, + 51, + 0, + 0, + 19, + 175, + 16, + 39, + 0, + 52, + 257, + 129, + 5, + 0, + 6, + 0, + 0, + 0 + ], + [ + 0, + 1021, + 18, + 40, + 0, + 0, + 2, + 39, + 436, + 0, + 0, + 64, + 0, + 0, + 1707, + 0, + 177, + 0, + 0, + 0 + ], + [ + 0, + 37, + 6, + 54, + 2, + 4, + 0, + 0, + 0, + 40, + 0, + 0, + 0, + 0, + 0, + 1765, + 0, + 1, + 0, + 0 + ], + [ + 0, + 51, + 0, + 8, + 0, + 0, + 0, + 20, + 853, + 0, + 0, + 19, + 0, + 0, + 89, + 0, + 1789, + 0, + 0, + 0 + ], + [ + 0, + 211, + 579, + 91, + 26, + 322, + 0, + 0, + 0, + 42, + 7, + 0, + 0, + 0, + 0, + 2, + 9, + 6, + 0, + 0 + ], + [ + 0, + 27, + 0, + 359, + 0, + 0, + 0, + 178, + 21, + 0, + 0, + 8, + 123, + 0, + 90, + 45, + 66, + 0, + 609, + 0 + ], + [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ] + ] + } + }, + { + "mode": "add", + "alpha": 0.5, + "metrics": { + "miou": 0.4878944761716712, + "oa": 0.780390098649329, + "macro_f1": 0.5980646976397048, + "kappa": 0.7552214865794974, + "per_class_iou": [ + 0.7901059699926556, + 0.7483750563099298, + 0.81121849288233, + 0.4531177829099307, + 0.8861958266452649, + 0.42669666291713537, + 0.6363636363636364, + 0.6804672020022943, + 0.38173897259030676, + 0.0008103727714748784, + 0.8215415770155676, + 0.11190859821297788, + 0.10903083700440529, + 0.37358568195844477, + 0.7431788653096578, + 0.5212066905615292, + 0.0, + 0.2865583456425406 + ], + "confusion_matrix": [ + [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + [ + 0, + 15061, + 94, + 50, + 3, + 17, + 11, + 0, + 447, + 0, + 1, + 134, + 80, + 1, + 626, + 19, + 225, + 1, + 10, + 0 + ], + [ + 0, + 255, + 11629, + 108, + 31, + 30, + 93, + 0, + 2, + 13, + 8, + 203, + 1, + 1, + 76, + 0, + 20, + 7, + 0, + 0 + ], + [ + 0, + 180, + 191, + 12423, + 15, + 6, + 2, + 227, + 10, + 34, + 0, + 0, + 0, + 3, + 147, + 225, + 21, + 1, + 383, + 0 + ], + [ + 0, + 42, + 835, + 119, + 981, + 50, + 0, + 0, + 0, + 0, + 8, + 0, + 2, + 5, + 0, + 0, + 0, + 5, + 0, + 0 + ], + [ + 0, + 59, + 72, + 78, + 3, + 5521, + 0, + 0, + 0, + 0, + 0, + 12, + 0, + 0, + 4, + 4, + 0, + 36, + 0, + 0 + ], + [ + 0, + 84, + 45, + 14, + 2, + 0, + 1138, + 14, + 200, + 0, + 2, + 470, + 0, + 0, + 83, + 32, + 5, + 319, + 0, + 0 + ], + [ + 0, + 25, + 0, + 194, + 0, + 0, + 8, + 4263, + 559, + 6, + 0, + 55, + 229, + 0, + 33, + 4, + 1, + 0, + 2, + 0 + ], + [ + 0, + 59, + 0, + 0, + 0, + 0, + 0, + 2, + 6525, + 0, + 0, + 9, + 0, + 0, + 3, + 0, + 0, + 0, + 0, + 0 + ], + [ + 0, + 17, + 8, + 10, + 0, + 1, + 0, + 11, + 0, + 2103, + 0, + 0, + 3, + 3, + 0, + 10, + 0, + 0, + 0, + 0 + ], + [ + 0, + 100, + 1071, + 4, + 3, + 1, + 8, + 0, + 0, + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 13, + 0, + 0, + 0 + ], + [ + 0, + 40, + 0, + 0, + 44, + 0, + 75, + 15, + 15, + 0, + 0, + 6491, + 0, + 0, + 15, + 0, + 45, + 0, + 2, + 0 + ], + [ + 0, + 209, + 56, + 222, + 0, + 0, + 12, + 669, + 409, + 3172, + 5, + 171, + 764, + 99, + 69, + 71, + 7, + 3, + 108, + 0 + ], + [ + 0, + 30, + 28, + 53, + 0, + 0, + 49, + 94, + 53, + 34, + 0, + 18, + 330, + 99, + 0, + 1, + 7, + 0, + 0, + 0 + ], + [ + 0, + 886, + 22, + 43, + 0, + 0, + 0, + 40, + 529, + 0, + 0, + 62, + 0, + 0, + 1816, + 0, + 106, + 0, + 0, + 0 + ], + [ + 0, + 56, + 2, + 88, + 0, + 1, + 0, + 0, + 0, + 42, + 0, + 0, + 0, + 0, + 0, + 1716, + 0, + 4, + 0, + 0 + ], + [ + 0, + 51, + 0, + 8, + 0, + 0, + 0, + 52, + 727, + 0, + 0, + 23, + 0, + 0, + 222, + 1, + 1745, + 0, + 0, + 0 + ], + [ + 0, + 152, + 631, + 110, + 17, + 335, + 0, + 0, + 0, + 41, + 8, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 0, + 0 + ], + [ + 0, + 37, + 7, + 345, + 0, + 0, + 1, + 196, + 40, + 0, + 0, + 2, + 136, + 0, + 79, + 33, + 68, + 0, + 582, + 0 + ], + [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ] + ] + } + }, + { + "mode": "replace", + "alpha": 0.1, + "metrics": { + "miou": 0.5180305111390306, + "oa": 0.7881984983022889, + "macro_f1": 0.6315239655756552, + "kappa": 0.7647124591036658, + "per_class_iou": [ + 0.786045026345202, + 0.801616957673755, + 0.8031203566121843, + 0.5486205336951605, + 0.8993863049095607, + 0.5559875583203733, + 0.6289709682322542, + 0.6905438098243399, + 0.38863892013498313, + 0.14329643296432965, + 0.8477414330218068, + 0.1943744752308984, + 0.11217641418983701, + 0.3350659736105558, + 0.8354312354312354, + 0.510632183908046, + 0.019716574245224893, + 0.2231840421528039 + ], + "confusion_matrix": [ + [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + [ + 0, + 14769, + 116, + 49, + 41, + 14, + 47, + 5, + 490, + 0, + 3, + 204, + 82, + 3, + 688, + 22, + 237, + 5, + 5, + 0 + ], + [ + 0, + 109, + 11799, + 82, + 7, + 17, + 58, + 3, + 0, + 19, + 55, + 187, + 20, + 3, + 98, + 0, + 8, + 4, + 8, + 0 + ], + [ + 0, + 161, + 126, + 11891, + 18, + 10, + 3, + 209, + 0, + 32, + 3, + 0, + 2, + 6, + 186, + 127, + 36, + 0, + 1058, + 0 + ], + [ + 0, + 21, + 421, + 39, + 1213, + 47, + 5, + 0, + 0, + 0, + 248, + 0, + 9, + 8, + 0, + 0, + 19, + 13, + 4, + 0 + ], + [ + 0, + 70, + 11, + 27, + 0, + 5569, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 18, + 7, + 0, + 87, + 0, + 0 + ], + [ + 0, + 65, + 72, + 4, + 14, + 1, + 1430, + 24, + 236, + 0, + 2, + 279, + 0, + 0, + 88, + 0, + 4, + 189, + 0, + 0 + ], + [ + 0, + 5, + 1, + 10, + 0, + 0, + 14, + 4138, + 341, + 113, + 0, + 10, + 647, + 2, + 77, + 3, + 3, + 0, + 15, + 0 + ], + [ + 0, + 24, + 0, + 0, + 0, + 0, + 0, + 0, + 6565, + 0, + 0, + 8, + 0, + 0, + 0, + 0, + 1, + 0, + 0, + 0 + ], + [ + 0, + 5, + 21, + 4, + 0, + 0, + 0, + 18, + 0, + 2073, + 0, + 0, + 24, + 18, + 3, + 0, + 0, + 0, + 0, + 0 + ], + [ + 0, + 28, + 893, + 0, + 2, + 0, + 2, + 0, + 0, + 5, + 233, + 0, + 0, + 0, + 5, + 0, + 31, + 3, + 0, + 0 + ], + [ + 0, + 14, + 1, + 0, + 66, + 0, + 25, + 5, + 11, + 0, + 0, + 6531, + 0, + 0, + 20, + 0, + 62, + 0, + 7, + 0 + ], + [ + 0, + 120, + 22, + 141, + 1, + 4, + 2, + 454, + 492, + 2881, + 0, + 111, + 1389, + 207, + 153, + 18, + 8, + 10, + 33, + 0 + ], + [ + 0, + 2, + 46, + 49, + 0, + 3, + 0, + 195, + 7, + 40, + 1, + 91, + 219, + 117, + 16, + 4, + 5, + 0, + 1, + 0 + ], + [ + 0, + 1038, + 18, + 38, + 0, + 2, + 7, + 54, + 422, + 0, + 0, + 60, + 6, + 0, + 1676, + 0, + 166, + 17, + 0, + 0 + ], + [ + 0, + 25, + 10, + 31, + 7, + 6, + 0, + 1, + 0, + 36, + 0, + 0, + 0, + 0, + 0, + 1792, + 1, + 0, + 0, + 0 + ], + [ + 0, + 55, + 0, + 6, + 0, + 0, + 0, + 39, + 910, + 0, + 0, + 7, + 0, + 0, + 35, + 0, + 1777, + 0, + 0, + 0 + ], + [ + 0, + 252, + 484, + 35, + 8, + 299, + 0, + 0, + 0, + 42, + 112, + 0, + 0, + 0, + 0, + 4, + 27, + 32, + 0, + 0 + ], + [ + 0, + 15, + 0, + 423, + 0, + 0, + 1, + 193, + 0, + 0, + 0, + 5, + 91, + 0, + 111, + 51, + 43, + 0, + 593, + 0 + ], + [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ] + ] + } + }, + { + "mode": "replace", + "alpha": 0.25, + "metrics": { + "miou": 0.513433115030566, + "oa": 0.7888518760510277, + "macro_f1": 0.6271212239575974, + "kappa": 0.7651433110880229, + "per_class_iou": [ + 0.7899458541246417, + 0.7809391165937127, + 0.810261569416499, + 0.5169059749884206, + 0.8984009045388467, + 0.5137224584460766, + 0.6436677258284158, + 0.6875655273642273, + 0.3932184338703634, + 0.12100139082058414, + 0.8414006179196705, + 0.18415083640487667, + 0.11363636363636363, + 0.3460534243824061, + 0.8284518828451883, + 0.5168473483738646, + 0.014823965410747375, + 0.2408026755852843 + ], + "confusion_matrix": [ + [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + [ + 0, + 14881, + 109, + 44, + 18, + 14, + 41, + 3, + 479, + 0, + 3, + 182, + 79, + 3, + 676, + 23, + 212, + 5, + 8, + 0 + ], + [ + 0, + 141, + 11775, + 86, + 3, + 19, + 66, + 2, + 0, + 16, + 44, + 186, + 16, + 1, + 100, + 0, + 10, + 4, + 8, + 0 + ], + [ + 0, + 153, + 143, + 12081, + 12, + 8, + 3, + 240, + 0, + 33, + 2, + 0, + 2, + 5, + 199, + 144, + 31, + 0, + 812, + 0 + ], + [ + 0, + 19, + 670, + 55, + 1116, + 50, + 0, + 0, + 0, + 0, + 104, + 0, + 9, + 8, + 0, + 0, + 8, + 6, + 2, + 0 + ], + [ + 0, + 74, + 23, + 36, + 0, + 5562, + 0, + 0, + 0, + 0, + 0, + 5, + 0, + 0, + 10, + 5, + 0, + 74, + 0, + 0 + ], + [ + 0, + 63, + 71, + 4, + 10, + 0, + 1329, + 19, + 247, + 0, + 1, + 349, + 0, + 0, + 99, + 0, + 4, + 212, + 0, + 0 + ], + [ + 0, + 10, + 0, + 40, + 0, + 0, + 12, + 4254, + 357, + 101, + 0, + 10, + 527, + 0, + 58, + 2, + 2, + 0, + 6, + 0 + ], + [ + 0, + 30, + 0, + 0, + 0, + 0, + 0, + 0, + 6558, + 0, + 0, + 9, + 0, + 0, + 0, + 0, + 1, + 0, + 0, + 0 + ], + [ + 0, + 4, + 19, + 4, + 0, + 0, + 0, + 11, + 0, + 2099, + 0, + 0, + 22, + 7, + 0, + 0, + 0, + 0, + 0, + 0 + ], + [ + 0, + 37, + 945, + 0, + 2, + 1, + 4, + 0, + 0, + 3, + 174, + 0, + 0, + 0, + 5, + 0, + 31, + 0, + 0, + 0 + ], + [ + 0, + 18, + 0, + 0, + 60, + 0, + 31, + 5, + 11, + 0, + 0, + 6536, + 0, + 0, + 20, + 0, + 58, + 0, + 3, + 0 + ], + [ + 0, + 135, + 22, + 170, + 0, + 2, + 1, + 493, + 521, + 2897, + 1, + 136, + 1299, + 192, + 126, + 10, + 5, + 9, + 27, + 0 + ], + [ + 0, + 3, + 39, + 51, + 0, + 0, + 16, + 180, + 12, + 43, + 0, + 75, + 244, + 115, + 9, + 2, + 7, + 0, + 0, + 0 + ], + [ + 0, + 1025, + 19, + 40, + 0, + 2, + 5, + 49, + 416, + 0, + 0, + 60, + 3, + 0, + 1723, + 0, + 148, + 14, + 0, + 0 + ], + [ + 0, + 28, + 8, + 46, + 3, + 6, + 0, + 0, + 0, + 36, + 0, + 0, + 0, + 0, + 0, + 1782, + 0, + 0, + 0, + 0 + ], + [ + 0, + 53, + 0, + 6, + 0, + 0, + 0, + 34, + 892, + 0, + 0, + 11, + 0, + 0, + 69, + 0, + 1764, + 0, + 0, + 0 + ], + [ + 0, + 246, + 533, + 39, + 4, + 300, + 0, + 0, + 0, + 43, + 81, + 0, + 0, + 0, + 0, + 4, + 21, + 24, + 0, + 0 + ], + [ + 0, + 19, + 0, + 421, + 0, + 0, + 0, + 194, + 5, + 0, + 0, + 3, + 106, + 0, + 104, + 52, + 46, + 0, + 576, + 0 + ], + [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ] + ] + } + }, + { + "mode": "replace", + "alpha": 0.5, + "metrics": { + "miou": 0.49365846952784387, + "oa": 0.781782543031887, + "macro_f1": 0.6037256549965879, + "kappa": 0.7568655063464111, + "per_class_iou": [ + 0.7905167428901856, + 0.7523367498227294, + 0.8084616396894329, + 0.4831992427827733, + 0.8915003219575016, + 0.4319526627218935, + 0.6357536901744446, + 0.6867964229352972, + 0.3830446672743847, + 0.014139827179890024, + 0.8288886053336736, + 0.12961642663624698, + 0.1095890410958904, + 0.36689488521949254, + 0.7788245850157021, + 0.5209906372697071, + 0.0, + 0.2733463035019455 + ], + "confusion_matrix": [ + [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + [ + 0, + 15038, + 104, + 43, + 2, + 13, + 16, + 0, + 447, + 0, + 1, + 129, + 82, + 2, + 668, + 28, + 199, + 1, + 7, + 0 + ], + [ + 0, + 219, + 11671, + 98, + 19, + 31, + 92, + 0, + 1, + 11, + 22, + 189, + 5, + 1, + 93, + 0, + 16, + 5, + 4, + 0 + ], + [ + 0, + 172, + 201, + 12287, + 14, + 6, + 2, + 271, + 6, + 34, + 1, + 0, + 2, + 4, + 220, + 179, + 18, + 0, + 451, + 0 + ], + [ + 0, + 30, + 799, + 127, + 1021, + 50, + 0, + 0, + 0, + 0, + 9, + 0, + 3, + 4, + 0, + 0, + 0, + 4, + 0, + 0 + ], + [ + 0, + 63, + 67, + 69, + 1, + 5538, + 0, + 0, + 0, + 0, + 0, + 14, + 0, + 0, + 2, + 2, + 0, + 33, + 0, + 0 + ], + [ + 0, + 67, + 66, + 9, + 5, + 0, + 1168, + 12, + 219, + 0, + 1, + 439, + 0, + 0, + 91, + 31, + 4, + 296, + 0, + 0 + ], + [ + 0, + 20, + 0, + 179, + 0, + 0, + 10, + 4264, + 393, + 13, + 0, + 30, + 428, + 0, + 33, + 3, + 1, + 0, + 5, + 0 + ], + [ + 0, + 57, + 0, + 0, + 0, + 0, + 0, + 0, + 6528, + 0, + 0, + 8, + 0, + 0, + 3, + 0, + 2, + 0, + 0, + 0 + ], + [ + 0, + 16, + 15, + 10, + 0, + 0, + 0, + 6, + 0, + 2101, + 0, + 0, + 7, + 5, + 0, + 6, + 0, + 0, + 0, + 0 + ], + [ + 0, + 77, + 1067, + 1, + 2, + 1, + 8, + 0, + 0, + 1, + 18, + 0, + 0, + 0, + 2, + 0, + 25, + 0, + 0, + 0 + ], + [ + 0, + 31, + 0, + 0, + 16, + 0, + 109, + 13, + 13, + 0, + 0, + 6496, + 0, + 0, + 14, + 0, + 48, + 0, + 2, + 0 + ], + [ + 0, + 208, + 41, + 181, + 0, + 0, + 16, + 616, + 456, + 3142, + 2, + 172, + 909, + 137, + 70, + 29, + 2, + 4, + 61, + 0 + ], + [ + 0, + 19, + 38, + 45, + 0, + 0, + 41, + 112, + 51, + 39, + 0, + 29, + 311, + 104, + 1, + 0, + 6, + 0, + 0, + 0 + ], + [ + 0, + 921, + 21, + 45, + 0, + 0, + 1, + 42, + 493, + 0, + 0, + 62, + 0, + 0, + 1822, + 0, + 97, + 0, + 0, + 0 + ], + [ + 0, + 46, + 6, + 78, + 0, + 3, + 0, + 0, + 0, + 38, + 0, + 0, + 0, + 0, + 0, + 1736, + 0, + 2, + 0, + 0 + ], + [ + 0, + 52, + 0, + 6, + 0, + 0, + 0, + 47, + 792, + 0, + 0, + 21, + 0, + 0, + 184, + 2, + 1725, + 0, + 0, + 0 + ], + [ + 0, + 212, + 604, + 65, + 7, + 319, + 0, + 0, + 0, + 41, + 35, + 0, + 0, + 0, + 0, + 0, + 12, + 0, + 0, + 0 + ], + [ + 0, + 33, + 7, + 374, + 0, + 0, + 1, + 209, + 36, + 0, + 0, + 2, + 129, + 0, + 81, + 40, + 52, + 0, + 562, + 0 + ], + [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ] + ] + } + } + ], + "reference_val_miou": 0.5256398451814701, + "delta_val_pp": 0.0, + "patch_bootstrap_delta_interval_pp": [ + 0.0, + 0.0 + ], + "bootstrap_caveat": "descriptive, after validation selection; not an independent significance test", + "selection_split": "validation", + "test_used_for_selection": false + }, + "test_policy": "exploratory all-variants sweep explicitly requested by user; no test retuning", + "patches": 482 + }, + { + "kind": "temporal_cnv2_k15", + "metrics": { + "miou": 0.49128209280490176, + "oa": 0.8100923124151438, + "macro_f1": 0.6196963941748813, + "kappa": 0.762845594592004, + "per_class_iou": [ + 0.8035495869563755, + 0.7165434811127498, + 0.8739399361752177, + 0.44392131243558625, + 0.8659069284663956, + 0.37861213646964337, + 0.45379466796655293, + 0.619040791160891, + 0.793483745404743, + 0.0634838765137595, + 0.5522520139034603, + 0.3219405605446301, + 0.4398155036452909, + 0.2570005728643786, + 0.6159594372964358, + 0.28549862252480335, + 0.08361236758111575, + 0.27472212946620234 + ], + "confusion_matrix": [ + [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + [ + 0, + 1313266, + 6858, + 9002, + 710, + 770, + 790, + 2286, + 18766, + 564, + 303, + 4220, + 5896, + 364, + 28272, + 1177, + 71276, + 884, + 599, + 0 + ], + [ + 0, + 13918, + 497044, + 5023, + 3582, + 1218, + 1533, + 165, + 711, + 518, + 17451, + 15176, + 410, + 119, + 962, + 177, + 653, + 1985, + 35, + 0 + ], + [ + 0, + 18634, + 2876, + 642740, + 238, + 960, + 151, + 3094, + 886, + 3534, + 144, + 18, + 1849, + 157, + 2649, + 4974, + 536, + 106, + 4743, + 0 + ], + [ + 0, + 10215, + 50536, + 1894, + 78824, + 1654, + 4027, + 54, + 197, + 59, + 6814, + 4540, + 276, + 374, + 493, + 87, + 239, + 3106, + 3, + 0 + ], + [ + 0, + 2896, + 1272, + 872, + 327, + 120129, + 228, + 100, + 17, + 212, + 587, + 196, + 19, + 31, + 1446, + 35, + 85, + 667, + 0, + 0 + ], + [ + 0, + 4143, + 8284, + 694, + 3203, + 338, + 24514, + 168, + 884, + 120, + 2427, + 5503, + 132, + 463, + 1850, + 345, + 177, + 517, + 0, + 0 + ], + [ + 0, + 1640, + 166, + 4210, + 18, + 251, + 103, + 48409, + 7590, + 3676, + 54, + 364, + 1015, + 1181, + 2360, + 9230, + 595, + 120, + 951, + 0 + ], + [ + 0, + 19671, + 119, + 4656, + 0, + 0, + 13, + 1279, + 151106, + 0, + 1, + 345, + 728, + 18, + 375, + 262, + 8801, + 0, + 103, + 0 + ], + [ + 0, + 677, + 209, + 1255, + 29, + 133, + 377, + 558, + 117, + 66048, + 1, + 30, + 738, + 20, + 420, + 357, + 68, + 1, + 9, + 0 + ], + [ + 0, + 3257, + 45938, + 414, + 1614, + 280, + 153, + 7, + 11, + 1, + 5908, + 9, + 5, + 0, + 273, + 9, + 76, + 407, + 0, + 0 + ], + [ + 0, + 1356, + 2451, + 19, + 0, + 1, + 1721, + 194, + 1313, + 0, + 97, + 60534, + 31, + 0, + 1427, + 0, + 706, + 3, + 107, + 0 + ], + [ + 0, + 3300, + 123, + 5145, + 42, + 7, + 592, + 10001, + 4048, + 1883, + 61, + 4049, + 25489, + 599, + 1359, + 594, + 2103, + 172, + 1148, + 0 + ], + [ + 0, + 636, + 173, + 1475, + 6, + 45, + 100, + 3044, + 586, + 660, + 5, + 424, + 2405, + 11824, + 351, + 393, + 431, + 6, + 49, + 0 + ], + [ + 0, + 60037, + 1053, + 1219, + 687, + 325, + 871, + 1092, + 7323, + 384, + 613, + 1164, + 441, + 190, + 45311, + 322, + 6349, + 306, + 107, + 0 + ], + [ + 0, + 1482, + 160, + 6926, + 71, + 132, + 2, + 647, + 13, + 400, + 6, + 2186, + 291, + 3, + 589, + 53331, + 52, + 11, + 2014, + 0 + ], + [ + 0, + 12879, + 318, + 790, + 1, + 0, + 41, + 439, + 10525, + 48, + 29, + 1318, + 889, + 77, + 848, + 18, + 48603, + 3, + 33, + 0 + ], + [ + 0, + 8930, + 12411, + 1238, + 3416, + 3499, + 248, + 33, + 18, + 18, + 6107, + 1, + 603, + 643, + 1237, + 63, + 33, + 4270, + 1, + 0 + ], + [ + 0, + 4657, + 42, + 2330, + 227, + 0, + 35, + 1582, + 3615, + 114, + 1, + 110, + 2730, + 32, + 3602, + 223, + 1200, + 6, + 11518, + 0 + ], + [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ] + ] + }, + "baseline": { + "miou": 0.49455547330691263, + "oa": 0.8109266736579659, + "macro_f1": 0.6234136021853756, + "kappa": 0.7642966739749818, + "per_class_iou": [ + 0.8061330522981268, + 0.7198486670090578, + 0.8757351877577422, + 0.46213693236161063, + 0.8703389461776095, + 0.38416520104311963, + 0.4490553274645572, + 0.6216216216216216, + 0.7901944411308601, + 0.07114146695276376, + 0.5587868716244287, + 0.3175281724644782, + 0.4373326486446833, + 0.2655897022970766, + 0.6168043633350977, + 0.28662647573048294, + 0.0918118400487935, + 0.27714760156231727 + ], + "confusion_matrix": [ + [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + [ + 0, + 1311069, + 6756, + 8420, + 815, + 744, + 883, + 2246, + 19285, + 602, + 381, + 3742, + 6998, + 405, + 29504, + 1126, + 71312, + 1029, + 686, + 0 + ], + [ + 0, + 12671, + 493367, + 5115, + 3930, + 1130, + 1764, + 172, + 746, + 546, + 21217, + 15339, + 437, + 131, + 1045, + 166, + 699, + 2161, + 44, + 0 + ], + [ + 0, + 17785, + 2752, + 641744, + 302, + 960, + 172, + 3539, + 862, + 3810, + 169, + 19, + 2132, + 202, + 3012, + 4846, + 607, + 129, + 5247, + 0 + ], + [ + 0, + 9412, + 46049, + 1786, + 82625, + 1310, + 4247, + 55, + 196, + 62, + 7994, + 4414, + 287, + 376, + 482, + 80, + 252, + 3761, + 4, + 0 + ], + [ + 0, + 2675, + 1166, + 868, + 380, + 120018, + 262, + 124, + 19, + 220, + 688, + 194, + 22, + 35, + 1476, + 29, + 106, + 837, + 0, + 0 + ], + [ + 0, + 4040, + 7283, + 711, + 3621, + 289, + 25338, + 175, + 883, + 118, + 2677, + 5012, + 146, + 454, + 1986, + 330, + 163, + 536, + 0, + 0 + ], + [ + 0, + 1538, + 141, + 3611, + 17, + 249, + 89, + 47797, + 7620, + 3775, + 49, + 378, + 1239, + 1298, + 2624, + 9685, + 632, + 168, + 1023, + 0 + ], + [ + 0, + 18456, + 124, + 4622, + 0, + 0, + 17, + 1317, + 151754, + 0, + 1, + 338, + 854, + 23, + 403, + 328, + 9076, + 0, + 164, + 0 + ], + [ + 0, + 482, + 193, + 1058, + 35, + 123, + 379, + 620, + 116, + 66242, + 0, + 28, + 795, + 26, + 446, + 416, + 71, + 2, + 15, + 0 + ], + [ + 0, + 3092, + 44739, + 412, + 1763, + 216, + 156, + 5, + 11, + 5, + 7062, + 21, + 6, + 0, + 299, + 8, + 83, + 484, + 0, + 0 + ], + [ + 0, + 1322, + 2401, + 20, + 0, + 0, + 1773, + 184, + 1235, + 0, + 143, + 60525, + 38, + 0, + 1508, + 0, + 693, + 4, + 114, + 0 + ], + [ + 0, + 3196, + 123, + 4634, + 46, + 7, + 910, + 9697, + 3978, + 1955, + 63, + 3941, + 25923, + 639, + 1593, + 517, + 2180, + 171, + 1142, + 0 + ], + [ + 0, + 589, + 140, + 1406, + 6, + 31, + 92, + 2996, + 519, + 719, + 7, + 314, + 2523, + 11923, + 406, + 408, + 473, + 9, + 52, + 0 + ], + [ + 0, + 57524, + 1032, + 1194, + 723, + 333, + 1050, + 1045, + 7046, + 405, + 646, + 1114, + 551, + 254, + 47497, + 318, + 6554, + 377, + 131, + 0 + ], + [ + 0, + 1525, + 170, + 6485, + 90, + 129, + 5, + 653, + 17, + 376, + 8, + 2255, + 478, + 3, + 400, + 53604, + 52, + 13, + 2053, + 0 + ], + [ + 0, + 12728, + 331, + 778, + 2, + 0, + 34, + 422, + 10506, + 48, + 33, + 1127, + 965, + 73, + 710, + 23, + 49018, + 5, + 56, + 0 + ], + [ + 0, + 8636, + 11253, + 1214, + 3447, + 3258, + 322, + 34, + 20, + 20, + 6827, + 1, + 610, + 689, + 1495, + 80, + 44, + 4817, + 2, + 0 + ], + [ + 0, + 4694, + 43, + 2183, + 220, + 0, + 39, + 1222, + 3590, + 122, + 2, + 118, + 2844, + 42, + 3653, + 230, + 1161, + 11, + 11850, + 0 + ], + [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ] + ] + }, + "standalone": { + "miou": 0.36674044182479976, + "oa": 0.7284789077012174, + "macro_f1": 0.4932786450060771, + "kappa": 0.6598032103400558, + "per_class_iou": [ + 0.7226189005846863, + 0.6066836848291539, + 0.7223382537883204, + 0.14709871975964664, + 0.6186341500245385, + 0.18467326063065348, + 0.3961474319020265, + 0.546115537447612, + 0.680385343111188, + 0.024946767324816106, + 0.41277388010803384, + 0.24034106431621782, + 0.2981601947559564, + 0.16112973419566692, + 0.45261058493674666, + 0.2374342993785116, + 0.012619495220191193, + 0.13661665053242983 + ], + "confusion_matrix": [ + [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + [ + 0, + 1240358, + 21019, + 44275, + 1899, + 9652, + 2145, + 4161, + 18600, + 960, + 701, + 10199, + 1256, + 191, + 35811, + 3395, + 69246, + 1421, + 714, + 0 + ], + [ + 0, + 35977, + 468668, + 5146, + 6505, + 10034, + 2757, + 410, + 761, + 226, + 13780, + 12342, + 122, + 495, + 699, + 978, + 1062, + 695, + 23, + 0 + ], + [ + 0, + 44478, + 12442, + 582417, + 208, + 2966, + 175, + 4744, + 1709, + 5734, + 369, + 77, + 1772, + 105, + 4987, + 21325, + 1295, + 568, + 2918, + 0 + ], + [ + 0, + 20333, + 80718, + 2791, + 26243, + 15741, + 2411, + 59, + 269, + 46, + 4149, + 6779, + 176, + 59, + 1324, + 909, + 488, + 895, + 2, + 0 + ], + [ + 0, + 6029, + 3590, + 1312, + 265, + 114709, + 147, + 78, + 83, + 177, + 518, + 329, + 0, + 64, + 938, + 441, + 25, + 414, + 0, + 0 + ], + [ + 0, + 4584, + 16444, + 775, + 1626, + 2769, + 13107, + 565, + 507, + 371, + 1330, + 7554, + 254, + 435, + 1290, + 191, + 524, + 1436, + 0, + 0 + ], + [ + 0, + 3073, + 2481, + 13178, + 62, + 1023, + 240, + 47033, + 6568, + 1092, + 269, + 430, + 980, + 255, + 1197, + 2475, + 430, + 536, + 611, + 0 + ], + [ + 0, + 26837, + 635, + 8629, + 1, + 5, + 57, + 2364, + 135648, + 4, + 6, + 1097, + 327, + 5, + 2478, + 217, + 7923, + 0, + 1244, + 0 + ], + [ + 0, + 5502, + 328, + 5420, + 34, + 1863, + 9, + 375, + 171, + 55018, + 12, + 118, + 686, + 86, + 341, + 471, + 406, + 202, + 5, + 0 + ], + [ + 0, + 6100, + 44064, + 557, + 1062, + 2924, + 434, + 48, + 34, + 0, + 2062, + 356, + 9, + 8, + 182, + 266, + 43, + 213, + 0, + 0 + ], + [ + 0, + 1483, + 3749, + 115, + 118, + 31, + 6898, + 292, + 2306, + 0, + 344, + 51657, + 126, + 295, + 1133, + 3, + 1373, + 4, + 33, + 0 + ], + [ + 0, + 4221, + 738, + 9422, + 18, + 690, + 158, + 11418, + 4632, + 591, + 139, + 3900, + 16715, + 254, + 2122, + 2502, + 1263, + 133, + 1799, + 0 + ], + [ + 0, + 1717, + 3130, + 2446, + 57, + 432, + 586, + 1295, + 900, + 202, + 87, + 1641, + 1242, + 7471, + 390, + 400, + 213, + 385, + 19, + 0 + ], + [ + 0, + 64410, + 2258, + 2319, + 415, + 971, + 877, + 1350, + 10261, + 209, + 351, + 3599, + 279, + 105, + 30619, + 1210, + 8155, + 222, + 184, + 0 + ], + [ + 0, + 1246, + 309, + 13348, + 1, + 487, + 2, + 1054, + 64, + 61, + 12, + 288, + 168, + 12, + 2523, + 46976, + 224, + 109, + 1432, + 0 + ], + [ + 0, + 12702, + 354, + 3073, + 55, + 40, + 220, + 1407, + 9427, + 48, + 21, + 6030, + 340, + 47, + 2086, + 86, + 40611, + 0, + 312, + 0 + ], + [ + 0, + 8516, + 19469, + 1642, + 2648, + 6161, + 78, + 72, + 76, + 87, + 2199, + 8, + 228, + 28, + 866, + 23, + 37, + 631, + 0, + 0 + ], + [ + 0, + 3265, + 100, + 3557, + 38, + 515, + 18, + 7101, + 4542, + 8, + 7, + 439, + 867, + 0, + 3866, + 581, + 1475, + 0, + 5645, + 0 + ], + [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ] + ] + }, + "delta_test_pp": -0.32733805020108697, + "standalone_delta_test_pp": -12.781503148211288, + "seconds": 134.20679651293904, + "validation_selection": { + "kind": "temporal_cnv2_k15", + "seed": 3407, + "checkpoint_epoch": 79, + "standalone": { + "miou": 0.3931897486511736, + "oa": 0.7162733903878493, + "macro_f1": 0.5039312548702903, + "kappa": 0.6838173350265685, + "per_class_iou": [ + 0.7241650500707807, + 0.6381049529638445, + 0.7096327513546057, + 0.2152230971128609, + 0.8550588235294118, + 0.38052095130237823, + 0.5012943308309604, + 0.7191110133127957, + 0.39487179487179486, + 0.0, + 0.6215610606249222, + 0.03739967897271268, + 0.001183431952662722, + 0.322484577749415, + 0.4317226890756303, + 0.40367393800229623, + 0.0, + 0.12140733399405351 + ], + "confusion_matrix": [ + [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + [ + 0, + 13812, + 441, + 335, + 6, + 57, + 321, + 14, + 318, + 1, + 1, + 233, + 15, + 0, + 794, + 76, + 335, + 8, + 13, + 0 + ], + [ + 0, + 417, + 11260, + 114, + 210, + 52, + 149, + 3, + 4, + 8, + 10, + 227, + 8, + 0, + 3, + 1, + 10, + 1, + 0, + 0 + ], + [ + 0, + 144, + 303, + 11787, + 1, + 3, + 8, + 596, + 6, + 3, + 0, + 1, + 16, + 0, + 30, + 573, + 127, + 0, + 270, + 0 + ], + [ + 0, + 58, + 1403, + 47, + 492, + 38, + 0, + 0, + 0, + 0, + 1, + 1, + 7, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + [ + 0, + 102, + 141, + 75, + 0, + 5451, + 0, + 0, + 0, + 0, + 0, + 18, + 0, + 0, + 0, + 0, + 2, + 0, + 0, + 0 + ], + [ + 0, + 87, + 106, + 4, + 11, + 148, + 1680, + 194, + 25, + 0, + 4, + 136, + 0, + 0, + 5, + 0, + 8, + 0, + 0, + 0 + ], + [ + 0, + 9, + 322, + 230, + 0, + 0, + 18, + 3873, + 316, + 0, + 0, + 14, + 28, + 0, + 1, + 4, + 563, + 0, + 1, + 0 + ], + [ + 0, + 18, + 2, + 0, + 0, + 0, + 3, + 5, + 6536, + 0, + 0, + 27, + 0, + 0, + 7, + 0, + 0, + 0, + 0, + 0 + ], + [ + 0, + 19, + 13, + 76, + 0, + 30, + 0, + 0, + 0, + 2002, + 0, + 0, + 1, + 0, + 0, + 25, + 0, + 0, + 0, + 0 + ], + [ + 0, + 90, + 1087, + 21, + 0, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 3, + 0, + 0, + 0 + ], + [ + 0, + 29, + 42, + 0, + 0, + 0, + 1333, + 6, + 199, + 0, + 0, + 4993, + 0, + 49, + 7, + 0, + 84, + 0, + 0, + 0 + ], + [ + 0, + 253, + 222, + 632, + 0, + 52, + 0, + 681, + 386, + 2864, + 0, + 275, + 233, + 0, + 45, + 253, + 5, + 0, + 145, + 0 + ], + [ + 0, + 12, + 129, + 211, + 10, + 0, + 1, + 25, + 87, + 26, + 0, + 7, + 103, + 1, + 163, + 12, + 9, + 0, + 0, + 0 + ], + [ + 0, + 843, + 23, + 18, + 1, + 0, + 172, + 89, + 350, + 0, + 0, + 207, + 0, + 0, + 1516, + 0, + 281, + 0, + 4, + 0 + ], + [ + 0, + 70, + 1, + 470, + 0, + 87, + 0, + 0, + 0, + 2, + 0, + 0, + 0, + 0, + 2, + 1233, + 10, + 0, + 34, + 0 + ], + [ + 0, + 28, + 1, + 31, + 0, + 0, + 2, + 67, + 723, + 0, + 0, + 126, + 0, + 0, + 68, + 0, + 1758, + 0, + 25, + 0 + ], + [ + 0, + 101, + 933, + 143, + 0, + 118, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + [ + 0, + 13, + 0, + 335, + 0, + 0, + 0, + 667, + 77, + 0, + 0, + 19, + 6, + 0, + 72, + 3, + 89, + 0, + 245, + 0 + ], + [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ] + ] + }, + "chosen": { + "mode": "add", + "alpha": 0.1, + "metrics": { + "miou": 0.5259525387134086, + "oa": 0.7969708979124045, + "macro_f1": 0.6390991114711666, + "kappa": 0.7740240995256192, + "per_class_iou": [ + 0.7918943292133044, + 0.7796137766275134, + 0.8439109208854411, + 0.503158844765343, + 0.8964626070101761, + 0.6240601503759399, + 0.6614850588590402, + 0.6899053627760252, + 0.3884945834889802, + 0.1364329268292683, + 0.8610781600105444, + 0.1527777777777778, + 0.1535393818544367, + 0.3614328614328614, + 0.8037087290818634, + 0.507803790412486, + 0.006532066508313539, + 0.3048543689320388 + ], + "confusion_matrix": [ + [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + [ + 0, + 14928, + 103, + 52, + 4, + 11, + 22, + 0, + 476, + 0, + 3, + 205, + 70, + 2, + 589, + 20, + 286, + 4, + 5, + 0 + ], + [ + 0, + 185, + 11748, + 88, + 26, + 17, + 58, + 3, + 0, + 19, + 20, + 186, + 12, + 1, + 97, + 0, + 8, + 1, + 8, + 0 + ], + [ + 0, + 154, + 137, + 12619, + 9, + 9, + 2, + 227, + 0, + 29, + 0, + 0, + 2, + 5, + 61, + 145, + 34, + 10, + 425, + 0 + ], + [ + 0, + 22, + 635, + 27, + 1115, + 51, + 0, + 0, + 0, + 0, + 67, + 0, + 19, + 9, + 0, + 0, + 5, + 94, + 3, + 0 + ], + [ + 0, + 86, + 11, + 25, + 0, + 5550, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 19, + 7, + 0, + 91, + 0, + 0 + ], + [ + 0, + 86, + 67, + 4, + 5, + 0, + 1577, + 87, + 198, + 0, + 0, + 134, + 0, + 0, + 72, + 0, + 4, + 174, + 0, + 0 + ], + [ + 0, + 7, + 0, + 20, + 0, + 0, + 13, + 4383, + 415, + 54, + 0, + 6, + 447, + 0, + 27, + 1, + 4, + 0, + 2, + 0 + ], + [ + 0, + 28, + 0, + 0, + 0, + 0, + 0, + 0, + 6561, + 0, + 0, + 9, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + [ + 0, + 5, + 20, + 7, + 0, + 0, + 0, + 22, + 0, + 2080, + 0, + 0, + 17, + 10, + 3, + 2, + 0, + 0, + 0, + 0 + ], + [ + 0, + 38, + 934, + 0, + 12, + 0, + 0, + 0, + 0, + 2, + 179, + 0, + 0, + 0, + 5, + 0, + 30, + 2, + 0, + 0 + ], + [ + 0, + 14, + 0, + 0, + 88, + 0, + 12, + 6, + 11, + 0, + 0, + 6533, + 0, + 0, + 11, + 0, + 62, + 0, + 5, + 0 + ], + [ + 0, + 107, + 22, + 248, + 0, + 3, + 6, + 474, + 525, + 2970, + 6, + 154, + 1056, + 180, + 114, + 78, + 9, + 8, + 86, + 0 + ], + [ + 0, + 1, + 53, + 64, + 0, + 0, + 0, + 177, + 10, + 37, + 1, + 67, + 208, + 154, + 14, + 2, + 8, + 0, + 0, + 0 + ], + [ + 0, + 1034, + 18, + 36, + 0, + 0, + 6, + 44, + 395, + 0, + 0, + 60, + 0, + 0, + 1685, + 0, + 221, + 5, + 0, + 0 + ], + [ + 0, + 30, + 6, + 47, + 4, + 5, + 0, + 0, + 0, + 40, + 0, + 0, + 0, + 0, + 0, + 1777, + 0, + 0, + 0, + 0 + ], + [ + 0, + 51, + 0, + 8, + 0, + 0, + 0, + 17, + 875, + 0, + 0, + 15, + 0, + 0, + 41, + 0, + 1822, + 0, + 0, + 0 + ], + [ + 0, + 215, + 586, + 94, + 21, + 306, + 0, + 0, + 0, + 37, + 13, + 0, + 0, + 0, + 0, + 2, + 10, + 11, + 0, + 0 + ], + [ + 0, + 8, + 0, + 365, + 0, + 0, + 0, + 190, + 7, + 0, + 0, + 9, + 91, + 0, + 105, + 45, + 78, + 0, + 628, + 0 + ], + [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ] + ] + } + }, + "records": [ + { + "mode": "add", + "alpha": 0.0, + "metrics": { + "miou": 0.5256398451814701, + "oa": 0.7954606313128608, + "macro_f1": 0.6400266863319044, + "kappa": 0.7725060156424988, + "per_class_iou": [ + 0.7863696632193052, + 0.7940560621411685, + 0.8422681105804802, + 0.5216035634743875, + 0.8953563366655918, + 0.5666403785488959, + 0.6681021224238696, + 0.6854425749817118, + 0.3865969759193579, + 0.15913978494623657, + 0.8521227955584585, + 0.16817463736895016, + 0.15324165029469547, + 0.3526720731960907, + 0.8232323232323232, + 0.5073836723321259, + 0.010297482837528604, + 0.2888170055452865 + ], + "confusion_matrix": [ + [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + [ + 0, + 14827, + 104, + 46, + 8, + 16, + 20, + 1, + 480, + 0, + 3, + 211, + 80, + 3, + 659, + 16, + 296, + 4, + 6, + 0 + ], + [ + 0, + 160, + 11756, + 93, + 27, + 17, + 59, + 3, + 0, + 18, + 25, + 184, + 13, + 1, + 99, + 0, + 10, + 4, + 8, + 0 + ], + [ + 0, + 165, + 132, + 12522, + 19, + 10, + 2, + 144, + 0, + 31, + 1, + 0, + 2, + 6, + 113, + 137, + 34, + 11, + 539, + 0 + ], + [ + 0, + 23, + 477, + 28, + 1171, + 50, + 1, + 0, + 0, + 0, + 130, + 0, + 18, + 10, + 0, + 2, + 6, + 128, + 3, + 0 + ], + [ + 0, + 83, + 1, + 23, + 0, + 5553, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 19, + 8, + 1, + 101, + 0, + 0 + ], + [ + 0, + 96, + 76, + 5, + 7, + 0, + 1437, + 49, + 253, + 0, + 0, + 217, + 0, + 0, + 77, + 0, + 5, + 186, + 0, + 0 + ], + [ + 0, + 7, + 0, + 14, + 0, + 0, + 10, + 4344, + 415, + 65, + 0, + 10, + 472, + 0, + 33, + 1, + 4, + 0, + 4, + 0 + ], + [ + 0, + 29, + 0, + 0, + 0, + 0, + 0, + 0, + 6559, + 0, + 0, + 9, + 0, + 0, + 0, + 0, + 1, + 0, + 0, + 0 + ], + [ + 0, + 6, + 20, + 6, + 0, + 1, + 0, + 26, + 0, + 2071, + 0, + 0, + 16, + 14, + 5, + 1, + 0, + 0, + 0, + 0 + ], + [ + 0, + 34, + 886, + 0, + 14, + 0, + 2, + 0, + 0, + 5, + 222, + 0, + 0, + 0, + 5, + 0, + 30, + 4, + 0, + 0 + ], + [ + 0, + 17, + 0, + 0, + 91, + 0, + 14, + 5, + 10, + 0, + 0, + 6523, + 0, + 0, + 13, + 0, + 63, + 0, + 6, + 0 + ], + [ + 0, + 107, + 18, + 205, + 0, + 3, + 10, + 473, + 524, + 2954, + 6, + 129, + 1171, + 188, + 120, + 47, + 11, + 8, + 72, + 0 + ], + [ + 0, + 1, + 44, + 53, + 0, + 0, + 0, + 189, + 8, + 36, + 1, + 71, + 216, + 156, + 12, + 2, + 7, + 0, + 0, + 0 + ], + [ + 0, + 1027, + 18, + 38, + 0, + 0, + 10, + 43, + 402, + 0, + 0, + 58, + 0, + 0, + 1696, + 0, + 205, + 7, + 0, + 0 + ], + [ + 0, + 28, + 6, + 32, + 4, + 6, + 0, + 0, + 0, + 40, + 0, + 0, + 0, + 0, + 0, + 1793, + 0, + 0, + 0, + 0 + ], + [ + 0, + 51, + 0, + 8, + 0, + 0, + 0, + 19, + 875, + 0, + 0, + 14, + 0, + 0, + 41, + 0, + 1821, + 0, + 0, + 0 + ], + [ + 0, + 230, + 546, + 75, + 28, + 310, + 0, + 0, + 0, + 42, + 27, + 0, + 0, + 0, + 0, + 4, + 15, + 18, + 0, + 0 + ], + [ + 0, + 11, + 0, + 373, + 0, + 0, + 0, + 171, + 4, + 0, + 0, + 10, + 100, + 0, + 109, + 51, + 72, + 0, + 625, + 0 + ], + [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ] + ] + } + }, + { + "mode": "add", + "alpha": 0.1, + "metrics": { + "miou": 0.5259525387134086, + "oa": 0.7969708979124045, + "macro_f1": 0.6390991114711666, + "kappa": 0.7740240995256192, + "per_class_iou": [ + 0.7918943292133044, + 0.7796137766275134, + 0.8439109208854411, + 0.503158844765343, + 0.8964626070101761, + 0.6240601503759399, + 0.6614850588590402, + 0.6899053627760252, + 0.3884945834889802, + 0.1364329268292683, + 0.8610781600105444, + 0.1527777777777778, + 0.1535393818544367, + 0.3614328614328614, + 0.8037087290818634, + 0.507803790412486, + 0.006532066508313539, + 0.3048543689320388 + ], + "confusion_matrix": [ + [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + [ + 0, + 14928, + 103, + 52, + 4, + 11, + 22, + 0, + 476, + 0, + 3, + 205, + 70, + 2, + 589, + 20, + 286, + 4, + 5, + 0 + ], + [ + 0, + 185, + 11748, + 88, + 26, + 17, + 58, + 3, + 0, + 19, + 20, + 186, + 12, + 1, + 97, + 0, + 8, + 1, + 8, + 0 + ], + [ + 0, + 154, + 137, + 12619, + 9, + 9, + 2, + 227, + 0, + 29, + 0, + 0, + 2, + 5, + 61, + 145, + 34, + 10, + 425, + 0 + ], + [ + 0, + 22, + 635, + 27, + 1115, + 51, + 0, + 0, + 0, + 0, + 67, + 0, + 19, + 9, + 0, + 0, + 5, + 94, + 3, + 0 + ], + [ + 0, + 86, + 11, + 25, + 0, + 5550, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 19, + 7, + 0, + 91, + 0, + 0 + ], + [ + 0, + 86, + 67, + 4, + 5, + 0, + 1577, + 87, + 198, + 0, + 0, + 134, + 0, + 0, + 72, + 0, + 4, + 174, + 0, + 0 + ], + [ + 0, + 7, + 0, + 20, + 0, + 0, + 13, + 4383, + 415, + 54, + 0, + 6, + 447, + 0, + 27, + 1, + 4, + 0, + 2, + 0 + ], + [ + 0, + 28, + 0, + 0, + 0, + 0, + 0, + 0, + 6561, + 0, + 0, + 9, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + [ + 0, + 5, + 20, + 7, + 0, + 0, + 0, + 22, + 0, + 2080, + 0, + 0, + 17, + 10, + 3, + 2, + 0, + 0, + 0, + 0 + ], + [ + 0, + 38, + 934, + 0, + 12, + 0, + 0, + 0, + 0, + 2, + 179, + 0, + 0, + 0, + 5, + 0, + 30, + 2, + 0, + 0 + ], + [ + 0, + 14, + 0, + 0, + 88, + 0, + 12, + 6, + 11, + 0, + 0, + 6533, + 0, + 0, + 11, + 0, + 62, + 0, + 5, + 0 + ], + [ + 0, + 107, + 22, + 248, + 0, + 3, + 6, + 474, + 525, + 2970, + 6, + 154, + 1056, + 180, + 114, + 78, + 9, + 8, + 86, + 0 + ], + [ + 0, + 1, + 53, + 64, + 0, + 0, + 0, + 177, + 10, + 37, + 1, + 67, + 208, + 154, + 14, + 2, + 8, + 0, + 0, + 0 + ], + [ + 0, + 1034, + 18, + 36, + 0, + 0, + 6, + 44, + 395, + 0, + 0, + 60, + 0, + 0, + 1685, + 0, + 221, + 5, + 0, + 0 + ], + [ + 0, + 30, + 6, + 47, + 4, + 5, + 0, + 0, + 0, + 40, + 0, + 0, + 0, + 0, + 0, + 1777, + 0, + 0, + 0, + 0 + ], + [ + 0, + 51, + 0, + 8, + 0, + 0, + 0, + 17, + 875, + 0, + 0, + 15, + 0, + 0, + 41, + 0, + 1822, + 0, + 0, + 0 + ], + [ + 0, + 215, + 586, + 94, + 21, + 306, + 0, + 0, + 0, + 37, + 13, + 0, + 0, + 0, + 0, + 2, + 10, + 11, + 0, + 0 + ], + [ + 0, + 8, + 0, + 365, + 0, + 0, + 0, + 190, + 7, + 0, + 0, + 9, + 91, + 0, + 105, + 45, + 78, + 0, + 628, + 0 + ], + [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ] + ] + } + }, + { + "mode": "add", + "alpha": 0.25, + "metrics": { + "miou": 0.5121024916484683, + "oa": 0.7932434314114031, + "macro_f1": 0.621756895324494, + "kappa": 0.7695318237039902, + "per_class_iou": [ + 0.7963827304550758, + 0.7460549758208196, + 0.8307601727070522, + 0.43091655266757867, + 0.8977640959170448, + 0.664450527962456, + 0.6573167111902641, + 0.6998827667057445, + 0.3906689151208544, + 0.045746388443017656, + 0.8572740390922209, + 0.12222058606979826, + 0.13199577613516367, + 0.36880530973451325, + 0.7473498233215548, + 0.5065441381230855, + 0.0, + 0.3237113402061856 + ], + "confusion_matrix": [ + [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + [ + 0, + 15015, + 98, + 53, + 1, + 10, + 35, + 0, + 457, + 0, + 3, + 201, + 64, + 2, + 540, + 22, + 275, + 0, + 4, + 0 + ], + [ + 0, + 209, + 11725, + 90, + 31, + 16, + 64, + 3, + 0, + 18, + 10, + 190, + 13, + 1, + 93, + 0, + 8, + 1, + 5, + 0 + ], + [ + 0, + 138, + 166, + 12699, + 8, + 8, + 3, + 302, + 0, + 21, + 0, + 0, + 1, + 3, + 33, + 152, + 34, + 1, + 299, + 0 + ], + [ + 0, + 31, + 941, + 34, + 945, + 43, + 0, + 0, + 0, + 0, + 22, + 0, + 5, + 10, + 0, + 0, + 0, + 16, + 0, + 0 + ], + [ + 0, + 84, + 67, + 39, + 0, + 5541, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 19, + 3, + 0, + 36, + 0, + 0 + ], + [ + 0, + 85, + 61, + 2, + 4, + 1, + 1699, + 122, + 114, + 0, + 0, + 112, + 0, + 0, + 55, + 0, + 4, + 149, + 0, + 0 + ], + [ + 0, + 11, + 0, + 45, + 0, + 1, + 19, + 4429, + 408, + 34, + 0, + 5, + 396, + 0, + 20, + 1, + 8, + 0, + 2, + 0 + ], + [ + 0, + 21, + 0, + 0, + 0, + 0, + 0, + 1, + 6567, + 0, + 0, + 9, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + [ + 0, + 4, + 19, + 19, + 0, + 0, + 0, + 11, + 0, + 2085, + 0, + 0, + 17, + 7, + 1, + 3, + 0, + 0, + 0, + 0 + ], + [ + 0, + 53, + 1045, + 5, + 7, + 1, + 0, + 0, + 0, + 0, + 57, + 0, + 0, + 0, + 2, + 0, + 30, + 2, + 0, + 0 + ], + [ + 0, + 12, + 0, + 0, + 80, + 0, + 25, + 5, + 13, + 0, + 0, + 6535, + 0, + 0, + 10, + 0, + 58, + 0, + 4, + 0 + ], + [ + 0, + 132, + 34, + 340, + 0, + 2, + 2, + 513, + 495, + 3008, + 4, + 215, + 830, + 128, + 94, + 139, + 5, + 6, + 99, + 0 + ], + [ + 0, + 4, + 81, + 156, + 0, + 0, + 0, + 98, + 19, + 32, + 0, + 61, + 188, + 125, + 25, + 0, + 7, + 0, + 0, + 0 + ], + [ + 0, + 1053, + 19, + 32, + 0, + 0, + 1, + 46, + 387, + 0, + 0, + 58, + 0, + 0, + 1667, + 0, + 241, + 0, + 0, + 0 + ], + [ + 0, + 42, + 4, + 130, + 0, + 5, + 0, + 0, + 0, + 36, + 0, + 0, + 0, + 0, + 0, + 1692, + 0, + 0, + 0, + 0 + ], + [ + 0, + 47, + 0, + 13, + 0, + 0, + 0, + 16, + 880, + 0, + 0, + 17, + 0, + 0, + 36, + 0, + 1819, + 0, + 1, + 0 + ], + [ + 0, + 140, + 704, + 107, + 15, + 296, + 0, + 0, + 0, + 22, + 5, + 0, + 0, + 0, + 0, + 0, + 6, + 0, + 0, + 0 + ], + [ + 0, + 8, + 0, + 353, + 0, + 0, + 0, + 242, + 12, + 0, + 0, + 13, + 61, + 0, + 88, + 35, + 86, + 0, + 628, + 0 + ], + [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ] + ] + } + }, + { + "mode": "add", + "alpha": 0.5, + "metrics": { + "miou": 0.47879795955305693, + "oa": 0.7761377877272094, + "macro_f1": 0.5885884799695399, + "kappa": 0.7501747397027639, + "per_class_iou": [ + 0.7826931150293871, + 0.7103363914373089, + 0.7896527821538849, + 0.3770491803278688, + 0.8964564369310793, + 0.5934767989240081, + 0.6146362098138748, + 0.7097576806577239, + 0.3951321544019776, + 0.0024630541871921183, + 0.8289234760051881, + 0.056769230769230766, + 0.10692588092345079, + 0.35865075722808626, + 0.6246453182002432, + 0.4823125659978881, + 0.0, + 0.2884822389666308 + ], + "confusion_matrix": [ + [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + [ + 0, + 14915, + 200, + 80, + 0, + 14, + 173, + 1, + 400, + 1, + 0, + 145, + 47, + 2, + 489, + 25, + 282, + 4, + 2, + 0 + ], + [ + 0, + 295, + 11614, + 100, + 68, + 19, + 76, + 1, + 3, + 14, + 6, + 207, + 10, + 0, + 52, + 0, + 9, + 0, + 3, + 0 + ], + [ + 0, + 136, + 210, + 12531, + 7, + 3, + 3, + 428, + 2, + 15, + 0, + 0, + 2, + 0, + 20, + 298, + 58, + 0, + 155, + 0 + ], + [ + 0, + 40, + 1099, + 32, + 805, + 40, + 0, + 0, + 0, + 0, + 10, + 0, + 12, + 4, + 0, + 0, + 0, + 5, + 0, + 0 + ], + [ + 0, + 74, + 121, + 59, + 0, + 5515, + 0, + 0, + 0, + 0, + 0, + 14, + 0, + 0, + 2, + 1, + 2, + 1, + 0, + 0 + ], + [ + 0, + 84, + 61, + 4, + 2, + 14, + 1765, + 161, + 40, + 0, + 0, + 128, + 0, + 0, + 41, + 0, + 5, + 103, + 0, + 0 + ], + [ + 0, + 10, + 15, + 191, + 0, + 0, + 16, + 4359, + 400, + 0, + 0, + 11, + 201, + 0, + 1, + 0, + 174, + 0, + 1, + 0 + ], + [ + 0, + 13, + 0, + 0, + 0, + 0, + 1, + 3, + 6561, + 0, + 0, + 18, + 0, + 0, + 2, + 0, + 0, + 0, + 0, + 0 + ], + [ + 0, + 11, + 19, + 39, + 0, + 0, + 0, + 0, + 0, + 2078, + 0, + 0, + 9, + 1, + 0, + 9, + 0, + 0, + 0, + 0 + ], + [ + 0, + 86, + 1082, + 17, + 0, + 0, + 0, + 0, + 0, + 0, + 3, + 0, + 0, + 0, + 0, + 0, + 14, + 0, + 0, + 0 + ], + [ + 0, + 13, + 1, + 0, + 10, + 0, + 239, + 8, + 17, + 0, + 0, + 6391, + 0, + 0, + 7, + 0, + 56, + 0, + 0, + 0 + ], + [ + 0, + 245, + 137, + 475, + 0, + 2, + 1, + 628, + 489, + 3014, + 0, + 253, + 369, + 20, + 58, + 189, + 4, + 0, + 162, + 0 + ], + [ + 0, + 8, + 112, + 211, + 0, + 0, + 0, + 32, + 51, + 26, + 0, + 33, + 153, + 88, + 60, + 12, + 10, + 0, + 0, + 0 + ], + [ + 0, + 1041, + 21, + 26, + 0, + 0, + 57, + 55, + 370, + 0, + 0, + 122, + 0, + 0, + 1563, + 0, + 249, + 0, + 0, + 0 + ], + [ + 0, + 63, + 0, + 276, + 0, + 7, + 0, + 0, + 0, + 22, + 0, + 0, + 0, + 0, + 0, + 1541, + 0, + 0, + 0, + 0 + ], + [ + 0, + 34, + 0, + 25, + 0, + 0, + 0, + 21, + 843, + 0, + 0, + 24, + 0, + 0, + 46, + 0, + 1827, + 0, + 9, + 0 + ], + [ + 0, + 114, + 795, + 120, + 1, + 264, + 0, + 0, + 0, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + [ + 0, + 9, + 0, + 346, + 0, + 0, + 0, + 375, + 31, + 0, + 0, + 13, + 20, + 0, + 76, + 24, + 96, + 0, + 536, + 0 + ], + [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ] + ] + } + }, + { + "mode": "replace", + "alpha": 0.1, + "metrics": { + "miou": 0.5213330479464527, + "oa": 0.7902336093229507, + "macro_f1": 0.6340367648422165, + "kappa": 0.7669074287926599, + "per_class_iou": [ + 0.7871194753958523, + 0.7941810344827587, + 0.809841141626279, + 0.5288028802880288, + 0.9014084507042254, + 0.6280606296152351, + 0.6194052267948332, + 0.6937783880849265, + 0.38979860718991155, + 0.1461877756773787, + 0.8618143459915611, + 0.18828980623420388, + 0.11239193083573487, + 0.3337386018237082, + 0.8287575616565844, + 0.507959067652075, + 0.016981132075471698, + 0.23547880690737832 + ], + "confusion_matrix": [ + [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + [ + 0, + 14764, + 117, + 51, + 53, + 14, + 51, + 3, + 480, + 0, + 3, + 197, + 82, + 3, + 681, + 24, + 248, + 5, + 4, + 0 + ], + [ + 0, + 115, + 11792, + 78, + 11, + 16, + 56, + 3, + 0, + 20, + 56, + 188, + 22, + 5, + 96, + 0, + 7, + 4, + 8, + 0 + ], + [ + 0, + 155, + 129, + 12031, + 17, + 10, + 4, + 250, + 0, + 26, + 0, + 0, + 2, + 5, + 137, + 127, + 38, + 0, + 937, + 0 + ], + [ + 0, + 23, + 484, + 30, + 1175, + 42, + 5, + 0, + 0, + 0, + 234, + 0, + 10, + 7, + 0, + 0, + 21, + 12, + 4, + 0 + ], + [ + 0, + 68, + 22, + 27, + 0, + 5568, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 18, + 7, + 2, + 77, + 0, + 0 + ], + [ + 0, + 62, + 71, + 3, + 16, + 0, + 1616, + 48, + 189, + 0, + 3, + 146, + 0, + 0, + 81, + 0, + 4, + 169, + 0, + 0 + ], + [ + 0, + 5, + 1, + 14, + 0, + 0, + 15, + 4124, + 334, + 110, + 0, + 9, + 663, + 1, + 75, + 4, + 8, + 0, + 16, + 0 + ], + [ + 0, + 19, + 0, + 0, + 0, + 0, + 1, + 0, + 6568, + 0, + 0, + 9, + 0, + 0, + 0, + 0, + 1, + 0, + 0, + 0 + ], + [ + 0, + 5, + 21, + 5, + 0, + 0, + 0, + 16, + 0, + 2071, + 0, + 0, + 24, + 21, + 3, + 0, + 0, + 0, + 0, + 0 + ], + [ + 0, + 26, + 900, + 0, + 2, + 0, + 0, + 0, + 0, + 2, + 232, + 0, + 0, + 0, + 5, + 0, + 32, + 3, + 0, + 0 + ], + [ + 0, + 7, + 1, + 0, + 66, + 0, + 24, + 4, + 11, + 0, + 0, + 6536, + 0, + 0, + 19, + 0, + 66, + 0, + 8, + 0 + ], + [ + 0, + 114, + 22, + 166, + 0, + 4, + 1, + 466, + 494, + 2872, + 0, + 123, + 1341, + 203, + 155, + 24, + 8, + 9, + 44, + 0 + ], + [ + 0, + 2, + 54, + 60, + 0, + 0, + 0, + 180, + 9, + 40, + 1, + 97, + 210, + 117, + 15, + 4, + 6, + 0, + 1, + 0 + ], + [ + 0, + 1038, + 18, + 37, + 0, + 2, + 7, + 53, + 450, + 0, + 0, + 60, + 0, + 0, + 1647, + 0, + 176, + 16, + 0, + 0 + ], + [ + 0, + 26, + 10, + 43, + 7, + 6, + 0, + 0, + 0, + 36, + 0, + 0, + 0, + 0, + 0, + 1781, + 0, + 0, + 0, + 0 + ], + [ + 0, + 53, + 0, + 6, + 0, + 0, + 0, + 39, + 902, + 0, + 0, + 8, + 0, + 0, + 34, + 0, + 1787, + 0, + 0, + 0 + ], + [ + 0, + 246, + 521, + 45, + 3, + 294, + 0, + 0, + 0, + 41, + 88, + 0, + 0, + 0, + 0, + 2, + 28, + 27, + 0, + 0 + ], + [ + 0, + 13, + 0, + 423, + 0, + 0, + 1, + 217, + 0, + 0, + 0, + 5, + 63, + 0, + 112, + 48, + 44, + 0, + 600, + 0 + ], + [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ] + ] + } + }, + { + "mode": "replace", + "alpha": 0.25, + "metrics": { + "miou": 0.5141071221282871, + "oa": 0.7903835648718416, + "macro_f1": 0.6257550803566504, + "kappa": 0.7666269632266423, + "per_class_iou": [ + 0.7922733552981188, + 0.7576910673976137, + 0.8142658638258453, + 0.445777572681126, + 0.9018335226350803, + 0.6722007722007722, + 0.6265505020673361, + 0.6983418367346939, + 0.39612976664769495, + 0.09333333333333334, + 0.8617554032683183, + 0.16498993963782696, + 0.11546184738955824, + 0.33734177215189876, + 0.7878228782287823, + 0.5093325791855203, + 0.00922266139657444, + 0.2696035242290749 + ], + "confusion_matrix": [ + [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + [ + 0, + 14909, + 112, + 49, + 35, + 15, + 56, + 2, + 461, + 0, + 3, + 178, + 70, + 2, + 607, + 28, + 244, + 5, + 4, + 0 + ], + [ + 0, + 161, + 11748, + 88, + 11, + 15, + 60, + 3, + 0, + 19, + 47, + 191, + 20, + 2, + 94, + 0, + 6, + 4, + 8, + 0 + ], + [ + 0, + 126, + 147, + 12306, + 8, + 9, + 2, + 331, + 0, + 21, + 0, + 0, + 0, + 4, + 73, + 135, + 35, + 0, + 671, + 0 + ], + [ + 0, + 34, + 905, + 35, + 966, + 35, + 0, + 0, + 0, + 0, + 47, + 0, + 3, + 6, + 0, + 0, + 8, + 8, + 0, + 0 + ], + [ + 0, + 73, + 61, + 32, + 0, + 5558, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 18, + 7, + 1, + 39, + 0, + 0 + ], + [ + 0, + 67, + 69, + 1, + 11, + 1, + 1741, + 91, + 102, + 0, + 1, + 109, + 0, + 0, + 65, + 0, + 4, + 146, + 0, + 0 + ], + [ + 0, + 6, + 0, + 36, + 0, + 1, + 16, + 4243, + 334, + 88, + 0, + 7, + 555, + 0, + 70, + 2, + 13, + 0, + 8, + 0 + ], + [ + 0, + 15, + 0, + 0, + 0, + 0, + 2, + 1, + 6570, + 0, + 0, + 10, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + [ + 0, + 4, + 20, + 9, + 0, + 0, + 0, + 12, + 0, + 2088, + 0, + 0, + 22, + 10, + 1, + 0, + 0, + 0, + 0, + 0 + ], + [ + 0, + 31, + 1007, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 126, + 0, + 0, + 0, + 5, + 0, + 32, + 1, + 0, + 0 + ], + [ + 0, + 11, + 0, + 0, + 51, + 0, + 41, + 5, + 10, + 0, + 0, + 6539, + 0, + 0, + 15, + 0, + 64, + 0, + 6, + 0 + ], + [ + 0, + 122, + 26, + 257, + 0, + 4, + 1, + 492, + 529, + 2873, + 0, + 181, + 1148, + 176, + 130, + 45, + 7, + 8, + 47, + 0 + ], + [ + 0, + 1, + 69, + 122, + 0, + 0, + 0, + 116, + 18, + 35, + 0, + 86, + 197, + 115, + 27, + 4, + 6, + 0, + 0, + 0 + ], + [ + 0, + 1055, + 19, + 33, + 0, + 0, + 4, + 52, + 455, + 0, + 0, + 67, + 0, + 0, + 1599, + 0, + 208, + 12, + 0, + 0 + ], + [ + 0, + 29, + 6, + 124, + 4, + 6, + 0, + 0, + 0, + 32, + 0, + 0, + 0, + 0, + 0, + 1708, + 0, + 0, + 0, + 0 + ], + [ + 0, + 52, + 0, + 7, + 0, + 0, + 0, + 27, + 898, + 0, + 0, + 8, + 0, + 0, + 36, + 0, + 1801, + 0, + 0, + 0 + ], + [ + 0, + 240, + 587, + 62, + 0, + 288, + 0, + 0, + 0, + 37, + 50, + 0, + 0, + 0, + 0, + 0, + 17, + 14, + 0, + 0 + ], + [ + 0, + 11, + 0, + 390, + 0, + 0, + 0, + 261, + 3, + 0, + 0, + 9, + 45, + 0, + 95, + 38, + 62, + 0, + 612, + 0 + ], + [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ] + ] + } + }, + { + "mode": "replace", + "alpha": 0.5, + "metrics": { + "miou": 0.4846937000291392, + "oa": 0.7792547209220124, + "macro_f1": 0.5955672275606292, + "kappa": 0.7537344299687712, + "per_class_iou": [ + 0.787392037076048, + 0.7167466469792051, + 0.7873257287705957, + 0.4039829302987198, + 0.9017142857142857, + 0.6008064516129032, + 0.6165434906196703, + 0.7163902226102139, + 0.4065183450429352, + 0.008025682182985553, + 0.833052495139339, + 0.09134687735139202, + 0.10574712643678161, + 0.34994285714285717, + 0.6304523424878837, + 0.4753053637812002, + 0.0, + 0.2931937172774869 + ], + "confusion_matrix": [ + [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + [ + 0, + 14951, + 177, + 80, + 2, + 15, + 178, + 1, + 386, + 1, + 0, + 162, + 51, + 2, + 478, + 29, + 262, + 5, + 0, + 0 + ], + [ + 0, + 254, + 11650, + 95, + 47, + 15, + 76, + 1, + 2, + 14, + 28, + 197, + 17, + 1, + 68, + 0, + 7, + 0, + 5, + 0 + ], + [ + 0, + 124, + 212, + 12424, + 7, + 3, + 3, + 438, + 2, + 11, + 0, + 0, + 1, + 0, + 15, + 329, + 57, + 0, + 242, + 0 + ], + [ + 0, + 39, + 1051, + 41, + 852, + 38, + 0, + 0, + 0, + 0, + 14, + 0, + 7, + 1, + 0, + 0, + 0, + 4, + 0, + 0 + ], + [ + 0, + 73, + 121, + 50, + 0, + 5523, + 0, + 0, + 0, + 0, + 0, + 15, + 0, + 0, + 2, + 2, + 3, + 0, + 0, + 0 + ], + [ + 0, + 75, + 71, + 2, + 5, + 13, + 1788, + 139, + 42, + 0, + 0, + 119, + 0, + 0, + 44, + 0, + 4, + 106, + 0, + 0 + ], + [ + 0, + 7, + 11, + 192, + 0, + 0, + 16, + 4338, + 264, + 4, + 0, + 12, + 346, + 0, + 3, + 1, + 180, + 0, + 5, + 0 + ], + [ + 0, + 10, + 0, + 0, + 0, + 0, + 1, + 3, + 6565, + 0, + 0, + 17, + 0, + 0, + 2, + 0, + 0, + 0, + 0, + 0 + ], + [ + 0, + 7, + 19, + 35, + 0, + 0, + 0, + 0, + 0, + 2083, + 0, + 0, + 13, + 6, + 0, + 3, + 0, + 0, + 0, + 0 + ], + [ + 0, + 69, + 1083, + 12, + 0, + 0, + 0, + 0, + 0, + 0, + 10, + 0, + 0, + 0, + 2, + 0, + 26, + 0, + 0, + 0 + ], + [ + 0, + 10, + 0, + 0, + 1, + 0, + 217, + 8, + 19, + 0, + 0, + 6427, + 0, + 0, + 4, + 0, + 56, + 0, + 0, + 0 + ], + [ + 0, + 236, + 98, + 443, + 0, + 0, + 1, + 602, + 521, + 2869, + 0, + 240, + 607, + 64, + 70, + 166, + 3, + 1, + 125, + 0 + ], + [ + 0, + 7, + 115, + 209, + 0, + 0, + 0, + 8, + 47, + 27, + 0, + 54, + 154, + 92, + 62, + 12, + 9, + 0, + 0, + 0 + ], + [ + 0, + 1051, + 21, + 28, + 0, + 0, + 76, + 58, + 365, + 0, + 0, + 131, + 0, + 0, + 1531, + 0, + 241, + 0, + 2, + 0 + ], + [ + 0, + 56, + 2, + 262, + 0, + 7, + 0, + 0, + 0, + 20, + 0, + 0, + 0, + 0, + 0, + 1561, + 1, + 0, + 0, + 0 + ], + [ + 0, + 44, + 0, + 16, + 0, + 0, + 0, + 22, + 894, + 0, + 0, + 14, + 1, + 0, + 43, + 0, + 1790, + 0, + 5, + 0 + ], + [ + 0, + 136, + 796, + 104, + 0, + 245, + 0, + 0, + 0, + 12, + 2, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + [ + 0, + 10, + 0, + 343, + 0, + 0, + 0, + 377, + 24, + 0, + 0, + 12, + 9, + 0, + 78, + 25, + 88, + 0, + 560, + 0 + ], + [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ] + ] + } + } + ], + "reference_val_miou": 0.5256398451814701, + "delta_val_pp": 0.03126935319385238, + "patch_bootstrap_delta_interval_pp": [ + -0.6300265253503862, + 0.811474272092648 + ], + "bootstrap_caveat": "descriptive, after validation selection; not an independent significance test", + "selection_split": "validation", + "test_used_for_selection": false + }, + "test_policy": "exploratory all-variants sweep explicitly requested by user; no test retuning", + "patches": 482 + }, + { + "kind": "spatial_cnv1", + "metrics": { + "miou": 0.49455547330691263, + "oa": 0.8109266736579659, + "macro_f1": 0.6234136021853756, + "kappa": 0.7642966739749818, + "per_class_iou": [ + 0.8061330522981268, + 0.7198486670090578, + 0.8757351877577422, + 0.46213693236161063, + 0.8703389461776095, + 0.38416520104311963, + 0.4490553274645572, + 0.6216216216216216, + 0.7901944411308601, + 0.07114146695276376, + 0.5587868716244287, + 0.3175281724644782, + 0.4373326486446833, + 0.2655897022970766, + 0.6168043633350977, + 0.28662647573048294, + 0.0918118400487935, + 0.27714760156231727 + ], + "confusion_matrix": [ + [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + [ + 0, + 1311069, + 6756, + 8420, + 815, + 744, + 883, + 2246, + 19285, + 602, + 381, + 3742, + 6998, + 405, + 29504, + 1126, + 71312, + 1029, + 686, + 0 + ], + [ + 0, + 12671, + 493367, + 5115, + 3930, + 1130, + 1764, + 172, + 746, + 546, + 21217, + 15339, + 437, + 131, + 1045, + 166, + 699, + 2161, + 44, + 0 + ], + [ + 0, + 17785, + 2752, + 641744, + 302, + 960, + 172, + 3539, + 862, + 3810, + 169, + 19, + 2132, + 202, + 3012, + 4846, + 607, + 129, + 5247, + 0 + ], + [ + 0, + 9412, + 46049, + 1786, + 82625, + 1310, + 4247, + 55, + 196, + 62, + 7994, + 4414, + 287, + 376, + 482, + 80, + 252, + 3761, + 4, + 0 + ], + [ + 0, + 2675, + 1166, + 868, + 380, + 120018, + 262, + 124, + 19, + 220, + 688, + 194, + 22, + 35, + 1476, + 29, + 106, + 837, + 0, + 0 + ], + [ + 0, + 4040, + 7283, + 711, + 3621, + 289, + 25338, + 175, + 883, + 118, + 2677, + 5012, + 146, + 454, + 1986, + 330, + 163, + 536, + 0, + 0 + ], + [ + 0, + 1538, + 141, + 3611, + 17, + 249, + 89, + 47797, + 7620, + 3775, + 49, + 378, + 1239, + 1298, + 2624, + 9685, + 632, + 168, + 1023, + 0 + ], + [ + 0, + 18456, + 124, + 4622, + 0, + 0, + 17, + 1317, + 151754, + 0, + 1, + 338, + 854, + 23, + 403, + 328, + 9076, + 0, + 164, + 0 + ], + [ + 0, + 482, + 193, + 1058, + 35, + 123, + 379, + 620, + 116, + 66242, + 0, + 28, + 795, + 26, + 446, + 416, + 71, + 2, + 15, + 0 + ], + [ + 0, + 3092, + 44739, + 412, + 1763, + 216, + 156, + 5, + 11, + 5, + 7062, + 21, + 6, + 0, + 299, + 8, + 83, + 484, + 0, + 0 + ], + [ + 0, + 1322, + 2401, + 20, + 0, + 0, + 1773, + 184, + 1235, + 0, + 143, + 60525, + 38, + 0, + 1508, + 0, + 693, + 4, + 114, + 0 + ], + [ + 0, + 3196, + 123, + 4634, + 46, + 7, + 910, + 9697, + 3978, + 1955, + 63, + 3941, + 25923, + 639, + 1593, + 517, + 2180, + 171, + 1142, + 0 + ], + [ + 0, + 589, + 140, + 1406, + 6, + 31, + 92, + 2996, + 519, + 719, + 7, + 314, + 2523, + 11923, + 406, + 408, + 473, + 9, + 52, + 0 + ], + [ + 0, + 57524, + 1032, + 1194, + 723, + 333, + 1050, + 1045, + 7046, + 405, + 646, + 1114, + 551, + 254, + 47497, + 318, + 6554, + 377, + 131, + 0 + ], + [ + 0, + 1525, + 170, + 6485, + 90, + 129, + 5, + 653, + 17, + 376, + 8, + 2255, + 478, + 3, + 400, + 53604, + 52, + 13, + 2053, + 0 + ], + [ + 0, + 12728, + 331, + 778, + 2, + 0, + 34, + 422, + 10506, + 48, + 33, + 1127, + 965, + 73, + 710, + 23, + 49018, + 5, + 56, + 0 + ], + [ + 0, + 8636, + 11253, + 1214, + 3447, + 3258, + 322, + 34, + 20, + 20, + 6827, + 1, + 610, + 689, + 1495, + 80, + 44, + 4817, + 2, + 0 + ], + [ + 0, + 4694, + 43, + 2183, + 220, + 0, + 39, + 1222, + 3590, + 122, + 2, + 118, + 2844, + 42, + 3653, + 230, + 1161, + 11, + 11850, + 0 + ], + [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ] + ] + }, + "baseline": { + "miou": 0.49455547330691263, + "oa": 0.8109266736579659, + "macro_f1": 0.6234136021853756, + "kappa": 0.7642966739749818, + "per_class_iou": [ + 0.8061330522981268, + 0.7198486670090578, + 0.8757351877577422, + 0.46213693236161063, + 0.8703389461776095, + 0.38416520104311963, + 0.4490553274645572, + 0.6216216216216216, + 0.7901944411308601, + 0.07114146695276376, + 0.5587868716244287, + 0.3175281724644782, + 0.4373326486446833, + 0.2655897022970766, + 0.6168043633350977, + 0.28662647573048294, + 0.0918118400487935, + 0.27714760156231727 + ], + "confusion_matrix": [ + [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + [ + 0, + 1311069, + 6756, + 8420, + 815, + 744, + 883, + 2246, + 19285, + 602, + 381, + 3742, + 6998, + 405, + 29504, + 1126, + 71312, + 1029, + 686, + 0 + ], + [ + 0, + 12671, + 493367, + 5115, + 3930, + 1130, + 1764, + 172, + 746, + 546, + 21217, + 15339, + 437, + 131, + 1045, + 166, + 699, + 2161, + 44, + 0 + ], + [ + 0, + 17785, + 2752, + 641744, + 302, + 960, + 172, + 3539, + 862, + 3810, + 169, + 19, + 2132, + 202, + 3012, + 4846, + 607, + 129, + 5247, + 0 + ], + [ + 0, + 9412, + 46049, + 1786, + 82625, + 1310, + 4247, + 55, + 196, + 62, + 7994, + 4414, + 287, + 376, + 482, + 80, + 252, + 3761, + 4, + 0 + ], + [ + 0, + 2675, + 1166, + 868, + 380, + 120018, + 262, + 124, + 19, + 220, + 688, + 194, + 22, + 35, + 1476, + 29, + 106, + 837, + 0, + 0 + ], + [ + 0, + 4040, + 7283, + 711, + 3621, + 289, + 25338, + 175, + 883, + 118, + 2677, + 5012, + 146, + 454, + 1986, + 330, + 163, + 536, + 0, + 0 + ], + [ + 0, + 1538, + 141, + 3611, + 17, + 249, + 89, + 47797, + 7620, + 3775, + 49, + 378, + 1239, + 1298, + 2624, + 9685, + 632, + 168, + 1023, + 0 + ], + [ + 0, + 18456, + 124, + 4622, + 0, + 0, + 17, + 1317, + 151754, + 0, + 1, + 338, + 854, + 23, + 403, + 328, + 9076, + 0, + 164, + 0 + ], + [ + 0, + 482, + 193, + 1058, + 35, + 123, + 379, + 620, + 116, + 66242, + 0, + 28, + 795, + 26, + 446, + 416, + 71, + 2, + 15, + 0 + ], + [ + 0, + 3092, + 44739, + 412, + 1763, + 216, + 156, + 5, + 11, + 5, + 7062, + 21, + 6, + 0, + 299, + 8, + 83, + 484, + 0, + 0 + ], + [ + 0, + 1322, + 2401, + 20, + 0, + 0, + 1773, + 184, + 1235, + 0, + 143, + 60525, + 38, + 0, + 1508, + 0, + 693, + 4, + 114, + 0 + ], + [ + 0, + 3196, + 123, + 4634, + 46, + 7, + 910, + 9697, + 3978, + 1955, + 63, + 3941, + 25923, + 639, + 1593, + 517, + 2180, + 171, + 1142, + 0 + ], + [ + 0, + 589, + 140, + 1406, + 6, + 31, + 92, + 2996, + 519, + 719, + 7, + 314, + 2523, + 11923, + 406, + 408, + 473, + 9, + 52, + 0 + ], + [ + 0, + 57524, + 1032, + 1194, + 723, + 333, + 1050, + 1045, + 7046, + 405, + 646, + 1114, + 551, + 254, + 47497, + 318, + 6554, + 377, + 131, + 0 + ], + [ + 0, + 1525, + 170, + 6485, + 90, + 129, + 5, + 653, + 17, + 376, + 8, + 2255, + 478, + 3, + 400, + 53604, + 52, + 13, + 2053, + 0 + ], + [ + 0, + 12728, + 331, + 778, + 2, + 0, + 34, + 422, + 10506, + 48, + 33, + 1127, + 965, + 73, + 710, + 23, + 49018, + 5, + 56, + 0 + ], + [ + 0, + 8636, + 11253, + 1214, + 3447, + 3258, + 322, + 34, + 20, + 20, + 6827, + 1, + 610, + 689, + 1495, + 80, + 44, + 4817, + 2, + 0 + ], + [ + 0, + 4694, + 43, + 2183, + 220, + 0, + 39, + 1222, + 3590, + 122, + 2, + 118, + 2844, + 42, + 3653, + 230, + 1161, + 11, + 11850, + 0 + ], + [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ] + ] + }, + "standalone": { + "miou": 0.3661553727957828, + "oa": 0.7362860548825406, + "macro_f1": 0.49201685403041423, + "kappa": 0.669304596653228, + "per_class_iou": [ + 0.7437638081805524, + 0.629830629854408, + 0.7145480271891164, + 0.276854446278313, + 0.7199829302607803, + 0.14194064705728004, + 0.3820997151929813, + 0.5670358864488484, + 0.5833003995960129, + 0.05444897331385065, + 0.43804434355615457, + 0.18266441473382927, + 0.14561743157575066, + 0.1827880184331797, + 0.40854736290832916, + 0.25868452380952384, + 0.026334996942378633, + 0.13431015499280088 + ], + "confusion_matrix": [ + [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + [ + 0, + 1278260, + 11218, + 36091, + 5625, + 1843, + 2845, + 3973, + 14094, + 1723, + 1570, + 7543, + 1440, + 281, + 25256, + 4209, + 66559, + 1757, + 1716, + 0 + ], + [ + 0, + 36000, + 450293, + 10502, + 23500, + 2102, + 3680, + 859, + 1022, + 299, + 15003, + 13409, + 519, + 392, + 803, + 346, + 822, + 885, + 244, + 0 + ], + [ + 0, + 47295, + 16117, + 571657, + 9038, + 2313, + 895, + 2006, + 952, + 8203, + 1326, + 464, + 4805, + 511, + 1633, + 8743, + 1027, + 438, + 10866, + 0 + ], + [ + 0, + 14779, + 51879, + 2038, + 64916, + 5047, + 4074, + 492, + 323, + 168, + 6677, + 9375, + 381, + 106, + 1096, + 266, + 139, + 1599, + 37, + 0 + ], + [ + 0, + 9390, + 2989, + 999, + 2736, + 107978, + 174, + 246, + 153, + 679, + 904, + 680, + 235, + 137, + 932, + 139, + 170, + 572, + 6, + 0 + ], + [ + 0, + 5214, + 10438, + 719, + 10407, + 1119, + 10819, + 197, + 612, + 313, + 1670, + 9740, + 23, + 569, + 554, + 391, + 104, + 720, + 153, + 0 + ], + [ + 0, + 2881, + 1939, + 9577, + 731, + 1616, + 1429, + 46688, + 5255, + 1063, + 159, + 764, + 1115, + 45, + 765, + 5610, + 840, + 380, + 1076, + 0 + ], + [ + 0, + 21275, + 226, + 8957, + 1, + 15, + 162, + 6125, + 132332, + 43, + 0, + 2128, + 379, + 32, + 1054, + 356, + 9078, + 66, + 5248, + 0 + ], + [ + 0, + 4825, + 243, + 7541, + 253, + 2218, + 38, + 259, + 59, + 53134, + 22, + 598, + 334, + 39, + 272, + 866, + 48, + 170, + 128, + 0 + ], + [ + 0, + 6340, + 39513, + 874, + 3840, + 763, + 278, + 303, + 15, + 142, + 4956, + 297, + 56, + 33, + 230, + 136, + 65, + 402, + 119, + 0 + ], + [ + 0, + 1191, + 2338, + 94, + 295, + 2, + 4767, + 350, + 2037, + 0, + 69, + 55576, + 3, + 8, + 2406, + 10, + 551, + 15, + 248, + 0 + ], + [ + 0, + 5994, + 1145, + 7145, + 1104, + 419, + 302, + 12212, + 3107, + 2001, + 211, + 2870, + 14168, + 1118, + 2147, + 819, + 2444, + 269, + 3240, + 0 + ], + [ + 0, + 2264, + 1493, + 1645, + 1337, + 48, + 1387, + 1581, + 480, + 1739, + 32, + 889, + 3854, + 3836, + 1040, + 234, + 337, + 159, + 258, + 0 + ], + [ + 0, + 64905, + 1479, + 2918, + 2007, + 586, + 1380, + 2227, + 6842, + 1194, + 241, + 2839, + 515, + 173, + 31732, + 872, + 7121, + 139, + 624, + 0 + ], + [ + 0, + 2543, + 435, + 15195, + 1849, + 449, + 89, + 2764, + 31, + 1498, + 107, + 666, + 436, + 30, + 1887, + 37445, + 89, + 280, + 2523, + 0 + ], + [ + 0, + 14346, + 304, + 2021, + 47, + 24, + 350, + 1614, + 7686, + 109, + 15, + 4156, + 523, + 77, + 1489, + 103, + 43459, + 11, + 525, + 0 + ], + [ + 0, + 11131, + 12350, + 1526, + 7760, + 1539, + 451, + 160, + 0, + 706, + 4629, + 10, + 474, + 146, + 513, + 24, + 15, + 1335, + 0, + 0 + ], + [ + 0, + 2261, + 157, + 3895, + 555, + 751, + 159, + 4887, + 3230, + 165, + 24, + 485, + 1756, + 33, + 3729, + 214, + 1732, + 62, + 7929, + 0 + ], + [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ] + ] + }, + "delta_test_pp": 0.0, + "standalone_delta_test_pp": -12.840010051112982, + "seconds": 132.52365607395768, + "validation_selection": { + "kind": "spatial_cnv1", + "seed": 3407, + "checkpoint_epoch": 72, + "standalone": { + "miou": 0.40926084060737083, + "oa": 0.7206113901950493, + "macro_f1": 0.5198281245084794, + "kappa": 0.6886860197933232, + "per_class_iou": [ + 0.7386248222628479, + 0.642231027857829, + 0.7123097366513651, + 0.25739026575097046, + 0.7971317597848819, + 0.25070688030160226, + 0.5834927173753126, + 0.7720231760671633, + 0.33010648596321396, + 0.004672897196261682, + 0.6290322580645161, + 0.06359945872801083, + 0.02359550561797753, + 0.31626450543378154, + 0.5602643856920684, + 0.5540318156884256, + 0.0, + 0.13121743249644718 + ], + "confusion_matrix": [ + [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + [ + 0, + 14545, + 115, + 174, + 27, + 114, + 271, + 46, + 379, + 22, + 3, + 219, + 11, + 0, + 585, + 44, + 221, + 0, + 4, + 0 + ], + [ + 0, + 444, + 10697, + 226, + 707, + 31, + 14, + 2, + 0, + 1, + 21, + 200, + 0, + 11, + 95, + 2, + 12, + 12, + 2, + 0 + ], + [ + 0, + 218, + 567, + 11793, + 259, + 19, + 15, + 311, + 0, + 6, + 1, + 0, + 3, + 0, + 2, + 363, + 29, + 3, + 279, + 0 + ], + [ + 0, + 32, + 945, + 86, + 862, + 34, + 2, + 0, + 0, + 0, + 6, + 33, + 15, + 0, + 0, + 0, + 4, + 28, + 0, + 0 + ], + [ + 0, + 152, + 129, + 85, + 57, + 5336, + 0, + 0, + 9, + 3, + 0, + 9, + 0, + 2, + 1, + 3, + 0, + 3, + 0, + 0 + ], + [ + 0, + 239, + 159, + 106, + 140, + 6, + 1064, + 14, + 163, + 11, + 41, + 223, + 87, + 0, + 67, + 2, + 1, + 84, + 1, + 0 + ], + [ + 0, + 19, + 3, + 181, + 0, + 0, + 18, + 3966, + 53, + 88, + 0, + 9, + 30, + 2, + 885, + 15, + 17, + 0, + 93, + 0 + ], + [ + 0, + 23, + 0, + 0, + 0, + 0, + 5, + 5, + 6529, + 0, + 0, + 6, + 0, + 0, + 5, + 0, + 16, + 0, + 9, + 0 + ], + [ + 0, + 1, + 10, + 116, + 0, + 279, + 0, + 40, + 0, + 1705, + 0, + 0, + 0, + 0, + 0, + 15, + 0, + 0, + 0, + 0 + ], + [ + 0, + 75, + 897, + 69, + 4, + 0, + 0, + 0, + 0, + 0, + 6, + 0, + 0, + 0, + 0, + 150, + 0, + 1, + 0, + 0 + ], + [ + 0, + 53, + 265, + 1, + 0, + 0, + 1375, + 4, + 13, + 0, + 0, + 4875, + 4, + 11, + 73, + 0, + 68, + 0, + 0, + 0 + ], + [ + 0, + 202, + 286, + 464, + 82, + 203, + 12, + 641, + 273, + 2807, + 0, + 149, + 423, + 67, + 158, + 54, + 48, + 14, + 163, + 0 + ], + [ + 0, + 74, + 57, + 169, + 14, + 0, + 0, + 50, + 24, + 21, + 0, + 0, + 288, + 21, + 2, + 1, + 11, + 54, + 10, + 0 + ], + [ + 0, + 853, + 12, + 32, + 1, + 31, + 37, + 32, + 392, + 0, + 0, + 102, + 16, + 0, + 1717, + 2, + 255, + 6, + 16, + 0 + ], + [ + 0, + 51, + 0, + 367, + 10, + 5, + 0, + 0, + 0, + 32, + 0, + 0, + 0, + 1, + 0, + 1441, + 0, + 2, + 0, + 0 + ], + [ + 0, + 78, + 5, + 28, + 0, + 0, + 1, + 100, + 528, + 0, + 0, + 9, + 10, + 0, + 42, + 0, + 2020, + 0, + 8, + 0 + ], + [ + 0, + 241, + 720, + 98, + 1, + 183, + 33, + 0, + 0, + 8, + 10, + 0, + 0, + 0, + 0, + 1, + 0, + 0, + 0, + 0 + ], + [ + 0, + 157, + 9, + 486, + 0, + 0, + 53, + 173, + 25, + 0, + 0, + 49, + 141, + 0, + 10, + 11, + 135, + 0, + 277, + 0 + ], + [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ] + ] + }, + "chosen": { + "mode": "add", + "alpha": 0.0, + "metrics": { + "miou": 0.5256398451814701, + "oa": 0.7954606313128608, + "macro_f1": 0.6400266863319044, + "kappa": 0.7725060156424988, + "per_class_iou": [ + 0.7863696632193052, + 0.7940560621411685, + 0.8422681105804802, + 0.5216035634743875, + 0.8953563366655918, + 0.5666403785488959, + 0.6681021224238696, + 0.6854425749817118, + 0.3865969759193579, + 0.15913978494623657, + 0.8521227955584585, + 0.16817463736895016, + 0.15324165029469547, + 0.3526720731960907, + 0.8232323232323232, + 0.5073836723321259, + 0.010297482837528604, + 0.2888170055452865 + ], + "confusion_matrix": [ + [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + [ + 0, + 14827, + 104, + 46, + 8, + 16, + 20, + 1, + 480, + 0, + 3, + 211, + 80, + 3, + 659, + 16, + 296, + 4, + 6, + 0 + ], + [ + 0, + 160, + 11756, + 93, + 27, + 17, + 59, + 3, + 0, + 18, + 25, + 184, + 13, + 1, + 99, + 0, + 10, + 4, + 8, + 0 + ], + [ + 0, + 165, + 132, + 12522, + 19, + 10, + 2, + 144, + 0, + 31, + 1, + 0, + 2, + 6, + 113, + 137, + 34, + 11, + 539, + 0 + ], + [ + 0, + 23, + 477, + 28, + 1171, + 50, + 1, + 0, + 0, + 0, + 130, + 0, + 18, + 10, + 0, + 2, + 6, + 128, + 3, + 0 + ], + [ + 0, + 83, + 1, + 23, + 0, + 5553, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 19, + 8, + 1, + 101, + 0, + 0 + ], + [ + 0, + 96, + 76, + 5, + 7, + 0, + 1437, + 49, + 253, + 0, + 0, + 217, + 0, + 0, + 77, + 0, + 5, + 186, + 0, + 0 + ], + [ + 0, + 7, + 0, + 14, + 0, + 0, + 10, + 4344, + 415, + 65, + 0, + 10, + 472, + 0, + 33, + 1, + 4, + 0, + 4, + 0 + ], + [ + 0, + 29, + 0, + 0, + 0, + 0, + 0, + 0, + 6559, + 0, + 0, + 9, + 0, + 0, + 0, + 0, + 1, + 0, + 0, + 0 + ], + [ + 0, + 6, + 20, + 6, + 0, + 1, + 0, + 26, + 0, + 2071, + 0, + 0, + 16, + 14, + 5, + 1, + 0, + 0, + 0, + 0 + ], + [ + 0, + 34, + 886, + 0, + 14, + 0, + 2, + 0, + 0, + 5, + 222, + 0, + 0, + 0, + 5, + 0, + 30, + 4, + 0, + 0 + ], + [ + 0, + 17, + 0, + 0, + 91, + 0, + 14, + 5, + 10, + 0, + 0, + 6523, + 0, + 0, + 13, + 0, + 63, + 0, + 6, + 0 + ], + [ + 0, + 107, + 18, + 205, + 0, + 3, + 10, + 473, + 524, + 2954, + 6, + 129, + 1171, + 188, + 120, + 47, + 11, + 8, + 72, + 0 + ], + [ + 0, + 1, + 44, + 53, + 0, + 0, + 0, + 189, + 8, + 36, + 1, + 71, + 216, + 156, + 12, + 2, + 7, + 0, + 0, + 0 + ], + [ + 0, + 1027, + 18, + 38, + 0, + 0, + 10, + 43, + 402, + 0, + 0, + 58, + 0, + 0, + 1696, + 0, + 205, + 7, + 0, + 0 + ], + [ + 0, + 28, + 6, + 32, + 4, + 6, + 0, + 0, + 0, + 40, + 0, + 0, + 0, + 0, + 0, + 1793, + 0, + 0, + 0, + 0 + ], + [ + 0, + 51, + 0, + 8, + 0, + 0, + 0, + 19, + 875, + 0, + 0, + 14, + 0, + 0, + 41, + 0, + 1821, + 0, + 0, + 0 + ], + [ + 0, + 230, + 546, + 75, + 28, + 310, + 0, + 0, + 0, + 42, + 27, + 0, + 0, + 0, + 0, + 4, + 15, + 18, + 0, + 0 + ], + [ + 0, + 11, + 0, + 373, + 0, + 0, + 0, + 171, + 4, + 0, + 0, + 10, + 100, + 0, + 109, + 51, + 72, + 0, + 625, + 0 + ], + [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ] + ] + } + }, + "records": [ + { + "mode": "add", + "alpha": 0.0, + "metrics": { + "miou": 0.5256398451814701, + "oa": 0.7954606313128608, + "macro_f1": 0.6400266863319044, + "kappa": 0.7725060156424988, + "per_class_iou": [ + 0.7863696632193052, + 0.7940560621411685, + 0.8422681105804802, + 0.5216035634743875, + 0.8953563366655918, + 0.5666403785488959, + 0.6681021224238696, + 0.6854425749817118, + 0.3865969759193579, + 0.15913978494623657, + 0.8521227955584585, + 0.16817463736895016, + 0.15324165029469547, + 0.3526720731960907, + 0.8232323232323232, + 0.5073836723321259, + 0.010297482837528604, + 0.2888170055452865 + ], + "confusion_matrix": [ + [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + [ + 0, + 14827, + 104, + 46, + 8, + 16, + 20, + 1, + 480, + 0, + 3, + 211, + 80, + 3, + 659, + 16, + 296, + 4, + 6, + 0 + ], + [ + 0, + 160, + 11756, + 93, + 27, + 17, + 59, + 3, + 0, + 18, + 25, + 184, + 13, + 1, + 99, + 0, + 10, + 4, + 8, + 0 + ], + [ + 0, + 165, + 132, + 12522, + 19, + 10, + 2, + 144, + 0, + 31, + 1, + 0, + 2, + 6, + 113, + 137, + 34, + 11, + 539, + 0 + ], + [ + 0, + 23, + 477, + 28, + 1171, + 50, + 1, + 0, + 0, + 0, + 130, + 0, + 18, + 10, + 0, + 2, + 6, + 128, + 3, + 0 + ], + [ + 0, + 83, + 1, + 23, + 0, + 5553, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 19, + 8, + 1, + 101, + 0, + 0 + ], + [ + 0, + 96, + 76, + 5, + 7, + 0, + 1437, + 49, + 253, + 0, + 0, + 217, + 0, + 0, + 77, + 0, + 5, + 186, + 0, + 0 + ], + [ + 0, + 7, + 0, + 14, + 0, + 0, + 10, + 4344, + 415, + 65, + 0, + 10, + 472, + 0, + 33, + 1, + 4, + 0, + 4, + 0 + ], + [ + 0, + 29, + 0, + 0, + 0, + 0, + 0, + 0, + 6559, + 0, + 0, + 9, + 0, + 0, + 0, + 0, + 1, + 0, + 0, + 0 + ], + [ + 0, + 6, + 20, + 6, + 0, + 1, + 0, + 26, + 0, + 2071, + 0, + 0, + 16, + 14, + 5, + 1, + 0, + 0, + 0, + 0 + ], + [ + 0, + 34, + 886, + 0, + 14, + 0, + 2, + 0, + 0, + 5, + 222, + 0, + 0, + 0, + 5, + 0, + 30, + 4, + 0, + 0 + ], + [ + 0, + 17, + 0, + 0, + 91, + 0, + 14, + 5, + 10, + 0, + 0, + 6523, + 0, + 0, + 13, + 0, + 63, + 0, + 6, + 0 + ], + [ + 0, + 107, + 18, + 205, + 0, + 3, + 10, + 473, + 524, + 2954, + 6, + 129, + 1171, + 188, + 120, + 47, + 11, + 8, + 72, + 0 + ], + [ + 0, + 1, + 44, + 53, + 0, + 0, + 0, + 189, + 8, + 36, + 1, + 71, + 216, + 156, + 12, + 2, + 7, + 0, + 0, + 0 + ], + [ + 0, + 1027, + 18, + 38, + 0, + 0, + 10, + 43, + 402, + 0, + 0, + 58, + 0, + 0, + 1696, + 0, + 205, + 7, + 0, + 0 + ], + [ + 0, + 28, + 6, + 32, + 4, + 6, + 0, + 0, + 0, + 40, + 0, + 0, + 0, + 0, + 0, + 1793, + 0, + 0, + 0, + 0 + ], + [ + 0, + 51, + 0, + 8, + 0, + 0, + 0, + 19, + 875, + 0, + 0, + 14, + 0, + 0, + 41, + 0, + 1821, + 0, + 0, + 0 + ], + [ + 0, + 230, + 546, + 75, + 28, + 310, + 0, + 0, + 0, + 42, + 27, + 0, + 0, + 0, + 0, + 4, + 15, + 18, + 0, + 0 + ], + [ + 0, + 11, + 0, + 373, + 0, + 0, + 0, + 171, + 4, + 0, + 0, + 10, + 100, + 0, + 109, + 51, + 72, + 0, + 625, + 0 + ], + [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ] + ] + } + }, + { + "mode": "add", + "alpha": 0.1, + "metrics": { + "miou": 0.5253895215266294, + "oa": 0.7962639646104904, + "macro_f1": 0.6397282192371452, + "kappa": 0.7732745228672654, + "per_class_iou": [ + 0.7889913117185845, + 0.7873224336638971, + 0.8426673786796609, + 0.5075960679177838, + 0.8948217454428133, + 0.575326215895611, + 0.6643783371472158, + 0.6935841877180002, + 0.383834655840561, + 0.16266866566716642, + 0.8507832898172324, + 0.15649790855329584, + 0.15217391304347827, + 0.36307626938602083, + 0.8153564899451554, + 0.517260579064588, + 0.009877977919814061, + 0.29079396005845104 + ], + "confusion_matrix": [ + [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + [ + 0, + 14893, + 101, + 48, + 9, + 15, + 26, + 1, + 478, + 0, + 3, + 204, + 72, + 3, + 600, + 16, + 301, + 4, + 6, + 0 + ], + [ + 0, + 168, + 11750, + 98, + 34, + 17, + 55, + 2, + 0, + 17, + 20, + 185, + 12, + 1, + 100, + 0, + 9, + 1, + 8, + 0 + ], + [ + 0, + 165, + 134, + 12624, + 14, + 10, + 2, + 170, + 0, + 30, + 0, + 0, + 2, + 5, + 88, + 148, + 29, + 10, + 437, + 0 + ], + [ + 0, + 20, + 560, + 33, + 1136, + 50, + 0, + 0, + 0, + 0, + 84, + 0, + 18, + 11, + 0, + 2, + 7, + 123, + 3, + 0 + ], + [ + 0, + 87, + 7, + 28, + 0, + 5547, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 19, + 5, + 0, + 96, + 0, + 0 + ], + [ + 0, + 100, + 76, + 8, + 8, + 0, + 1455, + 45, + 244, + 0, + 0, + 216, + 0, + 0, + 74, + 0, + 5, + 177, + 0, + 0 + ], + [ + 0, + 10, + 0, + 22, + 0, + 0, + 11, + 4355, + 409, + 87, + 0, + 8, + 441, + 0, + 29, + 0, + 5, + 0, + 2, + 0 + ], + [ + 0, + 26, + 0, + 0, + 0, + 0, + 0, + 0, + 6562, + 0, + 0, + 9, + 0, + 0, + 0, + 0, + 1, + 0, + 0, + 0 + ], + [ + 0, + 4, + 20, + 7, + 0, + 2, + 0, + 27, + 0, + 2080, + 0, + 0, + 13, + 9, + 3, + 1, + 0, + 0, + 0, + 0 + ], + [ + 0, + 36, + 900, + 0, + 8, + 0, + 0, + 0, + 0, + 4, + 217, + 0, + 0, + 0, + 5, + 0, + 29, + 3, + 0, + 0 + ], + [ + 0, + 18, + 0, + 0, + 91, + 0, + 15, + 5, + 8, + 0, + 0, + 6517, + 0, + 0, + 14, + 0, + 68, + 0, + 6, + 0 + ], + [ + 0, + 112, + 22, + 239, + 0, + 3, + 6, + 495, + 490, + 2995, + 5, + 142, + 1085, + 187, + 123, + 60, + 10, + 7, + 65, + 0 + ], + [ + 0, + 1, + 47, + 57, + 0, + 0, + 0, + 185, + 9, + 35, + 0, + 65, + 226, + 154, + 9, + 2, + 6, + 0, + 0, + 0 + ], + [ + 0, + 1025, + 17, + 39, + 0, + 0, + 6, + 43, + 390, + 0, + 0, + 63, + 0, + 0, + 1709, + 0, + 207, + 5, + 0, + 0 + ], + [ + 0, + 28, + 6, + 43, + 3, + 5, + 0, + 0, + 0, + 40, + 0, + 0, + 0, + 0, + 0, + 1784, + 0, + 0, + 0, + 0 + ], + [ + 0, + 50, + 0, + 8, + 0, + 0, + 0, + 30, + 832, + 0, + 0, + 13, + 0, + 0, + 38, + 0, + 1858, + 0, + 0, + 0 + ], + [ + 0, + 230, + 557, + 80, + 24, + 308, + 0, + 0, + 0, + 45, + 20, + 0, + 0, + 0, + 0, + 2, + 12, + 17, + 0, + 0 + ], + [ + 0, + 16, + 0, + 403, + 0, + 0, + 0, + 173, + 3, + 0, + 0, + 13, + 103, + 0, + 101, + 43, + 74, + 0, + 597, + 0 + ], + [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ] + ] + } + }, + { + "mode": "add", + "alpha": 0.25, + "metrics": { + "miou": 0.5198674812058868, + "oa": 0.7939503647133171, + "macro_f1": 0.6342110719983496, + "kappa": 0.7705222665503484, + "per_class_iou": [ + 0.7877555332523374, + 0.7719714964370546, + 0.834885856730517, + 0.4775132275132275, + 0.8923897237033447, + 0.5780323982615567, + 0.6593688660727767, + 0.7090124123043713, + 0.3781238681637088, + 0.16057233704292528, + 0.8391382868937048, + 0.12638161721931354, + 0.153, + 0.3702090592334495, + 0.7912186379928315, + 0.5391231964483907, + 0.007960808328230252, + 0.2809573361082206 + ], + "confusion_matrix": [ + [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + [ + 0, + 14913, + 92, + 57, + 12, + 17, + 33, + 1, + 481, + 0, + 1, + 215, + 65, + 3, + 555, + 15, + 312, + 3, + 5, + 0 + ], + [ + 0, + 191, + 11700, + 99, + 72, + 17, + 49, + 0, + 0, + 14, + 19, + 184, + 8, + 1, + 105, + 0, + 10, + 0, + 8, + 0 + ], + [ + 0, + 158, + 143, + 12727, + 8, + 11, + 2, + 192, + 0, + 28, + 0, + 0, + 2, + 4, + 59, + 174, + 24, + 12, + 324, + 0 + ], + [ + 0, + 19, + 687, + 50, + 1083, + 50, + 0, + 0, + 0, + 0, + 27, + 0, + 14, + 11, + 0, + 0, + 4, + 102, + 0, + 0 + ], + [ + 0, + 91, + 38, + 42, + 7, + 5523, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 19, + 1, + 0, + 68, + 0, + 0 + ], + [ + 0, + 106, + 82, + 40, + 13, + 0, + 1463, + 33, + 218, + 0, + 1, + 241, + 0, + 0, + 60, + 0, + 5, + 146, + 0, + 0 + ], + [ + 0, + 10, + 0, + 51, + 0, + 0, + 14, + 4367, + 383, + 121, + 0, + 7, + 388, + 0, + 29, + 0, + 5, + 0, + 4, + 0 + ], + [ + 0, + 20, + 0, + 0, + 0, + 0, + 0, + 0, + 6569, + 0, + 0, + 8, + 0, + 0, + 0, + 0, + 1, + 0, + 0, + 0 + ], + [ + 0, + 3, + 20, + 9, + 0, + 2, + 0, + 30, + 0, + 2088, + 0, + 0, + 9, + 5, + 0, + 0, + 0, + 0, + 0, + 0 + ], + [ + 0, + 41, + 922, + 1, + 1, + 0, + 0, + 0, + 0, + 4, + 202, + 0, + 0, + 0, + 3, + 1, + 26, + 1, + 0, + 0 + ], + [ + 0, + 24, + 0, + 0, + 89, + 0, + 21, + 5, + 6, + 0, + 0, + 6505, + 0, + 0, + 14, + 0, + 73, + 0, + 5, + 0 + ], + [ + 0, + 121, + 38, + 302, + 0, + 0, + 3, + 541, + 434, + 3072, + 2, + 201, + 869, + 180, + 118, + 95, + 15, + 5, + 50, + 0 + ], + [ + 0, + 5, + 50, + 69, + 0, + 0, + 0, + 178, + 10, + 31, + 0, + 51, + 236, + 153, + 5, + 0, + 8, + 0, + 0, + 0 + ], + [ + 0, + 1029, + 16, + 38, + 0, + 0, + 1, + 43, + 391, + 0, + 0, + 72, + 0, + 0, + 1700, + 0, + 213, + 1, + 0, + 0 + ], + [ + 0, + 28, + 4, + 62, + 0, + 5, + 0, + 0, + 0, + 44, + 0, + 0, + 0, + 0, + 0, + 1766, + 0, + 0, + 0, + 0 + ], + [ + 0, + 44, + 0, + 11, + 0, + 0, + 0, + 48, + 740, + 0, + 0, + 10, + 0, + 0, + 33, + 0, + 1943, + 0, + 0, + 0 + ], + [ + 0, + 241, + 587, + 87, + 19, + 298, + 0, + 0, + 0, + 42, + 6, + 0, + 0, + 0, + 0, + 1, + 1, + 13, + 0, + 0 + ], + [ + 0, + 20, + 0, + 458, + 0, + 0, + 0, + 173, + 4, + 0, + 0, + 21, + 108, + 0, + 88, + 36, + 78, + 0, + 540, + 0 + ], + [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ] + ] + } + }, + { + "mode": "add", + "alpha": 0.5, + "metrics": { + "miou": 0.49184663200440387, + "oa": 0.7815147652660104, + "macro_f1": 0.605634117489226, + "kappa": 0.7565719246517705, + "per_class_iou": [ + 0.7868141171490555, + 0.7371061093247588, + 0.8104105758230583, + 0.3940505297473513, + 0.8637156909408218, + 0.4892435808466343, + 0.6341354057689433, + 0.7373918903740312, + 0.3789762340036563, + 0.09446254071661238, + 0.8154738878143133, + 0.08881875563570785, + 0.11283643892339544, + 0.386984904120767, + 0.7032730404823428, + 0.5594774874930517, + 0.0025957170668397143, + 0.2574724698479287 + ], + "confusion_matrix": [ + [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + [ + 0, + 14870, + 84, + 84, + 14, + 76, + 183, + 7, + 440, + 0, + 2, + 175, + 44, + 1, + 508, + 15, + 273, + 1, + 3, + 0 + ], + [ + 0, + 242, + 11462, + 131, + 249, + 25, + 28, + 0, + 0, + 7, + 10, + 187, + 6, + 0, + 111, + 0, + 12, + 1, + 6, + 0 + ], + [ + 0, + 166, + 174, + 12751, + 11, + 11, + 3, + 202, + 0, + 14, + 0, + 0, + 0, + 1, + 35, + 198, + 25, + 7, + 270, + 0 + ], + [ + 0, + 20, + 834, + 68, + 967, + 47, + 0, + 0, + 0, + 0, + 8, + 5, + 8, + 7, + 0, + 0, + 1, + 82, + 0, + 0 + ], + [ + 0, + 93, + 88, + 77, + 48, + 5444, + 0, + 0, + 4, + 0, + 0, + 2, + 0, + 0, + 10, + 0, + 0, + 23, + 0, + 0 + ], + [ + 0, + 131, + 100, + 70, + 23, + 2, + 1410, + 19, + 176, + 0, + 6, + 275, + 4, + 0, + 62, + 0, + 3, + 127, + 0, + 0 + ], + [ + 0, + 10, + 0, + 101, + 0, + 0, + 13, + 4243, + 226, + 125, + 0, + 7, + 154, + 0, + 471, + 0, + 11, + 0, + 18, + 0 + ], + [ + 0, + 18, + 0, + 0, + 0, + 0, + 0, + 1, + 6565, + 0, + 0, + 11, + 0, + 0, + 0, + 0, + 3, + 0, + 0, + 0 + ], + [ + 0, + 2, + 13, + 23, + 0, + 11, + 0, + 42, + 0, + 2073, + 0, + 0, + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 0 + ], + [ + 0, + 57, + 961, + 15, + 4, + 0, + 0, + 0, + 0, + 0, + 116, + 0, + 0, + 0, + 2, + 37, + 10, + 0, + 0, + 0 + ], + [ + 0, + 36, + 0, + 0, + 39, + 0, + 239, + 5, + 5, + 0, + 0, + 6324, + 2, + 0, + 17, + 0, + 73, + 0, + 2, + 0 + ], + [ + 0, + 155, + 97, + 370, + 7, + 75, + 6, + 606, + 375, + 3046, + 0, + 200, + 591, + 160, + 117, + 137, + 24, + 0, + 80, + 0 + ], + [ + 0, + 46, + 52, + 113, + 0, + 0, + 0, + 130, + 17, + 25, + 0, + 31, + 262, + 109, + 0, + 0, + 8, + 3, + 0, + 0 + ], + [ + 0, + 805, + 15, + 35, + 0, + 2, + 1, + 34, + 402, + 0, + 0, + 75, + 3, + 0, + 1897, + 0, + 231, + 2, + 2, + 0 + ], + [ + 0, + 39, + 0, + 190, + 0, + 3, + 0, + 0, + 0, + 44, + 0, + 0, + 0, + 0, + 0, + 1633, + 0, + 0, + 0, + 0 + ], + [ + 0, + 41, + 1, + 15, + 0, + 0, + 0, + 86, + 649, + 0, + 0, + 9, + 0, + 0, + 15, + 0, + 2013, + 0, + 0, + 0 + ], + [ + 0, + 226, + 654, + 93, + 12, + 262, + 1, + 0, + 0, + 43, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 4, + 0, + 0 + ], + [ + 0, + 32, + 0, + 481, + 0, + 0, + 0, + 180, + 11, + 0, + 0, + 36, + 124, + 0, + 50, + 26, + 95, + 0, + 491, + 0 + ], + [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ] + ] + } + }, + { + "mode": "replace", + "alpha": 0.1, + "metrics": { + "miou": 0.5220755678258683, + "oa": 0.7906620537483532, + "macro_f1": 0.6355453845810677, + "kappa": 0.7674325336130092, + "per_class_iou": [ + 0.7845350942592395, + 0.8027507319398107, + 0.8093123401964742, + 0.5465893892108783, + 0.8998867863496685, + 0.5861132660977502, + 0.6306990881458967, + 0.6966065747613998, + 0.38741101536155864, + 0.1552257266542981, + 0.8506645817044566, + 0.19418294225094843, + 0.1118546845124283, + 0.3387227162489895, + 0.8344216417910447, + 0.5136441159749858, + 0.02103960396039604, + 0.23369992144540455 + ], + "confusion_matrix": [ + [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + [ + 0, + 14732, + 115, + 53, + 64, + 17, + 47, + 5, + 481, + 0, + 3, + 228, + 81, + 3, + 675, + 21, + 245, + 5, + 5, + 0 + ], + [ + 0, + 108, + 11790, + 85, + 15, + 16, + 53, + 3, + 0, + 18, + 60, + 186, + 18, + 7, + 99, + 0, + 7, + 4, + 8, + 0 + ], + [ + 0, + 158, + 127, + 12028, + 20, + 11, + 3, + 197, + 0, + 30, + 2, + 0, + 2, + 5, + 173, + 126, + 37, + 1, + 948, + 0 + ], + [ + 0, + 25, + 382, + 41, + 1226, + 42, + 15, + 0, + 0, + 0, + 246, + 0, + 10, + 7, + 0, + 0, + 22, + 27, + 4, + 0 + ], + [ + 0, + 72, + 14, + 28, + 0, + 5564, + 0, + 0, + 2, + 0, + 0, + 0, + 0, + 0, + 16, + 8, + 0, + 85, + 0, + 0 + ], + [ + 0, + 66, + 77, + 4, + 15, + 0, + 1511, + 26, + 223, + 0, + 2, + 227, + 0, + 0, + 81, + 0, + 5, + 171, + 0, + 0 + ], + [ + 0, + 6, + 0, + 15, + 0, + 0, + 15, + 4150, + 327, + 124, + 0, + 10, + 635, + 0, + 65, + 5, + 4, + 0, + 23, + 0 + ], + [ + 0, + 21, + 0, + 0, + 0, + 0, + 0, + 0, + 6569, + 0, + 0, + 7, + 0, + 0, + 0, + 0, + 1, + 0, + 0, + 0 + ], + [ + 0, + 5, + 21, + 5, + 0, + 0, + 0, + 24, + 0, + 2068, + 0, + 0, + 20, + 20, + 3, + 0, + 0, + 0, + 0, + 0 + ], + [ + 0, + 23, + 882, + 0, + 2, + 0, + 0, + 0, + 0, + 5, + 251, + 0, + 0, + 0, + 5, + 0, + 32, + 2, + 0, + 0 + ], + [ + 0, + 10, + 1, + 0, + 68, + 0, + 27, + 4, + 9, + 0, + 0, + 6528, + 0, + 0, + 21, + 0, + 69, + 0, + 5, + 0 + ], + [ + 0, + 116, + 23, + 171, + 1, + 4, + 2, + 451, + 480, + 2876, + 0, + 108, + 1382, + 208, + 158, + 18, + 12, + 9, + 27, + 0 + ], + [ + 0, + 2, + 48, + 53, + 0, + 0, + 0, + 193, + 6, + 39, + 0, + 91, + 218, + 117, + 16, + 4, + 9, + 0, + 0, + 0 + ], + [ + 0, + 1033, + 18, + 37, + 0, + 2, + 7, + 52, + 425, + 0, + 0, + 63, + 0, + 0, + 1676, + 0, + 174, + 17, + 0, + 0 + ], + [ + 0, + 25, + 8, + 34, + 7, + 6, + 0, + 1, + 0, + 38, + 0, + 0, + 0, + 0, + 0, + 1789, + 1, + 0, + 0, + 0 + ], + [ + 0, + 53, + 0, + 6, + 0, + 0, + 0, + 53, + 879, + 0, + 0, + 6, + 0, + 0, + 25, + 0, + 1807, + 0, + 0, + 0 + ], + [ + 0, + 259, + 494, + 33, + 4, + 296, + 0, + 0, + 0, + 42, + 102, + 0, + 0, + 0, + 0, + 4, + 27, + 34, + 0, + 0 + ], + [ + 0, + 16, + 0, + 429, + 0, + 0, + 1, + 192, + 0, + 0, + 0, + 6, + 87, + 0, + 107, + 49, + 44, + 0, + 595, + 0 + ], + [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ] + ] + } + }, + { + "mode": "replace", + "alpha": 0.25, + "metrics": { + "miou": 0.5224507588257506, + "oa": 0.7938218313856964, + "macro_f1": 0.6359586247716839, + "kappa": 0.7706423760901594, + "per_class_iou": [ + 0.7864757358790772, + 0.7842456608811749, + 0.8179227149201299, + 0.5024325519681557, + 0.8983160621761658, + 0.586527293844367, + 0.6505514428161354, + 0.7122886866059818, + 0.3900523560209424, + 0.15796703296703296, + 0.8406976744186047, + 0.17412577349258887, + 0.11165523996082272, + 0.35655994978028877, + 0.8281835205992509, + 0.537063334280034, + 0.019157088122605363, + 0.24989154013015186 + ], + "confusion_matrix": [ + [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + [ + 0, + 14829, + 102, + 60, + 68, + 15, + 52, + 6, + 476, + 0, + 2, + 236, + 72, + 3, + 586, + 19, + 245, + 5, + 4, + 0 + ], + [ + 0, + 130, + 11748, + 90, + 45, + 16, + 50, + 1, + 0, + 17, + 49, + 185, + 16, + 7, + 103, + 0, + 8, + 4, + 8, + 0 + ], + [ + 0, + 153, + 134, + 12340, + 17, + 11, + 2, + 189, + 0, + 24, + 0, + 0, + 2, + 4, + 126, + 137, + 26, + 2, + 701, + 0 + ], + [ + 0, + 19, + 579, + 58, + 1136, + 46, + 8, + 0, + 0, + 0, + 141, + 0, + 6, + 6, + 0, + 0, + 17, + 28, + 3, + 0 + ], + [ + 0, + 78, + 40, + 38, + 0, + 5548, + 0, + 0, + 2, + 0, + 0, + 0, + 0, + 0, + 16, + 5, + 0, + 62, + 0, + 0 + ], + [ + 0, + 75, + 82, + 21, + 16, + 1, + 1515, + 26, + 214, + 0, + 2, + 231, + 0, + 0, + 72, + 0, + 3, + 150, + 0, + 0 + ], + [ + 0, + 7, + 0, + 35, + 0, + 0, + 15, + 4306, + 291, + 142, + 0, + 8, + 468, + 0, + 76, + 6, + 7, + 0, + 18, + 0 + ], + [ + 0, + 16, + 0, + 0, + 0, + 0, + 0, + 0, + 6573, + 0, + 0, + 8, + 0, + 0, + 0, + 0, + 1, + 0, + 0, + 0 + ], + [ + 0, + 4, + 21, + 7, + 0, + 1, + 0, + 25, + 0, + 2086, + 0, + 0, + 15, + 7, + 0, + 0, + 0, + 0, + 0, + 0 + ], + [ + 0, + 25, + 906, + 1, + 0, + 1, + 0, + 0, + 0, + 3, + 230, + 0, + 0, + 0, + 5, + 2, + 28, + 1, + 0, + 0 + ], + [ + 0, + 18, + 1, + 0, + 63, + 0, + 40, + 4, + 5, + 0, + 0, + 6507, + 0, + 0, + 23, + 0, + 76, + 0, + 5, + 0 + ], + [ + 0, + 118, + 32, + 250, + 1, + 3, + 2, + 488, + 474, + 2877, + 0, + 168, + 1210, + 198, + 153, + 11, + 14, + 7, + 40, + 0 + ], + [ + 0, + 4, + 49, + 69, + 0, + 0, + 0, + 192, + 4, + 37, + 0, + 75, + 233, + 114, + 8, + 0, + 11, + 0, + 0, + 0 + ], + [ + 0, + 1054, + 18, + 39, + 0, + 0, + 5, + 50, + 373, + 0, + 0, + 64, + 0, + 0, + 1704, + 0, + 185, + 12, + 0, + 0 + ], + [ + 0, + 26, + 6, + 61, + 3, + 6, + 0, + 0, + 0, + 38, + 0, + 0, + 0, + 0, + 0, + 1769, + 0, + 0, + 0, + 0 + ], + [ + 0, + 50, + 0, + 7, + 0, + 0, + 0, + 64, + 791, + 0, + 0, + 7, + 0, + 0, + 19, + 0, + 1891, + 0, + 0, + 0 + ], + [ + 0, + 276, + 533, + 41, + 1, + 287, + 0, + 0, + 0, + 44, + 60, + 0, + 0, + 0, + 0, + 4, + 19, + 30, + 0, + 0 + ], + [ + 0, + 22, + 0, + 442, + 0, + 0, + 1, + 195, + 0, + 0, + 0, + 16, + 91, + 0, + 88, + 43, + 52, + 0, + 576, + 0 + ], + [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ] + ] + } + }, + { + "mode": "replace", + "alpha": 0.5, + "metrics": { + "miou": 0.5004760390457482, + "oa": 0.7847495206777991, + "macro_f1": 0.6148030394131894, + "kappa": 0.7602501975907026, + "per_class_iou": [ + 0.7842857142857143, + 0.7392960929932192, + 0.8180592991913747, + 0.3989426596177308, + 0.8629032258064516, + 0.4941540577716644, + 0.6261048909840896, + 0.747270245677889, + 0.38462966400594023, + 0.1173780487804878, + 0.8131995368583559, + 0.11552832162606487, + 0.09775967413441955, + 0.38535800482703136, + 0.7662517289073306, + 0.5723628092123969, + 0.013486176668914362, + 0.27159855147439216 + ], + "confusion_matrix": [ + [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + [ + 0, + 14823, + 93, + 88, + 36, + 81, + 178, + 13, + 449, + 1, + 1, + 210, + 46, + 1, + 506, + 17, + 232, + 3, + 2, + 0 + ], + [ + 0, + 212, + 11448, + 124, + 276, + 25, + 34, + 0, + 0, + 7, + 27, + 183, + 6, + 3, + 112, + 0, + 11, + 1, + 8, + 0 + ], + [ + 0, + 154, + 167, + 12747, + 9, + 12, + 3, + 205, + 0, + 12, + 0, + 0, + 0, + 1, + 64, + 174, + 24, + 3, + 293, + 0 + ], + [ + 0, + 22, + 843, + 64, + 981, + 43, + 2, + 0, + 0, + 0, + 46, + 0, + 5, + 6, + 0, + 0, + 2, + 33, + 0, + 0 + ], + [ + 0, + 91, + 96, + 73, + 42, + 5457, + 0, + 0, + 7, + 0, + 0, + 2, + 0, + 0, + 7, + 0, + 0, + 14, + 0, + 0 + ], + [ + 0, + 114, + 103, + 59, + 39, + 1, + 1437, + 23, + 176, + 0, + 9, + 258, + 5, + 0, + 54, + 0, + 3, + 127, + 0, + 0 + ], + [ + 0, + 10, + 0, + 84, + 0, + 0, + 14, + 4250, + 128, + 134, + 0, + 7, + 209, + 0, + 499, + 2, + 11, + 0, + 31, + 0 + ], + [ + 0, + 14, + 0, + 0, + 0, + 0, + 0, + 0, + 6570, + 0, + 0, + 10, + 0, + 0, + 1, + 0, + 3, + 0, + 0, + 0 + ], + [ + 0, + 3, + 19, + 22, + 0, + 5, + 0, + 41, + 0, + 2072, + 0, + 0, + 2, + 2, + 0, + 0, + 0, + 0, + 0, + 0 + ], + [ + 0, + 45, + 947, + 11, + 0, + 3, + 0, + 0, + 0, + 1, + 154, + 0, + 0, + 0, + 3, + 20, + 18, + 0, + 0, + 0 + ], + [ + 0, + 35, + 0, + 0, + 8, + 0, + 267, + 4, + 7, + 0, + 0, + 6321, + 1, + 0, + 24, + 0, + 73, + 0, + 2, + 0 + ], + [ + 0, + 156, + 82, + 335, + 2, + 103, + 1, + 641, + 378, + 2952, + 0, + 196, + 773, + 173, + 133, + 21, + 26, + 3, + 71, + 0 + ], + [ + 0, + 33, + 60, + 98, + 0, + 0, + 0, + 156, + 11, + 26, + 0, + 46, + 258, + 96, + 2, + 0, + 9, + 1, + 0, + 0 + ], + [ + 0, + 825, + 15, + 36, + 0, + 0, + 1, + 38, + 384, + 0, + 0, + 78, + 4, + 0, + 1916, + 0, + 204, + 3, + 0, + 0 + ], + [ + 0, + 31, + 2, + 174, + 0, + 4, + 0, + 0, + 0, + 36, + 0, + 0, + 0, + 0, + 0, + 1662, + 0, + 0, + 0, + 0 + ], + [ + 0, + 41, + 0, + 13, + 0, + 0, + 0, + 89, + 650, + 0, + 0, + 8, + 0, + 0, + 15, + 0, + 2013, + 0, + 0, + 0 + ], + [ + 0, + 298, + 581, + 59, + 0, + 258, + 0, + 0, + 0, + 52, + 27, + 0, + 0, + 0, + 0, + 0, + 0, + 20, + 0, + 0 + ], + [ + 0, + 36, + 0, + 474, + 0, + 0, + 0, + 199, + 4, + 0, + 0, + 33, + 109, + 0, + 48, + 26, + 72, + 0, + 525, + 0 + ], + [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ] + ] + } + } + ], + "reference_val_miou": 0.5256398451814701, + "delta_val_pp": 0.0, + "patch_bootstrap_delta_interval_pp": [ + 0.0, + 0.0 + ], + "bootstrap_caveat": "descriptive, after validation selection; not an independent significance test", + "selection_split": "validation", + "test_used_for_selection": false + }, + "test_policy": "exploratory all-variants sweep explicitly requested by user; no test retuning", + "patches": 482 + }, + { + "kind": "spatial_cnv2", + "metrics": { + "miou": 0.49455547330691263, + "oa": 0.8109266736579659, + "macro_f1": 0.6234136021853756, + "kappa": 0.7642966739749818, + "per_class_iou": [ + 0.8061330522981268, + 0.7198486670090578, + 0.8757351877577422, + 0.46213693236161063, + 0.8703389461776095, + 0.38416520104311963, + 0.4490553274645572, + 0.6216216216216216, + 0.7901944411308601, + 0.07114146695276376, + 0.5587868716244287, + 0.3175281724644782, + 0.4373326486446833, + 0.2655897022970766, + 0.6168043633350977, + 0.28662647573048294, + 0.0918118400487935, + 0.27714760156231727 + ], + "confusion_matrix": [ + [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + [ + 0, + 1311069, + 6756, + 8420, + 815, + 744, + 883, + 2246, + 19285, + 602, + 381, + 3742, + 6998, + 405, + 29504, + 1126, + 71312, + 1029, + 686, + 0 + ], + [ + 0, + 12671, + 493367, + 5115, + 3930, + 1130, + 1764, + 172, + 746, + 546, + 21217, + 15339, + 437, + 131, + 1045, + 166, + 699, + 2161, + 44, + 0 + ], + [ + 0, + 17785, + 2752, + 641744, + 302, + 960, + 172, + 3539, + 862, + 3810, + 169, + 19, + 2132, + 202, + 3012, + 4846, + 607, + 129, + 5247, + 0 + ], + [ + 0, + 9412, + 46049, + 1786, + 82625, + 1310, + 4247, + 55, + 196, + 62, + 7994, + 4414, + 287, + 376, + 482, + 80, + 252, + 3761, + 4, + 0 + ], + [ + 0, + 2675, + 1166, + 868, + 380, + 120018, + 262, + 124, + 19, + 220, + 688, + 194, + 22, + 35, + 1476, + 29, + 106, + 837, + 0, + 0 + ], + [ + 0, + 4040, + 7283, + 711, + 3621, + 289, + 25338, + 175, + 883, + 118, + 2677, + 5012, + 146, + 454, + 1986, + 330, + 163, + 536, + 0, + 0 + ], + [ + 0, + 1538, + 141, + 3611, + 17, + 249, + 89, + 47797, + 7620, + 3775, + 49, + 378, + 1239, + 1298, + 2624, + 9685, + 632, + 168, + 1023, + 0 + ], + [ + 0, + 18456, + 124, + 4622, + 0, + 0, + 17, + 1317, + 151754, + 0, + 1, + 338, + 854, + 23, + 403, + 328, + 9076, + 0, + 164, + 0 + ], + [ + 0, + 482, + 193, + 1058, + 35, + 123, + 379, + 620, + 116, + 66242, + 0, + 28, + 795, + 26, + 446, + 416, + 71, + 2, + 15, + 0 + ], + [ + 0, + 3092, + 44739, + 412, + 1763, + 216, + 156, + 5, + 11, + 5, + 7062, + 21, + 6, + 0, + 299, + 8, + 83, + 484, + 0, + 0 + ], + [ + 0, + 1322, + 2401, + 20, + 0, + 0, + 1773, + 184, + 1235, + 0, + 143, + 60525, + 38, + 0, + 1508, + 0, + 693, + 4, + 114, + 0 + ], + [ + 0, + 3196, + 123, + 4634, + 46, + 7, + 910, + 9697, + 3978, + 1955, + 63, + 3941, + 25923, + 639, + 1593, + 517, + 2180, + 171, + 1142, + 0 + ], + [ + 0, + 589, + 140, + 1406, + 6, + 31, + 92, + 2996, + 519, + 719, + 7, + 314, + 2523, + 11923, + 406, + 408, + 473, + 9, + 52, + 0 + ], + [ + 0, + 57524, + 1032, + 1194, + 723, + 333, + 1050, + 1045, + 7046, + 405, + 646, + 1114, + 551, + 254, + 47497, + 318, + 6554, + 377, + 131, + 0 + ], + [ + 0, + 1525, + 170, + 6485, + 90, + 129, + 5, + 653, + 17, + 376, + 8, + 2255, + 478, + 3, + 400, + 53604, + 52, + 13, + 2053, + 0 + ], + [ + 0, + 12728, + 331, + 778, + 2, + 0, + 34, + 422, + 10506, + 48, + 33, + 1127, + 965, + 73, + 710, + 23, + 49018, + 5, + 56, + 0 + ], + [ + 0, + 8636, + 11253, + 1214, + 3447, + 3258, + 322, + 34, + 20, + 20, + 6827, + 1, + 610, + 689, + 1495, + 80, + 44, + 4817, + 2, + 0 + ], + [ + 0, + 4694, + 43, + 2183, + 220, + 0, + 39, + 1222, + 3590, + 122, + 2, + 118, + 2844, + 42, + 3653, + 230, + 1161, + 11, + 11850, + 0 + ], + [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ] + ] + }, + "baseline": { + "miou": 0.49455547330691263, + "oa": 0.8109266736579659, + "macro_f1": 0.6234136021853756, + "kappa": 0.7642966739749818, + "per_class_iou": [ + 0.8061330522981268, + 0.7198486670090578, + 0.8757351877577422, + 0.46213693236161063, + 0.8703389461776095, + 0.38416520104311963, + 0.4490553274645572, + 0.6216216216216216, + 0.7901944411308601, + 0.07114146695276376, + 0.5587868716244287, + 0.3175281724644782, + 0.4373326486446833, + 0.2655897022970766, + 0.6168043633350977, + 0.28662647573048294, + 0.0918118400487935, + 0.27714760156231727 + ], + "confusion_matrix": [ + [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + [ + 0, + 1311069, + 6756, + 8420, + 815, + 744, + 883, + 2246, + 19285, + 602, + 381, + 3742, + 6998, + 405, + 29504, + 1126, + 71312, + 1029, + 686, + 0 + ], + [ + 0, + 12671, + 493367, + 5115, + 3930, + 1130, + 1764, + 172, + 746, + 546, + 21217, + 15339, + 437, + 131, + 1045, + 166, + 699, + 2161, + 44, + 0 + ], + [ + 0, + 17785, + 2752, + 641744, + 302, + 960, + 172, + 3539, + 862, + 3810, + 169, + 19, + 2132, + 202, + 3012, + 4846, + 607, + 129, + 5247, + 0 + ], + [ + 0, + 9412, + 46049, + 1786, + 82625, + 1310, + 4247, + 55, + 196, + 62, + 7994, + 4414, + 287, + 376, + 482, + 80, + 252, + 3761, + 4, + 0 + ], + [ + 0, + 2675, + 1166, + 868, + 380, + 120018, + 262, + 124, + 19, + 220, + 688, + 194, + 22, + 35, + 1476, + 29, + 106, + 837, + 0, + 0 + ], + [ + 0, + 4040, + 7283, + 711, + 3621, + 289, + 25338, + 175, + 883, + 118, + 2677, + 5012, + 146, + 454, + 1986, + 330, + 163, + 536, + 0, + 0 + ], + [ + 0, + 1538, + 141, + 3611, + 17, + 249, + 89, + 47797, + 7620, + 3775, + 49, + 378, + 1239, + 1298, + 2624, + 9685, + 632, + 168, + 1023, + 0 + ], + [ + 0, + 18456, + 124, + 4622, + 0, + 0, + 17, + 1317, + 151754, + 0, + 1, + 338, + 854, + 23, + 403, + 328, + 9076, + 0, + 164, + 0 + ], + [ + 0, + 482, + 193, + 1058, + 35, + 123, + 379, + 620, + 116, + 66242, + 0, + 28, + 795, + 26, + 446, + 416, + 71, + 2, + 15, + 0 + ], + [ + 0, + 3092, + 44739, + 412, + 1763, + 216, + 156, + 5, + 11, + 5, + 7062, + 21, + 6, + 0, + 299, + 8, + 83, + 484, + 0, + 0 + ], + [ + 0, + 1322, + 2401, + 20, + 0, + 0, + 1773, + 184, + 1235, + 0, + 143, + 60525, + 38, + 0, + 1508, + 0, + 693, + 4, + 114, + 0 + ], + [ + 0, + 3196, + 123, + 4634, + 46, + 7, + 910, + 9697, + 3978, + 1955, + 63, + 3941, + 25923, + 639, + 1593, + 517, + 2180, + 171, + 1142, + 0 + ], + [ + 0, + 589, + 140, + 1406, + 6, + 31, + 92, + 2996, + 519, + 719, + 7, + 314, + 2523, + 11923, + 406, + 408, + 473, + 9, + 52, + 0 + ], + [ + 0, + 57524, + 1032, + 1194, + 723, + 333, + 1050, + 1045, + 7046, + 405, + 646, + 1114, + 551, + 254, + 47497, + 318, + 6554, + 377, + 131, + 0 + ], + [ + 0, + 1525, + 170, + 6485, + 90, + 129, + 5, + 653, + 17, + 376, + 8, + 2255, + 478, + 3, + 400, + 53604, + 52, + 13, + 2053, + 0 + ], + [ + 0, + 12728, + 331, + 778, + 2, + 0, + 34, + 422, + 10506, + 48, + 33, + 1127, + 965, + 73, + 710, + 23, + 49018, + 5, + 56, + 0 + ], + [ + 0, + 8636, + 11253, + 1214, + 3447, + 3258, + 322, + 34, + 20, + 20, + 6827, + 1, + 610, + 689, + 1495, + 80, + 44, + 4817, + 2, + 0 + ], + [ + 0, + 4694, + 43, + 2183, + 220, + 0, + 39, + 1222, + 3590, + 122, + 2, + 118, + 2844, + 42, + 3653, + 230, + 1161, + 11, + 11850, + 0 + ], + [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ] + ] + }, + "standalone": { + "miou": 0.3477271642310159, + "oa": 0.7311173068990188, + "macro_f1": 0.47399044050199163, + "kappa": 0.6627413883181686, + "per_class_iou": [ + 0.753894038894556, + 0.6188570630725029, + 0.7041744310332012, + 0.189854907126041, + 0.5885554393948712, + 0.14114484795348622, + 0.4118412183011004, + 0.5903264937856961, + 0.438922571178324, + 0.031115536869022152, + 0.41236029179773026, + 0.27258156470853995, + 0.09785702989087458, + 0.17806734203126634, + 0.41062172046430273, + 0.24767305778254164, + 0.028816314467267623, + 0.14242508740696253 + ], + "confusion_matrix": [ + [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + [ + 0, + 1283001, + 17492, + 17999, + 2995, + 4107, + 2310, + 2329, + 11077, + 851, + 2233, + 4823, + 4735, + 120, + 34830, + 2635, + 71897, + 1914, + 655, + 0 + ], + [ + 0, + 24191, + 483125, + 10418, + 6697, + 9732, + 4917, + 264, + 1387, + 415, + 7452, + 7013, + 912, + 106, + 1069, + 143, + 1031, + 1747, + 61, + 0 + ], + [ + 0, + 49152, + 36872, + 549449, + 5231, + 4975, + 530, + 1740, + 1270, + 6581, + 1185, + 165, + 6900, + 483, + 1495, + 11648, + 2295, + 1133, + 7185, + 0 + ], + [ + 0, + 15181, + 73250, + 5377, + 36612, + 9554, + 4663, + 139, + 212, + 1665, + 4805, + 5122, + 1402, + 178, + 998, + 303, + 348, + 3443, + 140, + 0 + ], + [ + 0, + 4911, + 3804, + 941, + 1049, + 114846, + 172, + 42, + 57, + 651, + 384, + 225, + 82, + 18, + 1165, + 246, + 75, + 449, + 2, + 0 + ], + [ + 0, + 5135, + 14012, + 1220, + 4870, + 3345, + 12235, + 270, + 979, + 742, + 1150, + 6294, + 89, + 434, + 624, + 533, + 449, + 1277, + 104, + 0 + ], + [ + 0, + 2232, + 1750, + 10571, + 187, + 6178, + 453, + 43378, + 6723, + 364, + 33, + 754, + 2215, + 506, + 753, + 3788, + 1228, + 91, + 729, + 0 + ], + [ + 0, + 22569, + 1114, + 3988, + 0, + 22, + 477, + 1978, + 136745, + 79, + 29, + 937, + 993, + 24, + 1318, + 686, + 15086, + 9, + 1423, + 0 + ], + [ + 0, + 3247, + 416, + 6175, + 89, + 16265, + 13, + 666, + 235, + 38587, + 57, + 267, + 1405, + 5, + 207, + 3132, + 148, + 105, + 28, + 0 + ], + [ + 0, + 5432, + 43449, + 1256, + 1352, + 1674, + 194, + 51, + 8, + 102, + 2531, + 88, + 320, + 57, + 880, + 35, + 239, + 644, + 50, + 0 + ], + [ + 0, + 982, + 6246, + 90, + 196, + 58, + 13764, + 531, + 1728, + 0, + 81, + 43130, + 152, + 3, + 1952, + 55, + 925, + 12, + 55, + 0 + ], + [ + 0, + 4300, + 815, + 6031, + 441, + 1040, + 353, + 6662, + 3585, + 1492, + 175, + 2709, + 25340, + 566, + 1930, + 1106, + 2281, + 121, + 1768, + 0 + ], + [ + 0, + 1642, + 1056, + 2390, + 156, + 1842, + 2302, + 855, + 431, + 1612, + 336, + 1078, + 5133, + 2475, + 443, + 392, + 424, + 4, + 42, + 0 + ], + [ + 0, + 66460, + 2771, + 2675, + 1512, + 1139, + 1282, + 1511, + 6358, + 324, + 257, + 867, + 1441, + 30, + 32360, + 707, + 7449, + 253, + 398, + 0 + ], + [ + 0, + 2617, + 584, + 16238, + 424, + 992, + 534, + 1502, + 23, + 1210, + 681, + 1368, + 694, + 38, + 640, + 38736, + 71, + 116, + 1848, + 0 + ], + [ + 0, + 16067, + 422, + 947, + 1, + 45, + 491, + 735, + 6771, + 86, + 12, + 2755, + 633, + 6, + 2318, + 162, + 45289, + 10, + 109, + 0 + ], + [ + 0, + 8529, + 15696, + 1792, + 4067, + 4615, + 387, + 33, + 0, + 439, + 4092, + 0, + 975, + 83, + 473, + 11, + 17, + 1560, + 0, + 0 + ], + [ + 0, + 3182, + 244, + 3877, + 183, + 430, + 80, + 4086, + 3322, + 253, + 18, + 168, + 4167, + 22, + 2840, + 437, + 2036, + 39, + 6640, + 0 + ], + [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ] + ] + }, + "delta_test_pp": 0.0, + "standalone_delta_test_pp": -14.682830907589672, + "seconds": 132.91322241723537, + "validation_selection": { + "kind": "spatial_cnv2", + "seed": 3407, + "checkpoint_epoch": 78, + "standalone": { + "miou": 0.40405148156161474, + "oa": 0.7140561904863916, + "macro_f1": 0.5241973609971833, + "kappa": 0.6802631663253548, + "per_class_iou": [ + 0.7318300785182202, + 0.6089161772557394, + 0.6771006903118305, + 0.3058273075287112, + 0.8332829046898639, + 0.38648275862068965, + 0.5813625685199687, + 0.7205537568382271, + 0.33593902677350007, + 0.004611837048424289, + 0.5302084716505112, + 0.10893395450808441, + 0.07775377969762419, + 0.39564142889238374, + 0.3924324324324324, + 0.46893638170974156, + 0.0, + 0.11311311311311312 + ], + "confusion_matrix": [ + [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + [ + 0, + 14540, + 342, + 63, + 31, + 111, + 150, + 4, + 388, + 1, + 3, + 122, + 41, + 1, + 553, + 41, + 375, + 2, + 12, + 0 + ], + [ + 0, + 341, + 11405, + 123, + 167, + 71, + 100, + 1, + 0, + 0, + 13, + 181, + 4, + 0, + 9, + 5, + 46, + 7, + 4, + 0 + ], + [ + 0, + 350, + 803, + 11378, + 38, + 17, + 9, + 221, + 0, + 4, + 11, + 34, + 196, + 0, + 1, + 412, + 32, + 2, + 360, + 0 + ], + [ + 0, + 35, + 1056, + 136, + 719, + 64, + 2, + 0, + 0, + 0, + 3, + 0, + 0, + 0, + 0, + 32, + 0, + 0, + 0, + 0 + ], + [ + 0, + 146, + 59, + 7, + 42, + 5508, + 2, + 4, + 0, + 0, + 0, + 0, + 3, + 0, + 0, + 18, + 0, + 0, + 0, + 0 + ], + [ + 0, + 73, + 132, + 11, + 3, + 224, + 1401, + 130, + 139, + 0, + 65, + 89, + 0, + 118, + 17, + 0, + 6, + 0, + 0, + 0 + ], + [ + 0, + 13, + 132, + 225, + 10, + 0, + 10, + 3712, + 435, + 0, + 0, + 1, + 538, + 0, + 44, + 143, + 116, + 0, + 0, + 0 + ], + [ + 0, + 85, + 1, + 0, + 0, + 0, + 10, + 9, + 6454, + 0, + 0, + 7, + 1, + 0, + 3, + 0, + 28, + 0, + 0, + 0 + ], + [ + 0, + 4, + 13, + 306, + 0, + 84, + 0, + 0, + 0, + 1719, + 0, + 0, + 1, + 0, + 0, + 39, + 0, + 0, + 0, + 0 + ], + [ + 0, + 27, + 1143, + 2, + 0, + 0, + 0, + 0, + 0, + 0, + 6, + 0, + 0, + 0, + 19, + 5, + 0, + 0, + 0, + 0 + ], + [ + 0, + 25, + 1805, + 35, + 1, + 0, + 700, + 12, + 3, + 0, + 0, + 3993, + 5, + 1, + 15, + 0, + 141, + 0, + 6, + 0 + ], + [ + 0, + 279, + 90, + 617, + 3, + 131, + 29, + 260, + 363, + 2888, + 2, + 180, + 795, + 10, + 96, + 167, + 46, + 0, + 90, + 0 + ], + [ + 0, + 108, + 84, + 121, + 0, + 0, + 131, + 0, + 14, + 22, + 2, + 0, + 224, + 72, + 0, + 3, + 15, + 0, + 0, + 0 + ], + [ + 0, + 861, + 19, + 16, + 0, + 0, + 69, + 19, + 360, + 0, + 0, + 145, + 6, + 0, + 1761, + 0, + 248, + 0, + 0, + 0 + ], + [ + 0, + 69, + 0, + 638, + 2, + 17, + 0, + 58, + 0, + 36, + 0, + 0, + 0, + 0, + 0, + 1089, + 0, + 0, + 0, + 0 + ], + [ + 0, + 26, + 3, + 30, + 3, + 3, + 0, + 58, + 636, + 0, + 0, + 8, + 5, + 0, + 170, + 0, + 1887, + 0, + 0, + 0 + ], + [ + 0, + 484, + 501, + 207, + 4, + 99, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + [ + 0, + 162, + 70, + 399, + 0, + 0, + 5, + 230, + 21, + 0, + 0, + 22, + 228, + 0, + 20, + 1, + 142, + 0, + 226, + 0 + ], + [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ] + ] + }, + "chosen": { + "mode": "add", + "alpha": 0.0, + "metrics": { + "miou": 0.5256398451814701, + "oa": 0.7954606313128608, + "macro_f1": 0.6400266863319044, + "kappa": 0.7725060156424988, + "per_class_iou": [ + 0.7863696632193052, + 0.7940560621411685, + 0.8422681105804802, + 0.5216035634743875, + 0.8953563366655918, + 0.5666403785488959, + 0.6681021224238696, + 0.6854425749817118, + 0.3865969759193579, + 0.15913978494623657, + 0.8521227955584585, + 0.16817463736895016, + 0.15324165029469547, + 0.3526720731960907, + 0.8232323232323232, + 0.5073836723321259, + 0.010297482837528604, + 0.2888170055452865 + ], + "confusion_matrix": [ + [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + [ + 0, + 14827, + 104, + 46, + 8, + 16, + 20, + 1, + 480, + 0, + 3, + 211, + 80, + 3, + 659, + 16, + 296, + 4, + 6, + 0 + ], + [ + 0, + 160, + 11756, + 93, + 27, + 17, + 59, + 3, + 0, + 18, + 25, + 184, + 13, + 1, + 99, + 0, + 10, + 4, + 8, + 0 + ], + [ + 0, + 165, + 132, + 12522, + 19, + 10, + 2, + 144, + 0, + 31, + 1, + 0, + 2, + 6, + 113, + 137, + 34, + 11, + 539, + 0 + ], + [ + 0, + 23, + 477, + 28, + 1171, + 50, + 1, + 0, + 0, + 0, + 130, + 0, + 18, + 10, + 0, + 2, + 6, + 128, + 3, + 0 + ], + [ + 0, + 83, + 1, + 23, + 0, + 5553, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 19, + 8, + 1, + 101, + 0, + 0 + ], + [ + 0, + 96, + 76, + 5, + 7, + 0, + 1437, + 49, + 253, + 0, + 0, + 217, + 0, + 0, + 77, + 0, + 5, + 186, + 0, + 0 + ], + [ + 0, + 7, + 0, + 14, + 0, + 0, + 10, + 4344, + 415, + 65, + 0, + 10, + 472, + 0, + 33, + 1, + 4, + 0, + 4, + 0 + ], + [ + 0, + 29, + 0, + 0, + 0, + 0, + 0, + 0, + 6559, + 0, + 0, + 9, + 0, + 0, + 0, + 0, + 1, + 0, + 0, + 0 + ], + [ + 0, + 6, + 20, + 6, + 0, + 1, + 0, + 26, + 0, + 2071, + 0, + 0, + 16, + 14, + 5, + 1, + 0, + 0, + 0, + 0 + ], + [ + 0, + 34, + 886, + 0, + 14, + 0, + 2, + 0, + 0, + 5, + 222, + 0, + 0, + 0, + 5, + 0, + 30, + 4, + 0, + 0 + ], + [ + 0, + 17, + 0, + 0, + 91, + 0, + 14, + 5, + 10, + 0, + 0, + 6523, + 0, + 0, + 13, + 0, + 63, + 0, + 6, + 0 + ], + [ + 0, + 107, + 18, + 205, + 0, + 3, + 10, + 473, + 524, + 2954, + 6, + 129, + 1171, + 188, + 120, + 47, + 11, + 8, + 72, + 0 + ], + [ + 0, + 1, + 44, + 53, + 0, + 0, + 0, + 189, + 8, + 36, + 1, + 71, + 216, + 156, + 12, + 2, + 7, + 0, + 0, + 0 + ], + [ + 0, + 1027, + 18, + 38, + 0, + 0, + 10, + 43, + 402, + 0, + 0, + 58, + 0, + 0, + 1696, + 0, + 205, + 7, + 0, + 0 + ], + [ + 0, + 28, + 6, + 32, + 4, + 6, + 0, + 0, + 0, + 40, + 0, + 0, + 0, + 0, + 0, + 1793, + 0, + 0, + 0, + 0 + ], + [ + 0, + 51, + 0, + 8, + 0, + 0, + 0, + 19, + 875, + 0, + 0, + 14, + 0, + 0, + 41, + 0, + 1821, + 0, + 0, + 0 + ], + [ + 0, + 230, + 546, + 75, + 28, + 310, + 0, + 0, + 0, + 42, + 27, + 0, + 0, + 0, + 0, + 4, + 15, + 18, + 0, + 0 + ], + [ + 0, + 11, + 0, + 373, + 0, + 0, + 0, + 171, + 4, + 0, + 0, + 10, + 100, + 0, + 109, + 51, + 72, + 0, + 625, + 0 + ], + [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ] + ] + } + }, + "records": [ + { + "mode": "add", + "alpha": 0.0, + "metrics": { + "miou": 0.5256398451814701, + "oa": 0.7954606313128608, + "macro_f1": 0.6400266863319044, + "kappa": 0.7725060156424988, + "per_class_iou": [ + 0.7863696632193052, + 0.7940560621411685, + 0.8422681105804802, + 0.5216035634743875, + 0.8953563366655918, + 0.5666403785488959, + 0.6681021224238696, + 0.6854425749817118, + 0.3865969759193579, + 0.15913978494623657, + 0.8521227955584585, + 0.16817463736895016, + 0.15324165029469547, + 0.3526720731960907, + 0.8232323232323232, + 0.5073836723321259, + 0.010297482837528604, + 0.2888170055452865 + ], + "confusion_matrix": [ + [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + [ + 0, + 14827, + 104, + 46, + 8, + 16, + 20, + 1, + 480, + 0, + 3, + 211, + 80, + 3, + 659, + 16, + 296, + 4, + 6, + 0 + ], + [ + 0, + 160, + 11756, + 93, + 27, + 17, + 59, + 3, + 0, + 18, + 25, + 184, + 13, + 1, + 99, + 0, + 10, + 4, + 8, + 0 + ], + [ + 0, + 165, + 132, + 12522, + 19, + 10, + 2, + 144, + 0, + 31, + 1, + 0, + 2, + 6, + 113, + 137, + 34, + 11, + 539, + 0 + ], + [ + 0, + 23, + 477, + 28, + 1171, + 50, + 1, + 0, + 0, + 0, + 130, + 0, + 18, + 10, + 0, + 2, + 6, + 128, + 3, + 0 + ], + [ + 0, + 83, + 1, + 23, + 0, + 5553, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 19, + 8, + 1, + 101, + 0, + 0 + ], + [ + 0, + 96, + 76, + 5, + 7, + 0, + 1437, + 49, + 253, + 0, + 0, + 217, + 0, + 0, + 77, + 0, + 5, + 186, + 0, + 0 + ], + [ + 0, + 7, + 0, + 14, + 0, + 0, + 10, + 4344, + 415, + 65, + 0, + 10, + 472, + 0, + 33, + 1, + 4, + 0, + 4, + 0 + ], + [ + 0, + 29, + 0, + 0, + 0, + 0, + 0, + 0, + 6559, + 0, + 0, + 9, + 0, + 0, + 0, + 0, + 1, + 0, + 0, + 0 + ], + [ + 0, + 6, + 20, + 6, + 0, + 1, + 0, + 26, + 0, + 2071, + 0, + 0, + 16, + 14, + 5, + 1, + 0, + 0, + 0, + 0 + ], + [ + 0, + 34, + 886, + 0, + 14, + 0, + 2, + 0, + 0, + 5, + 222, + 0, + 0, + 0, + 5, + 0, + 30, + 4, + 0, + 0 + ], + [ + 0, + 17, + 0, + 0, + 91, + 0, + 14, + 5, + 10, + 0, + 0, + 6523, + 0, + 0, + 13, + 0, + 63, + 0, + 6, + 0 + ], + [ + 0, + 107, + 18, + 205, + 0, + 3, + 10, + 473, + 524, + 2954, + 6, + 129, + 1171, + 188, + 120, + 47, + 11, + 8, + 72, + 0 + ], + [ + 0, + 1, + 44, + 53, + 0, + 0, + 0, + 189, + 8, + 36, + 1, + 71, + 216, + 156, + 12, + 2, + 7, + 0, + 0, + 0 + ], + [ + 0, + 1027, + 18, + 38, + 0, + 0, + 10, + 43, + 402, + 0, + 0, + 58, + 0, + 0, + 1696, + 0, + 205, + 7, + 0, + 0 + ], + [ + 0, + 28, + 6, + 32, + 4, + 6, + 0, + 0, + 0, + 40, + 0, + 0, + 0, + 0, + 0, + 1793, + 0, + 0, + 0, + 0 + ], + [ + 0, + 51, + 0, + 8, + 0, + 0, + 0, + 19, + 875, + 0, + 0, + 14, + 0, + 0, + 41, + 0, + 1821, + 0, + 0, + 0 + ], + [ + 0, + 230, + 546, + 75, + 28, + 310, + 0, + 0, + 0, + 42, + 27, + 0, + 0, + 0, + 0, + 4, + 15, + 18, + 0, + 0 + ], + [ + 0, + 11, + 0, + 373, + 0, + 0, + 0, + 171, + 4, + 0, + 0, + 10, + 100, + 0, + 109, + 51, + 72, + 0, + 625, + 0 + ], + [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ] + ] + } + }, + { + "mode": "add", + "alpha": 0.1, + "metrics": { + "miou": 0.5253566843040298, + "oa": 0.797217253457011, + "macro_f1": 0.6384253488489144, + "kappa": 0.7742739210042299, + "per_class_iou": [ + 0.7895933583628576, + 0.783501032851336, + 0.8460407617774808, + 0.5035971223021583, + 0.8945841392649904, + 0.6070866141732284, + 0.6743318831572406, + 0.6901779134645752, + 0.38474387527839643, + 0.1240768094534712, + 0.8577449947312961, + 0.16062767475035664, + 0.15637450199203187, + 0.36758040146773147, + 0.8022573363431151, + 0.5129130797000833, + 0.00771055753262159, + 0.29347826086956524 + ], + "confusion_matrix": [ + [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + [ + 0, + 14932, + 96, + 48, + 7, + 16, + 29, + 0, + 464, + 0, + 3, + 195, + 73, + 3, + 584, + 18, + 304, + 4, + 4, + 0 + ], + [ + 0, + 174, + 11758, + 95, + 22, + 18, + 59, + 2, + 0, + 17, + 20, + 186, + 10, + 1, + 94, + 0, + 12, + 2, + 7, + 0 + ], + [ + 0, + 173, + 148, + 12661, + 12, + 11, + 2, + 155, + 0, + 30, + 0, + 0, + 2, + 5, + 48, + 160, + 29, + 5, + 427, + 0 + ], + [ + 0, + 21, + 575, + 36, + 1120, + 50, + 0, + 0, + 0, + 0, + 106, + 0, + 17, + 10, + 0, + 3, + 4, + 103, + 2, + 0 + ], + [ + 0, + 91, + 1, + 22, + 0, + 5550, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 19, + 7, + 0, + 99, + 0, + 0 + ], + [ + 0, + 87, + 68, + 5, + 7, + 0, + 1542, + 71, + 224, + 0, + 0, + 160, + 0, + 0, + 71, + 0, + 5, + 168, + 0, + 0 + ], + [ + 0, + 10, + 0, + 23, + 0, + 0, + 10, + 4340, + 421, + 45, + 0, + 10, + 492, + 0, + 24, + 0, + 3, + 0, + 1, + 0 + ], + [ + 0, + 32, + 0, + 0, + 0, + 0, + 0, + 0, + 6556, + 0, + 0, + 8, + 0, + 0, + 0, + 0, + 2, + 0, + 0, + 0 + ], + [ + 0, + 3, + 20, + 10, + 0, + 2, + 0, + 25, + 0, + 2073, + 0, + 0, + 16, + 12, + 4, + 1, + 0, + 0, + 0, + 0 + ], + [ + 0, + 33, + 955, + 0, + 8, + 0, + 0, + 0, + 0, + 2, + 168, + 0, + 0, + 0, + 5, + 0, + 29, + 2, + 0, + 0 + ], + [ + 0, + 19, + 0, + 0, + 94, + 0, + 16, + 5, + 8, + 0, + 0, + 6512, + 0, + 0, + 12, + 0, + 70, + 0, + 6, + 0 + ], + [ + 0, + 119, + 24, + 228, + 0, + 1, + 6, + 427, + 522, + 3010, + 5, + 152, + 1126, + 177, + 112, + 69, + 9, + 8, + 51, + 0 + ], + [ + 0, + 5, + 51, + 64, + 0, + 0, + 0, + 157, + 9, + 39, + 0, + 60, + 236, + 157, + 10, + 0, + 8, + 0, + 0, + 0 + ], + [ + 0, + 1037, + 17, + 36, + 0, + 0, + 10, + 40, + 393, + 0, + 0, + 55, + 0, + 0, + 1703, + 0, + 213, + 0, + 0, + 0 + ], + [ + 0, + 30, + 6, + 46, + 4, + 6, + 0, + 0, + 0, + 40, + 0, + 0, + 0, + 0, + 0, + 1777, + 0, + 0, + 0, + 0 + ], + [ + 0, + 50, + 0, + 9, + 0, + 0, + 0, + 15, + 853, + 0, + 0, + 12, + 0, + 0, + 43, + 0, + 1847, + 0, + 0, + 0 + ], + [ + 0, + 220, + 569, + 88, + 23, + 311, + 0, + 0, + 0, + 39, + 18, + 0, + 0, + 0, + 0, + 2, + 12, + 13, + 0, + 0 + ], + [ + 0, + 27, + 0, + 387, + 0, + 0, + 0, + 160, + 7, + 0, + 0, + 12, + 118, + 0, + 103, + 46, + 72, + 0, + 594, + 0 + ], + [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ] + ] + } + }, + { + "mode": "add", + "alpha": 0.25, + "metrics": { + "miou": 0.516564195217938, + "oa": 0.7944323646918949, + "macro_f1": 0.6273532656144724, + "kappa": 0.7708830561206497, + "per_class_iou": [ + 0.7906866364307562, + 0.7582197532459144, + 0.8315693192212205, + 0.46860782529572337, + 0.8968407479045777, + 0.6498054474708171, + 0.6788205453392517, + 0.6995089666951324, + 0.3788683391320271, + 0.05259026687598116, + 0.8600926538716082, + 0.1405168761474368, + 0.1583949313621964, + 0.37664071190211346, + 0.7513157894736842, + 0.5159879748565182, + 0.007802340702210663, + 0.28188638799571275 + ], + "confusion_matrix": [ + [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + [ + 0, + 14993, + 88, + 53, + 3, + 15, + 46, + 0, + 453, + 0, + 0, + 165, + 67, + 3, + 539, + 18, + 331, + 3, + 3, + 0 + ], + [ + 0, + 200, + 11738, + 97, + 26, + 22, + 60, + 0, + 0, + 14, + 13, + 185, + 8, + 1, + 87, + 0, + 21, + 0, + 5, + 0 + ], + [ + 0, + 185, + 186, + 12728, + 7, + 12, + 2, + 174, + 0, + 25, + 0, + 0, + 1, + 4, + 7, + 203, + 25, + 1, + 308, + 0 + ], + [ + 0, + 23, + 782, + 69, + 1030, + 51, + 0, + 0, + 0, + 0, + 44, + 0, + 5, + 6, + 0, + 7, + 0, + 30, + 0, + 0 + ], + [ + 0, + 100, + 5, + 21, + 1, + 5564, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 17, + 8, + 0, + 73, + 0, + 0 + ], + [ + 0, + 79, + 63, + 5, + 6, + 4, + 1670, + 87, + 185, + 0, + 0, + 110, + 0, + 0, + 63, + 0, + 5, + 131, + 0, + 0 + ], + [ + 0, + 10, + 1, + 67, + 0, + 0, + 10, + 4282, + 429, + 22, + 0, + 6, + 531, + 0, + 11, + 0, + 10, + 0, + 0, + 0 + ], + [ + 0, + 33, + 0, + 0, + 0, + 0, + 0, + 0, + 6553, + 0, + 0, + 8, + 0, + 0, + 0, + 0, + 4, + 0, + 0, + 0 + ], + [ + 0, + 0, + 21, + 45, + 0, + 4, + 0, + 12, + 0, + 2069, + 0, + 0, + 12, + 1, + 0, + 2, + 0, + 0, + 0, + 0 + ], + [ + 0, + 33, + 1074, + 0, + 2, + 0, + 0, + 0, + 0, + 0, + 67, + 0, + 0, + 0, + 8, + 0, + 18, + 0, + 0, + 0 + ], + [ + 0, + 18, + 7, + 0, + 92, + 0, + 26, + 5, + 6, + 0, + 0, + 6498, + 0, + 0, + 10, + 0, + 77, + 0, + 3, + 0 + ], + [ + 0, + 147, + 40, + 324, + 0, + 0, + 4, + 335, + 484, + 3128, + 4, + 224, + 995, + 136, + 93, + 93, + 13, + 5, + 21, + 0 + ], + [ + 0, + 8, + 62, + 80, + 0, + 0, + 10, + 114, + 12, + 40, + 0, + 32, + 276, + 150, + 1, + 0, + 11, + 0, + 0, + 0 + ], + [ + 0, + 1036, + 17, + 31, + 0, + 0, + 4, + 33, + 399, + 0, + 0, + 57, + 0, + 0, + 1693, + 0, + 234, + 0, + 0, + 0 + ], + [ + 0, + 37, + 4, + 109, + 0, + 6, + 0, + 0, + 0, + 40, + 0, + 0, + 0, + 0, + 0, + 1713, + 0, + 0, + 0, + 0 + ], + [ + 0, + 41, + 0, + 19, + 0, + 0, + 0, + 15, + 795, + 0, + 0, + 8, + 0, + 0, + 63, + 0, + 1888, + 0, + 0, + 0 + ], + [ + 0, + 178, + 654, + 97, + 14, + 301, + 0, + 0, + 0, + 26, + 11, + 0, + 0, + 0, + 0, + 1, + 1, + 12, + 0, + 0 + ], + [ + 0, + 54, + 0, + 421, + 0, + 0, + 0, + 154, + 7, + 0, + 0, + 18, + 135, + 0, + 92, + 39, + 80, + 0, + 526, + 0 + ], + [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ] + ] + } + }, + { + "mode": "add", + "alpha": 0.5, + "metrics": { + "miou": 0.47550999146334605, + "oa": 0.7709643212904747, + "macro_f1": 0.5909476286622565, + "kappa": 0.7441541243665372, + "per_class_iou": [ + 0.772286421791168, + 0.6974118777397466, + 0.7909551510602364, + 0.35448776065276516, + 0.8780487804878049, + 0.5463206307490145, + 0.6453773276706959, + 0.7048843743246164, + 0.3772142457579713, + 0.0168, + 0.7524752475247525, + 0.11706208268219917, + 0.12183908045977011, + 0.40853798485196235, + 0.6189075630252101, + 0.5053343741868332, + 0.0, + 0.251236943375481 + ], + "confusion_matrix": [ + [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + [ + 0, + 14970, + 145, + 59, + 4, + 68, + 108, + 0, + 420, + 0, + 0, + 106, + 49, + 1, + 454, + 23, + 371, + 1, + 1, + 0 + ], + [ + 0, + 273, + 11614, + 101, + 88, + 35, + 86, + 1, + 0, + 5, + 7, + 185, + 6, + 1, + 40, + 0, + 31, + 0, + 4, + 0 + ], + [ + 0, + 261, + 274, + 12645, + 6, + 13, + 0, + 181, + 0, + 16, + 0, + 0, + 13, + 0, + 1, + 203, + 22, + 0, + 233, + 0 + ], + [ + 0, + 29, + 1022, + 132, + 782, + 43, + 0, + 0, + 0, + 0, + 8, + 0, + 0, + 0, + 0, + 31, + 0, + 0, + 0, + 0 + ], + [ + 0, + 115, + 22, + 17, + 27, + 5580, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 9, + 10, + 0, + 9, + 0, + 0 + ], + [ + 0, + 72, + 89, + 9, + 4, + 106, + 1663, + 113, + 145, + 0, + 31, + 89, + 0, + 0, + 43, + 0, + 5, + 39, + 0, + 0 + ], + [ + 0, + 10, + 44, + 210, + 0, + 0, + 7, + 3951, + 523, + 0, + 0, + 0, + 470, + 0, + 26, + 65, + 73, + 0, + 0, + 0 + ], + [ + 0, + 48, + 0, + 0, + 0, + 0, + 4, + 0, + 6523, + 0, + 0, + 7, + 0, + 0, + 1, + 0, + 15, + 0, + 0, + 0 + ], + [ + 0, + 0, + 14, + 107, + 0, + 9, + 0, + 0, + 0, + 2023, + 0, + 0, + 7, + 0, + 0, + 6, + 0, + 0, + 0, + 0 + ], + [ + 0, + 33, + 1132, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 21, + 0, + 0, + 0, + 11, + 0, + 4, + 0, + 0, + 0 + ], + [ + 0, + 22, + 643, + 0, + 29, + 0, + 311, + 6, + 5, + 0, + 0, + 5624, + 3, + 0, + 14, + 0, + 85, + 0, + 0, + 0 + ], + [ + 0, + 222, + 61, + 458, + 1, + 38, + 4, + 274, + 448, + 3106, + 2, + 241, + 824, + 72, + 82, + 127, + 31, + 0, + 55, + 0 + ], + [ + 0, + 70, + 84, + 121, + 0, + 0, + 109, + 0, + 16, + 26, + 0, + 5, + 246, + 106, + 0, + 0, + 13, + 0, + 0, + 0 + ], + [ + 0, + 934, + 17, + 19, + 0, + 0, + 4, + 26, + 395, + 0, + 0, + 73, + 1, + 0, + 1780, + 0, + 255, + 0, + 0, + 0 + ], + [ + 0, + 48, + 2, + 340, + 0, + 6, + 0, + 0, + 0, + 40, + 0, + 0, + 0, + 0, + 0, + 1473, + 0, + 0, + 0, + 0 + ], + [ + 0, + 26, + 0, + 30, + 0, + 0, + 0, + 15, + 694, + 0, + 0, + 3, + 1, + 0, + 118, + 0, + 1942, + 0, + 0, + 0 + ], + [ + 0, + 319, + 611, + 113, + 0, + 248, + 0, + 0, + 0, + 4, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + [ + 0, + 122, + 16, + 402, + 0, + 0, + 3, + 127, + 10, + 0, + 0, + 23, + 197, + 0, + 54, + 6, + 109, + 0, + 457, + 0 + ], + [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ] + ] + } + }, + { + "mode": "replace", + "alpha": 0.1, + "metrics": { + "miou": 0.521105278951686, + "oa": 0.7901693426591403, + "macro_f1": 0.6335883903825662, + "kappa": 0.7668517053999989, + "per_class_iou": [ + 0.7841657810839533, + 0.7997155242481713, + 0.8084332480129328, + 0.5393966681674921, + 0.9009868953243811, + 0.6106811145510835, + 0.6266055045871559, + 0.6953067062188791, + 0.38744832769635473, + 0.1354679802955665, + 0.861309052520454, + 0.1944367176634214, + 0.11174785100286533, + 0.33677602268124746, + 0.8283858998144712, + 0.5119047619047619, + 0.018832391713747645, + 0.22829457364341085 + ], + "confusion_matrix": [ + [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + [ + 0, + 14758, + 115, + 51, + 57, + 15, + 54, + 5, + 471, + 0, + 3, + 197, + 82, + 3, + 681, + 22, + 256, + 5, + 5, + 0 + ], + [ + 0, + 113, + 11807, + 81, + 5, + 16, + 54, + 2, + 0, + 16, + 56, + 187, + 19, + 5, + 97, + 0, + 7, + 4, + 8, + 0 + ], + [ + 0, + 176, + 130, + 12002, + 19, + 11, + 2, + 190, + 0, + 31, + 1, + 0, + 2, + 5, + 143, + 128, + 35, + 0, + 993, + 0 + ], + [ + 0, + 28, + 425, + 40, + 1198, + 42, + 15, + 0, + 0, + 0, + 249, + 0, + 9, + 9, + 0, + 0, + 17, + 11, + 4, + 0 + ], + [ + 0, + 73, + 10, + 25, + 0, + 5569, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 18, + 8, + 0, + 86, + 0, + 0 + ], + [ + 0, + 61, + 75, + 4, + 12, + 1, + 1578, + 43, + 212, + 0, + 2, + 170, + 0, + 0, + 79, + 0, + 5, + 166, + 0, + 0 + ], + [ + 0, + 6, + 0, + 14, + 0, + 0, + 15, + 4098, + 338, + 113, + 0, + 9, + 682, + 1, + 74, + 7, + 3, + 0, + 19, + 0 + ], + [ + 0, + 25, + 0, + 0, + 0, + 0, + 0, + 0, + 6563, + 0, + 0, + 8, + 0, + 0, + 0, + 0, + 2, + 0, + 0, + 0 + ], + [ + 0, + 4, + 21, + 6, + 0, + 1, + 0, + 22, + 0, + 2062, + 0, + 0, + 23, + 24, + 3, + 0, + 0, + 0, + 0, + 0 + ], + [ + 0, + 25, + 917, + 0, + 1, + 0, + 0, + 0, + 0, + 2, + 220, + 0, + 0, + 0, + 5, + 0, + 31, + 1, + 0, + 0 + ], + [ + 0, + 8, + 2, + 0, + 68, + 0, + 25, + 5, + 10, + 0, + 0, + 6527, + 0, + 0, + 20, + 0, + 69, + 0, + 8, + 0 + ], + [ + 0, + 119, + 24, + 160, + 0, + 5, + 2, + 434, + 488, + 2878, + 0, + 119, + 1398, + 204, + 153, + 24, + 11, + 10, + 17, + 0 + ], + [ + 0, + 2, + 53, + 54, + 0, + 0, + 0, + 188, + 6, + 41, + 0, + 82, + 226, + 117, + 13, + 4, + 10, + 0, + 0, + 0 + ], + [ + 0, + 1046, + 18, + 37, + 0, + 1, + 8, + 51, + 430, + 0, + 0, + 55, + 2, + 0, + 1663, + 0, + 178, + 15, + 0, + 0 + ], + [ + 0, + 25, + 10, + 38, + 7, + 6, + 0, + 0, + 0, + 36, + 0, + 0, + 0, + 0, + 0, + 1786, + 1, + 0, + 0, + 0 + ], + [ + 0, + 53, + 0, + 7, + 0, + 0, + 0, + 38, + 886, + 0, + 0, + 4, + 0, + 0, + 35, + 0, + 1806, + 0, + 0, + 0 + ], + [ + 0, + 260, + 486, + 38, + 5, + 294, + 0, + 0, + 0, + 39, + 111, + 0, + 0, + 0, + 0, + 4, + 28, + 30, + 0, + 0 + ], + [ + 0, + 16, + 1, + 423, + 0, + 0, + 1, + 183, + 0, + 0, + 0, + 5, + 99, + 0, + 113, + 50, + 46, + 0, + 589, + 0 + ], + [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ] + ] + } + }, + { + "mode": "replace", + "alpha": 0.25, + "metrics": { + "miou": 0.517464751550992, + "oa": 0.7927828536540954, + "macro_f1": 0.6280197264990299, + "kappa": 0.7692836629553479, + "per_class_iou": [ + 0.7843964153927253, + 0.7737485218762318, + 0.8243805748265609, + 0.4874715261958998, + 0.9023797960174842, + 0.6416539050535988, + 0.649929610511497, + 0.7033780160857909, + 0.38699400299850073, + 0.07687028140013727, + 0.8613022763366861, + 0.1702959240647683, + 0.11546184738955824, + 0.35557917109458026, + 0.7962194559704933, + 0.5153631284916201, + 0.01381578947368421, + 0.255125284738041 + ], + "confusion_matrix": [ + [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + [ + 0, + 14880, + 104, + 53, + 44, + 13, + 69, + 3, + 448, + 0, + 2, + 175, + 77, + 3, + 599, + 20, + 282, + 5, + 3, + 0 + ], + [ + 0, + 160, + 11778, + 85, + 7, + 19, + 58, + 1, + 0, + 15, + 41, + 187, + 11, + 3, + 91, + 0, + 13, + 1, + 7, + 0 + ], + [ + 0, + 179, + 170, + 12477, + 13, + 12, + 2, + 150, + 0, + 21, + 0, + 0, + 2, + 4, + 59, + 138, + 26, + 0, + 615, + 0 + ], + [ + 0, + 35, + 681, + 69, + 1070, + 41, + 12, + 0, + 0, + 0, + 127, + 0, + 1, + 4, + 0, + 2, + 2, + 1, + 2, + 0 + ], + [ + 0, + 92, + 9, + 23, + 0, + 5574, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 14, + 8, + 0, + 69, + 0, + 0 + ], + [ + 0, + 61, + 73, + 6, + 10, + 4, + 1676, + 68, + 177, + 0, + 2, + 118, + 0, + 0, + 73, + 0, + 5, + 135, + 0, + 0 + ], + [ + 0, + 8, + 0, + 55, + 0, + 0, + 15, + 4155, + 324, + 99, + 0, + 6, + 631, + 0, + 51, + 8, + 16, + 0, + 11, + 0 + ], + [ + 0, + 28, + 0, + 0, + 0, + 0, + 0, + 0, + 6559, + 0, + 0, + 8, + 0, + 0, + 0, + 0, + 3, + 0, + 0, + 0 + ], + [ + 0, + 2, + 22, + 33, + 0, + 3, + 0, + 11, + 0, + 2065, + 0, + 0, + 18, + 12, + 0, + 0, + 0, + 0, + 0, + 0 + ], + [ + 0, + 21, + 1035, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 112, + 0, + 0, + 0, + 6, + 1, + 27, + 0, + 0, + 0 + ], + [ + 0, + 13, + 8, + 0, + 67, + 0, + 34, + 5, + 5, + 0, + 0, + 6508, + 0, + 0, + 19, + 0, + 76, + 0, + 7, + 0 + ], + [ + 0, + 137, + 35, + 250, + 0, + 3, + 2, + 373, + 520, + 2920, + 0, + 193, + 1220, + 174, + 135, + 39, + 13, + 8, + 24, + 0 + ], + [ + 0, + 3, + 56, + 83, + 0, + 0, + 6, + 157, + 6, + 43, + 0, + 56, + 256, + 115, + 5, + 0, + 10, + 0, + 0, + 0 + ], + [ + 0, + 1059, + 17, + 34, + 0, + 0, + 6, + 44, + 405, + 0, + 0, + 57, + 2, + 0, + 1673, + 0, + 201, + 6, + 0, + 0 + ], + [ + 0, + 26, + 6, + 100, + 6, + 6, + 0, + 0, + 0, + 38, + 0, + 0, + 0, + 0, + 0, + 1727, + 0, + 0, + 0, + 0 + ], + [ + 0, + 51, + 0, + 10, + 0, + 0, + 0, + 28, + 842, + 0, + 0, + 3, + 0, + 0, + 50, + 0, + 1845, + 0, + 0, + 0 + ], + [ + 0, + 271, + 528, + 49, + 1, + 287, + 0, + 0, + 0, + 34, + 83, + 0, + 0, + 0, + 0, + 2, + 19, + 21, + 0, + 0 + ], + [ + 0, + 44, + 1, + 417, + 0, + 0, + 0, + 174, + 0, + 0, + 0, + 11, + 120, + 0, + 99, + 42, + 58, + 0, + 560, + 0 + ], + [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ] + ] + } + }, + { + "mode": "replace", + "alpha": 0.5, + "metrics": { + "miou": 0.47929270191396, + "oa": 0.7717462323668342, + "macro_f1": 0.5949293688091122, + "kappa": 0.7450350263963793, + "per_class_iou": [ + 0.7716965574108431, + 0.6965996168582376, + 0.7955245458545478, + 0.36613272311212813, + 0.8897550111358574, + 0.5450097847358122, + 0.6422315926046059, + 0.7203530060672918, + 0.3827253827253827, + 0.026583268178264268, + 0.7379772270596116, + 0.12600387704237054, + 0.1184939091915836, + 0.4000910332271279, + 0.6456726649528706, + 0.5064969504110316, + 0.001445086705202312, + 0.2544763971785133 + ], + "confusion_matrix": [ + [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + [ + 0, + 14974, + 153, + 65, + 6, + 72, + 126, + 0, + 408, + 0, + 0, + 94, + 52, + 1, + 473, + 22, + 330, + 4, + 0, + 0 + ], + [ + 0, + 253, + 11636, + 97, + 86, + 33, + 78, + 1, + 0, + 4, + 13, + 187, + 6, + 1, + 53, + 0, + 26, + 0, + 3, + 0 + ], + [ + 0, + 244, + 278, + 12656, + 6, + 12, + 1, + 182, + 0, + 12, + 0, + 0, + 6, + 2, + 1, + 190, + 20, + 0, + 258, + 0 + ], + [ + 0, + 34, + 989, + 133, + 800, + 42, + 2, + 0, + 0, + 0, + 26, + 0, + 0, + 0, + 0, + 21, + 0, + 0, + 0, + 0 + ], + [ + 0, + 108, + 23, + 17, + 19, + 5593, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 7, + 12, + 0, + 10, + 0, + 0 + ], + [ + 0, + 66, + 99, + 8, + 5, + 73, + 1671, + 103, + 139, + 0, + 33, + 88, + 0, + 0, + 47, + 0, + 4, + 72, + 0, + 0 + ], + [ + 0, + 10, + 40, + 211, + 0, + 0, + 5, + 3960, + 340, + 0, + 0, + 0, + 658, + 0, + 25, + 61, + 69, + 0, + 0, + 0 + ], + [ + 0, + 42, + 0, + 0, + 0, + 0, + 2, + 0, + 6530, + 0, + 0, + 8, + 0, + 0, + 1, + 0, + 15, + 0, + 0, + 0 + ], + [ + 0, + 0, + 19, + 106, + 0, + 5, + 0, + 0, + 0, + 2025, + 0, + 0, + 8, + 0, + 0, + 3, + 0, + 0, + 0, + 0 + ], + [ + 0, + 25, + 1123, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 34, + 0, + 0, + 0, + 11, + 0, + 8, + 0, + 0, + 0 + ], + [ + 0, + 19, + 741, + 0, + 16, + 0, + 341, + 6, + 5, + 0, + 0, + 5509, + 3, + 0, + 13, + 0, + 86, + 0, + 3, + 0 + ], + [ + 0, + 228, + 57, + 442, + 0, + 33, + 2, + 270, + 449, + 3037, + 1, + 224, + 910, + 103, + 94, + 106, + 34, + 3, + 53, + 0 + ], + [ + 0, + 54, + 77, + 106, + 0, + 0, + 94, + 40, + 11, + 24, + 1, + 15, + 253, + 107, + 1, + 0, + 13, + 0, + 0, + 0 + ], + [ + 0, + 973, + 17, + 20, + 0, + 0, + 5, + 29, + 372, + 0, + 0, + 86, + 1, + 0, + 1758, + 0, + 243, + 0, + 0, + 0 + ], + [ + 0, + 41, + 4, + 315, + 0, + 6, + 0, + 0, + 0, + 36, + 0, + 0, + 0, + 0, + 0, + 1507, + 0, + 0, + 0, + 0 + ], + [ + 0, + 34, + 1, + 23, + 0, + 0, + 0, + 19, + 734, + 0, + 0, + 2, + 1, + 0, + 105, + 0, + 1910, + 0, + 0, + 0 + ], + [ + 0, + 373, + 585, + 99, + 0, + 221, + 0, + 0, + 0, + 12, + 3, + 0, + 0, + 0, + 0, + 0, + 0, + 2, + 0, + 0 + ], + [ + 0, + 120, + 21, + 398, + 0, + 0, + 2, + 137, + 9, + 0, + 0, + 19, + 188, + 0, + 59, + 10, + 94, + 0, + 469, + 0 + ], + [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ] + ] + } + } + ], + "reference_val_miou": 0.5256398451814701, + "delta_val_pp": 0.0, + "patch_bootstrap_delta_interval_pp": [ + 0.0, + 0.0 + ], + "bootstrap_caveat": "descriptive, after validation selection; not an independent significance test", + "selection_split": "validation", + "test_used_for_selection": false + }, + "test_policy": "exploratory all-variants sweep explicitly requested by user; no test retuning", + "patches": 482 + }, + { + "kind": "spatial_inception", + "metrics": { + "miou": 0.49455547330691263, + "oa": 0.8109266736579659, + "macro_f1": 0.6234136021853756, + "kappa": 0.7642966739749818, + "per_class_iou": [ + 0.8061330522981268, + 0.7198486670090578, + 0.8757351877577422, + 0.46213693236161063, + 0.8703389461776095, + 0.38416520104311963, + 0.4490553274645572, + 0.6216216216216216, + 0.7901944411308601, + 0.07114146695276376, + 0.5587868716244287, + 0.3175281724644782, + 0.4373326486446833, + 0.2655897022970766, + 0.6168043633350977, + 0.28662647573048294, + 0.0918118400487935, + 0.27714760156231727 + ], + "confusion_matrix": [ + [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + [ + 0, + 1311069, + 6756, + 8420, + 815, + 744, + 883, + 2246, + 19285, + 602, + 381, + 3742, + 6998, + 405, + 29504, + 1126, + 71312, + 1029, + 686, + 0 + ], + [ + 0, + 12671, + 493367, + 5115, + 3930, + 1130, + 1764, + 172, + 746, + 546, + 21217, + 15339, + 437, + 131, + 1045, + 166, + 699, + 2161, + 44, + 0 + ], + [ + 0, + 17785, + 2752, + 641744, + 302, + 960, + 172, + 3539, + 862, + 3810, + 169, + 19, + 2132, + 202, + 3012, + 4846, + 607, + 129, + 5247, + 0 + ], + [ + 0, + 9412, + 46049, + 1786, + 82625, + 1310, + 4247, + 55, + 196, + 62, + 7994, + 4414, + 287, + 376, + 482, + 80, + 252, + 3761, + 4, + 0 + ], + [ + 0, + 2675, + 1166, + 868, + 380, + 120018, + 262, + 124, + 19, + 220, + 688, + 194, + 22, + 35, + 1476, + 29, + 106, + 837, + 0, + 0 + ], + [ + 0, + 4040, + 7283, + 711, + 3621, + 289, + 25338, + 175, + 883, + 118, + 2677, + 5012, + 146, + 454, + 1986, + 330, + 163, + 536, + 0, + 0 + ], + [ + 0, + 1538, + 141, + 3611, + 17, + 249, + 89, + 47797, + 7620, + 3775, + 49, + 378, + 1239, + 1298, + 2624, + 9685, + 632, + 168, + 1023, + 0 + ], + [ + 0, + 18456, + 124, + 4622, + 0, + 0, + 17, + 1317, + 151754, + 0, + 1, + 338, + 854, + 23, + 403, + 328, + 9076, + 0, + 164, + 0 + ], + [ + 0, + 482, + 193, + 1058, + 35, + 123, + 379, + 620, + 116, + 66242, + 0, + 28, + 795, + 26, + 446, + 416, + 71, + 2, + 15, + 0 + ], + [ + 0, + 3092, + 44739, + 412, + 1763, + 216, + 156, + 5, + 11, + 5, + 7062, + 21, + 6, + 0, + 299, + 8, + 83, + 484, + 0, + 0 + ], + [ + 0, + 1322, + 2401, + 20, + 0, + 0, + 1773, + 184, + 1235, + 0, + 143, + 60525, + 38, + 0, + 1508, + 0, + 693, + 4, + 114, + 0 + ], + [ + 0, + 3196, + 123, + 4634, + 46, + 7, + 910, + 9697, + 3978, + 1955, + 63, + 3941, + 25923, + 639, + 1593, + 517, + 2180, + 171, + 1142, + 0 + ], + [ + 0, + 589, + 140, + 1406, + 6, + 31, + 92, + 2996, + 519, + 719, + 7, + 314, + 2523, + 11923, + 406, + 408, + 473, + 9, + 52, + 0 + ], + [ + 0, + 57524, + 1032, + 1194, + 723, + 333, + 1050, + 1045, + 7046, + 405, + 646, + 1114, + 551, + 254, + 47497, + 318, + 6554, + 377, + 131, + 0 + ], + [ + 0, + 1525, + 170, + 6485, + 90, + 129, + 5, + 653, + 17, + 376, + 8, + 2255, + 478, + 3, + 400, + 53604, + 52, + 13, + 2053, + 0 + ], + [ + 0, + 12728, + 331, + 778, + 2, + 0, + 34, + 422, + 10506, + 48, + 33, + 1127, + 965, + 73, + 710, + 23, + 49018, + 5, + 56, + 0 + ], + [ + 0, + 8636, + 11253, + 1214, + 3447, + 3258, + 322, + 34, + 20, + 20, + 6827, + 1, + 610, + 689, + 1495, + 80, + 44, + 4817, + 2, + 0 + ], + [ + 0, + 4694, + 43, + 2183, + 220, + 0, + 39, + 1222, + 3590, + 122, + 2, + 118, + 2844, + 42, + 3653, + 230, + 1161, + 11, + 11850, + 0 + ], + [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ] + ] + }, + "baseline": { + "miou": 0.49455547330691263, + "oa": 0.8109266736579659, + "macro_f1": 0.6234136021853756, + "kappa": 0.7642966739749818, + "per_class_iou": [ + 0.8061330522981268, + 0.7198486670090578, + 0.8757351877577422, + 0.46213693236161063, + 0.8703389461776095, + 0.38416520104311963, + 0.4490553274645572, + 0.6216216216216216, + 0.7901944411308601, + 0.07114146695276376, + 0.5587868716244287, + 0.3175281724644782, + 0.4373326486446833, + 0.2655897022970766, + 0.6168043633350977, + 0.28662647573048294, + 0.0918118400487935, + 0.27714760156231727 + ], + "confusion_matrix": [ + [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + [ + 0, + 1311069, + 6756, + 8420, + 815, + 744, + 883, + 2246, + 19285, + 602, + 381, + 3742, + 6998, + 405, + 29504, + 1126, + 71312, + 1029, + 686, + 0 + ], + [ + 0, + 12671, + 493367, + 5115, + 3930, + 1130, + 1764, + 172, + 746, + 546, + 21217, + 15339, + 437, + 131, + 1045, + 166, + 699, + 2161, + 44, + 0 + ], + [ + 0, + 17785, + 2752, + 641744, + 302, + 960, + 172, + 3539, + 862, + 3810, + 169, + 19, + 2132, + 202, + 3012, + 4846, + 607, + 129, + 5247, + 0 + ], + [ + 0, + 9412, + 46049, + 1786, + 82625, + 1310, + 4247, + 55, + 196, + 62, + 7994, + 4414, + 287, + 376, + 482, + 80, + 252, + 3761, + 4, + 0 + ], + [ + 0, + 2675, + 1166, + 868, + 380, + 120018, + 262, + 124, + 19, + 220, + 688, + 194, + 22, + 35, + 1476, + 29, + 106, + 837, + 0, + 0 + ], + [ + 0, + 4040, + 7283, + 711, + 3621, + 289, + 25338, + 175, + 883, + 118, + 2677, + 5012, + 146, + 454, + 1986, + 330, + 163, + 536, + 0, + 0 + ], + [ + 0, + 1538, + 141, + 3611, + 17, + 249, + 89, + 47797, + 7620, + 3775, + 49, + 378, + 1239, + 1298, + 2624, + 9685, + 632, + 168, + 1023, + 0 + ], + [ + 0, + 18456, + 124, + 4622, + 0, + 0, + 17, + 1317, + 151754, + 0, + 1, + 338, + 854, + 23, + 403, + 328, + 9076, + 0, + 164, + 0 + ], + [ + 0, + 482, + 193, + 1058, + 35, + 123, + 379, + 620, + 116, + 66242, + 0, + 28, + 795, + 26, + 446, + 416, + 71, + 2, + 15, + 0 + ], + [ + 0, + 3092, + 44739, + 412, + 1763, + 216, + 156, + 5, + 11, + 5, + 7062, + 21, + 6, + 0, + 299, + 8, + 83, + 484, + 0, + 0 + ], + [ + 0, + 1322, + 2401, + 20, + 0, + 0, + 1773, + 184, + 1235, + 0, + 143, + 60525, + 38, + 0, + 1508, + 0, + 693, + 4, + 114, + 0 + ], + [ + 0, + 3196, + 123, + 4634, + 46, + 7, + 910, + 9697, + 3978, + 1955, + 63, + 3941, + 25923, + 639, + 1593, + 517, + 2180, + 171, + 1142, + 0 + ], + [ + 0, + 589, + 140, + 1406, + 6, + 31, + 92, + 2996, + 519, + 719, + 7, + 314, + 2523, + 11923, + 406, + 408, + 473, + 9, + 52, + 0 + ], + [ + 0, + 57524, + 1032, + 1194, + 723, + 333, + 1050, + 1045, + 7046, + 405, + 646, + 1114, + 551, + 254, + 47497, + 318, + 6554, + 377, + 131, + 0 + ], + [ + 0, + 1525, + 170, + 6485, + 90, + 129, + 5, + 653, + 17, + 376, + 8, + 2255, + 478, + 3, + 400, + 53604, + 52, + 13, + 2053, + 0 + ], + [ + 0, + 12728, + 331, + 778, + 2, + 0, + 34, + 422, + 10506, + 48, + 33, + 1127, + 965, + 73, + 710, + 23, + 49018, + 5, + 56, + 0 + ], + [ + 0, + 8636, + 11253, + 1214, + 3447, + 3258, + 322, + 34, + 20, + 20, + 6827, + 1, + 610, + 689, + 1495, + 80, + 44, + 4817, + 2, + 0 + ], + [ + 0, + 4694, + 43, + 2183, + 220, + 0, + 39, + 1222, + 3590, + 122, + 2, + 118, + 2844, + 42, + 3653, + 230, + 1161, + 11, + 11850, + 0 + ], + [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ] + ] + }, + "standalone": { + "miou": 0.3576047227318887, + "oa": 0.7297207300774479, + "macro_f1": 0.48501700176012985, + "kappa": 0.6646923934090379, + "per_class_iou": [ + 0.7504258657267587, + 0.6192878545844914, + 0.7251854617428417, + 0.23980080088450353, + 0.591934885331882, + 0.16185288957553223, + 0.3389989615784008, + 0.5707213062082864, + 0.5547349948816512, + 0.030980550736358775, + 0.4621804903495044, + 0.204798701230247, + 0.11619906479625919, + 0.19150151579685817, + 0.4404741971132916, + 0.23916852450780293, + 0.04367058511285346, + 0.15496835901647263 + ], + "confusion_matrix": [ + [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + [ + 0, + 1249342, + 10361, + 24240, + 3012, + 5259, + 2675, + 2340, + 27173, + 2667, + 1162, + 5156, + 5802, + 586, + 43310, + 2732, + 64908, + 14932, + 346, + 0 + ], + [ + 0, + 25971, + 433813, + 11995, + 27041, + 14629, + 5095, + 537, + 3051, + 535, + 8550, + 16314, + 1471, + 1513, + 1008, + 580, + 862, + 7493, + 222, + 0 + ], + [ + 0, + 42172, + 9285, + 567169, + 6070, + 5069, + 1184, + 5603, + 4624, + 13407, + 933, + 264, + 5273, + 1105, + 3295, + 11068, + 1454, + 4322, + 5992, + 0 + ], + [ + 0, + 12485, + 48701, + 3965, + 51620, + 17165, + 6212, + 773, + 365, + 472, + 3413, + 7584, + 960, + 1499, + 1329, + 262, + 221, + 6348, + 18, + 0 + ], + [ + 0, + 2922, + 1188, + 1201, + 634, + 119633, + 37, + 96, + 136, + 309, + 163, + 383, + 69, + 40, + 1004, + 114, + 47, + 1141, + 2, + 0 + ], + [ + 0, + 4291, + 11134, + 1155, + 4297, + 2919, + 12362, + 263, + 1512, + 328, + 1537, + 7667, + 568, + 386, + 1106, + 704, + 591, + 2935, + 7, + 0 + ], + [ + 0, + 1199, + 1088, + 11482, + 288, + 3760, + 430, + 40807, + 9454, + 648, + 153, + 555, + 3076, + 625, + 1262, + 3365, + 355, + 3258, + 128, + 0 + ], + [ + 0, + 16023, + 75, + 3521, + 0, + 13, + 64, + 2379, + 156316, + 68, + 1, + 1338, + 1714, + 20, + 870, + 144, + 4820, + 55, + 56, + 0 + ], + [ + 0, + 988, + 242, + 5246, + 128, + 7338, + 26, + 582, + 500, + 53107, + 2, + 413, + 678, + 73, + 568, + 168, + 230, + 753, + 5, + 0 + ], + [ + 0, + 4796, + 39898, + 1206, + 3028, + 3164, + 312, + 73, + 97, + 85, + 2375, + 783, + 140, + 83, + 407, + 321, + 205, + 1330, + 59, + 0 + ], + [ + 0, + 630, + 2480, + 37, + 384, + 30, + 4112, + 509, + 2579, + 0, + 15, + 54932, + 474, + 2, + 2869, + 1, + 735, + 59, + 112, + 0 + ], + [ + 0, + 2473, + 386, + 6963, + 336, + 1047, + 296, + 12594, + 5964, + 1710, + 203, + 1604, + 19427, + 483, + 3133, + 314, + 1714, + 1015, + 1053, + 0 + ], + [ + 0, + 992, + 506, + 2901, + 79, + 1282, + 397, + 2047, + 723, + 1084, + 53, + 859, + 6079, + 3479, + 443, + 272, + 318, + 1042, + 57, + 0 + ], + [ + 0, + 60087, + 745, + 3109, + 1270, + 1370, + 628, + 1479, + 10139, + 808, + 84, + 2208, + 1285, + 472, + 38217, + 852, + 4117, + 897, + 27, + 0 + ], + [ + 0, + 2049, + 280, + 11276, + 1237, + 389, + 400, + 4637, + 354, + 1650, + 34, + 728, + 1666, + 251, + 1096, + 39459, + 59, + 1489, + 1262, + 0 + ], + [ + 0, + 12402, + 219, + 1360, + 17, + 32, + 348, + 684, + 13918, + 67, + 26, + 2719, + 1172, + 23, + 5360, + 132, + 38084, + 264, + 32, + 0 + ], + [ + 0, + 6894, + 13205, + 1418, + 3771, + 8490, + 381, + 272, + 190, + 413, + 1966, + 60, + 1229, + 127, + 180, + 169, + 55, + 3949, + 0, + 0 + ], + [ + 0, + 2467, + 30, + 2738, + 278, + 1030, + 19, + 3574, + 5636, + 436, + 4, + 259, + 2488, + 39, + 4531, + 69, + 1685, + 325, + 6416, + 0 + ], + [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ] + ] + }, + "delta_test_pp": 0.0, + "standalone_delta_test_pp": -13.695075057502393, + "seconds": 133.37491817306727, + "validation_selection": { + "kind": "spatial_inception", + "seed": 3407, + "checkpoint_epoch": 71, + "standalone": { + "miou": 0.3960004097947171, + "oa": 0.7101037906620538, + "macro_f1": 0.5096925823262128, + "kappa": 0.6783262898929702, + "per_class_iou": [ + 0.7554269943208959, + 0.6553967027305513, + 0.715209945452239, + 0.162226957911561, + 0.7892725728842344, + 0.30371035308198685, + 0.4852194296132309, + 0.6472043542800594, + 0.3556390977443609, + 0.0, + 0.7089019656942531, + 0.06968039159228333, + 0.0914560770156438, + 0.3768902675455603, + 0.4801980198019802, + 0.4540245566166439, + 0.05408163265306123, + 0.02346805736636245 + ], + "confusion_matrix": [ + [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + [ + 0, + 14233, + 133, + 111, + 27, + 158, + 142, + 12, + 757, + 6, + 4, + 133, + 21, + 0, + 658, + 27, + 334, + 24, + 0, + 0 + ], + [ + 0, + 309, + 10177, + 160, + 1179, + 132, + 80, + 0, + 70, + 0, + 36, + 231, + 4, + 0, + 3, + 3, + 4, + 89, + 0, + 0 + ], + [ + 0, + 268, + 505, + 11276, + 124, + 13, + 15, + 274, + 8, + 40, + 28, + 1, + 16, + 8, + 17, + 477, + 11, + 36, + 751, + 0 + ], + [ + 0, + 30, + 806, + 47, + 609, + 73, + 14, + 200, + 0, + 0, + 239, + 0, + 9, + 4, + 0, + 0, + 0, + 16, + 0, + 0 + ], + [ + 0, + 83, + 0, + 57, + 12, + 5577, + 1, + 0, + 0, + 7, + 0, + 16, + 3, + 0, + 3, + 14, + 0, + 16, + 0, + 0 + ], + [ + 0, + 71, + 101, + 15, + 0, + 10, + 1015, + 330, + 115, + 0, + 35, + 448, + 0, + 0, + 112, + 17, + 34, + 105, + 0, + 0 + ], + [ + 0, + 10, + 0, + 53, + 0, + 0, + 39, + 3726, + 580, + 9, + 0, + 1, + 531, + 10, + 35, + 0, + 173, + 212, + 0, + 0 + ], + [ + 0, + 14, + 0, + 0, + 0, + 0, + 0, + 2, + 6540, + 0, + 0, + 25, + 0, + 0, + 11, + 0, + 6, + 0, + 0, + 0 + ], + [ + 0, + 9, + 2, + 186, + 27, + 3, + 0, + 11, + 0, + 1892, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 35, + 0, + 0 + ], + [ + 0, + 33, + 958, + 4, + 3, + 158, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 31, + 0, + 15, + 0, + 0 + ], + [ + 0, + 13, + 38, + 0, + 100, + 0, + 512, + 25, + 135, + 0, + 0, + 5662, + 27, + 0, + 187, + 0, + 43, + 0, + 0, + 0 + ], + [ + 0, + 112, + 89, + 337, + 1, + 241, + 10, + 697, + 460, + 2986, + 7, + 222, + 484, + 10, + 189, + 114, + 6, + 58, + 23, + 0 + ], + [ + 0, + 12, + 32, + 225, + 0, + 1, + 80, + 28, + 52, + 23, + 0, + 1, + 152, + 76, + 80, + 17, + 15, + 1, + 1, + 0 + ], + [ + 0, + 692, + 13, + 10, + 4, + 0, + 28, + 38, + 481, + 0, + 0, + 128, + 6, + 0, + 1944, + 0, + 152, + 8, + 0, + 0 + ], + [ + 0, + 44, + 4, + 322, + 6, + 61, + 3, + 61, + 7, + 83, + 0, + 0, + 0, + 0, + 1, + 1261, + 6, + 50, + 0, + 0 + ], + [ + 0, + 49, + 4, + 18, + 0, + 0, + 10, + 28, + 763, + 0, + 0, + 30, + 0, + 0, + 263, + 0, + 1664, + 0, + 0, + 0 + ], + [ + 0, + 139, + 366, + 30, + 223, + 427, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 3, + 0, + 0, + 0, + 106, + 0, + 0 + ], + [ + 0, + 173, + 0, + 323, + 1, + 0, + 0, + 594, + 79, + 0, + 0, + 9, + 130, + 0, + 95, + 17, + 51, + 0, + 54, + 0 + ], + [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ] + ] + }, + "chosen": { + "mode": "add", + "alpha": 0.0, + "metrics": { + "miou": 0.5256398451814701, + "oa": 0.7954606313128608, + "macro_f1": 0.6400266863319044, + "kappa": 0.7725060156424988, + "per_class_iou": [ + 0.7863696632193052, + 0.7940560621411685, + 0.8422681105804802, + 0.5216035634743875, + 0.8953563366655918, + 0.5666403785488959, + 0.6681021224238696, + 0.6854425749817118, + 0.3865969759193579, + 0.15913978494623657, + 0.8521227955584585, + 0.16817463736895016, + 0.15324165029469547, + 0.3526720731960907, + 0.8232323232323232, + 0.5073836723321259, + 0.010297482837528604, + 0.2888170055452865 + ], + "confusion_matrix": [ + [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + [ + 0, + 14827, + 104, + 46, + 8, + 16, + 20, + 1, + 480, + 0, + 3, + 211, + 80, + 3, + 659, + 16, + 296, + 4, + 6, + 0 + ], + [ + 0, + 160, + 11756, + 93, + 27, + 17, + 59, + 3, + 0, + 18, + 25, + 184, + 13, + 1, + 99, + 0, + 10, + 4, + 8, + 0 + ], + [ + 0, + 165, + 132, + 12522, + 19, + 10, + 2, + 144, + 0, + 31, + 1, + 0, + 2, + 6, + 113, + 137, + 34, + 11, + 539, + 0 + ], + [ + 0, + 23, + 477, + 28, + 1171, + 50, + 1, + 0, + 0, + 0, + 130, + 0, + 18, + 10, + 0, + 2, + 6, + 128, + 3, + 0 + ], + [ + 0, + 83, + 1, + 23, + 0, + 5553, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 19, + 8, + 1, + 101, + 0, + 0 + ], + [ + 0, + 96, + 76, + 5, + 7, + 0, + 1437, + 49, + 253, + 0, + 0, + 217, + 0, + 0, + 77, + 0, + 5, + 186, + 0, + 0 + ], + [ + 0, + 7, + 0, + 14, + 0, + 0, + 10, + 4344, + 415, + 65, + 0, + 10, + 472, + 0, + 33, + 1, + 4, + 0, + 4, + 0 + ], + [ + 0, + 29, + 0, + 0, + 0, + 0, + 0, + 0, + 6559, + 0, + 0, + 9, + 0, + 0, + 0, + 0, + 1, + 0, + 0, + 0 + ], + [ + 0, + 6, + 20, + 6, + 0, + 1, + 0, + 26, + 0, + 2071, + 0, + 0, + 16, + 14, + 5, + 1, + 0, + 0, + 0, + 0 + ], + [ + 0, + 34, + 886, + 0, + 14, + 0, + 2, + 0, + 0, + 5, + 222, + 0, + 0, + 0, + 5, + 0, + 30, + 4, + 0, + 0 + ], + [ + 0, + 17, + 0, + 0, + 91, + 0, + 14, + 5, + 10, + 0, + 0, + 6523, + 0, + 0, + 13, + 0, + 63, + 0, + 6, + 0 + ], + [ + 0, + 107, + 18, + 205, + 0, + 3, + 10, + 473, + 524, + 2954, + 6, + 129, + 1171, + 188, + 120, + 47, + 11, + 8, + 72, + 0 + ], + [ + 0, + 1, + 44, + 53, + 0, + 0, + 0, + 189, + 8, + 36, + 1, + 71, + 216, + 156, + 12, + 2, + 7, + 0, + 0, + 0 + ], + [ + 0, + 1027, + 18, + 38, + 0, + 0, + 10, + 43, + 402, + 0, + 0, + 58, + 0, + 0, + 1696, + 0, + 205, + 7, + 0, + 0 + ], + [ + 0, + 28, + 6, + 32, + 4, + 6, + 0, + 0, + 0, + 40, + 0, + 0, + 0, + 0, + 0, + 1793, + 0, + 0, + 0, + 0 + ], + [ + 0, + 51, + 0, + 8, + 0, + 0, + 0, + 19, + 875, + 0, + 0, + 14, + 0, + 0, + 41, + 0, + 1821, + 0, + 0, + 0 + ], + [ + 0, + 230, + 546, + 75, + 28, + 310, + 0, + 0, + 0, + 42, + 27, + 0, + 0, + 0, + 0, + 4, + 15, + 18, + 0, + 0 + ], + [ + 0, + 11, + 0, + 373, + 0, + 0, + 0, + 171, + 4, + 0, + 0, + 10, + 100, + 0, + 109, + 51, + 72, + 0, + 625, + 0 + ], + [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ] + ] + } + }, + "records": [ + { + "mode": "add", + "alpha": 0.0, + "metrics": { + "miou": 0.5256398451814701, + "oa": 0.7954606313128608, + "macro_f1": 0.6400266863319044, + "kappa": 0.7725060156424988, + "per_class_iou": [ + 0.7863696632193052, + 0.7940560621411685, + 0.8422681105804802, + 0.5216035634743875, + 0.8953563366655918, + 0.5666403785488959, + 0.6681021224238696, + 0.6854425749817118, + 0.3865969759193579, + 0.15913978494623657, + 0.8521227955584585, + 0.16817463736895016, + 0.15324165029469547, + 0.3526720731960907, + 0.8232323232323232, + 0.5073836723321259, + 0.010297482837528604, + 0.2888170055452865 + ], + "confusion_matrix": [ + [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + [ + 0, + 14827, + 104, + 46, + 8, + 16, + 20, + 1, + 480, + 0, + 3, + 211, + 80, + 3, + 659, + 16, + 296, + 4, + 6, + 0 + ], + [ + 0, + 160, + 11756, + 93, + 27, + 17, + 59, + 3, + 0, + 18, + 25, + 184, + 13, + 1, + 99, + 0, + 10, + 4, + 8, + 0 + ], + [ + 0, + 165, + 132, + 12522, + 19, + 10, + 2, + 144, + 0, + 31, + 1, + 0, + 2, + 6, + 113, + 137, + 34, + 11, + 539, + 0 + ], + [ + 0, + 23, + 477, + 28, + 1171, + 50, + 1, + 0, + 0, + 0, + 130, + 0, + 18, + 10, + 0, + 2, + 6, + 128, + 3, + 0 + ], + [ + 0, + 83, + 1, + 23, + 0, + 5553, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 19, + 8, + 1, + 101, + 0, + 0 + ], + [ + 0, + 96, + 76, + 5, + 7, + 0, + 1437, + 49, + 253, + 0, + 0, + 217, + 0, + 0, + 77, + 0, + 5, + 186, + 0, + 0 + ], + [ + 0, + 7, + 0, + 14, + 0, + 0, + 10, + 4344, + 415, + 65, + 0, + 10, + 472, + 0, + 33, + 1, + 4, + 0, + 4, + 0 + ], + [ + 0, + 29, + 0, + 0, + 0, + 0, + 0, + 0, + 6559, + 0, + 0, + 9, + 0, + 0, + 0, + 0, + 1, + 0, + 0, + 0 + ], + [ + 0, + 6, + 20, + 6, + 0, + 1, + 0, + 26, + 0, + 2071, + 0, + 0, + 16, + 14, + 5, + 1, + 0, + 0, + 0, + 0 + ], + [ + 0, + 34, + 886, + 0, + 14, + 0, + 2, + 0, + 0, + 5, + 222, + 0, + 0, + 0, + 5, + 0, + 30, + 4, + 0, + 0 + ], + [ + 0, + 17, + 0, + 0, + 91, + 0, + 14, + 5, + 10, + 0, + 0, + 6523, + 0, + 0, + 13, + 0, + 63, + 0, + 6, + 0 + ], + [ + 0, + 107, + 18, + 205, + 0, + 3, + 10, + 473, + 524, + 2954, + 6, + 129, + 1171, + 188, + 120, + 47, + 11, + 8, + 72, + 0 + ], + [ + 0, + 1, + 44, + 53, + 0, + 0, + 0, + 189, + 8, + 36, + 1, + 71, + 216, + 156, + 12, + 2, + 7, + 0, + 0, + 0 + ], + [ + 0, + 1027, + 18, + 38, + 0, + 0, + 10, + 43, + 402, + 0, + 0, + 58, + 0, + 0, + 1696, + 0, + 205, + 7, + 0, + 0 + ], + [ + 0, + 28, + 6, + 32, + 4, + 6, + 0, + 0, + 0, + 40, + 0, + 0, + 0, + 0, + 0, + 1793, + 0, + 0, + 0, + 0 + ], + [ + 0, + 51, + 0, + 8, + 0, + 0, + 0, + 19, + 875, + 0, + 0, + 14, + 0, + 0, + 41, + 0, + 1821, + 0, + 0, + 0 + ], + [ + 0, + 230, + 546, + 75, + 28, + 310, + 0, + 0, + 0, + 42, + 27, + 0, + 0, + 0, + 0, + 4, + 15, + 18, + 0, + 0 + ], + [ + 0, + 11, + 0, + 373, + 0, + 0, + 0, + 171, + 4, + 0, + 0, + 10, + 100, + 0, + 109, + 51, + 72, + 0, + 625, + 0 + ], + [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ] + ] + } + }, + { + "mode": "add", + "alpha": 0.1, + "metrics": { + "miou": 0.5208018324565304, + "oa": 0.794100320262208, + "macro_f1": 0.6357587679208767, + "kappa": 0.7708558163966395, + "per_class_iou": [ + 0.7891891891891892, + 0.7885725795622398, + 0.8426260195213264, + 0.5069289226642825, + 0.8884621539446311, + 0.5314218381775334, + 0.6539855072463768, + 0.6851117143453748, + 0.38619021031081335, + 0.14743112434847358, + 0.8455453248605888, + 0.15735167669819433, + 0.1691842900302115, + 0.3613409717801825, + 0.8202764976958525, + 0.5094813162297824, + 0.004084014002333722, + 0.2872496336101612 + ], + "confusion_matrix": [ + [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + [ + 0, + 14892, + 98, + 51, + 2, + 17, + 32, + 0, + 493, + 0, + 3, + 188, + 71, + 3, + 591, + 18, + 312, + 3, + 6, + 0 + ], + [ + 0, + 179, + 11745, + 93, + 29, + 19, + 57, + 2, + 0, + 18, + 15, + 185, + 12, + 1, + 101, + 0, + 9, + 4, + 8, + 0 + ], + [ + 0, + 165, + 134, + 12604, + 8, + 10, + 2, + 189, + 0, + 32, + 0, + 0, + 2, + 5, + 101, + 143, + 27, + 6, + 440, + 0 + ], + [ + 0, + 22, + 576, + 32, + 1134, + 50, + 0, + 0, + 0, + 0, + 92, + 0, + 16, + 8, + 0, + 2, + 5, + 107, + 3, + 0 + ], + [ + 0, + 86, + 1, + 27, + 0, + 5552, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 19, + 6, + 0, + 98, + 0, + 0 + ], + [ + 0, + 87, + 68, + 5, + 7, + 0, + 1353, + 119, + 204, + 0, + 4, + 295, + 0, + 0, + 77, + 0, + 4, + 185, + 0, + 0 + ], + [ + 0, + 9, + 0, + 15, + 0, + 0, + 13, + 4332, + 443, + 49, + 0, + 7, + 496, + 0, + 10, + 1, + 4, + 0, + 0, + 0 + ], + [ + 0, + 27, + 0, + 0, + 0, + 0, + 0, + 0, + 6562, + 0, + 0, + 9, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + [ + 0, + 3, + 19, + 13, + 1, + 1, + 0, + 23, + 0, + 2075, + 0, + 0, + 15, + 11, + 4, + 1, + 0, + 0, + 0, + 0 + ], + [ + 0, + 33, + 915, + 0, + 14, + 1, + 0, + 0, + 0, + 3, + 198, + 0, + 0, + 0, + 5, + 0, + 30, + 3, + 0, + 0 + ], + [ + 0, + 14, + 0, + 0, + 92, + 0, + 17, + 6, + 11, + 0, + 0, + 6520, + 0, + 0, + 13, + 0, + 64, + 0, + 5, + 0 + ], + [ + 0, + 109, + 21, + 229, + 0, + 0, + 7, + 503, + 532, + 2992, + 6, + 139, + 1098, + 169, + 130, + 40, + 6, + 6, + 59, + 0 + ], + [ + 0, + 2, + 46, + 71, + 0, + 0, + 0, + 161, + 9, + 34, + 1, + 69, + 217, + 168, + 11, + 0, + 7, + 0, + 0, + 0 + ], + [ + 0, + 1019, + 16, + 35, + 0, + 0, + 10, + 42, + 407, + 0, + 0, + 54, + 0, + 0, + 1703, + 0, + 211, + 7, + 0, + 0 + ], + [ + 0, + 29, + 6, + 44, + 4, + 6, + 0, + 0, + 0, + 40, + 0, + 0, + 0, + 0, + 0, + 1780, + 0, + 0, + 0, + 0 + ], + [ + 0, + 52, + 0, + 9, + 0, + 0, + 0, + 16, + 872, + 0, + 0, + 13, + 0, + 0, + 40, + 0, + 1827, + 0, + 0, + 0 + ], + [ + 0, + 234, + 517, + 77, + 33, + 356, + 0, + 0, + 0, + 39, + 20, + 0, + 0, + 0, + 0, + 3, + 9, + 7, + 0, + 0 + ], + [ + 0, + 20, + 0, + 389, + 0, + 0, + 0, + 184, + 9, + 0, + 0, + 10, + 103, + 0, + 107, + 47, + 69, + 0, + 588, + 0 + ], + [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ] + ] + } + }, + { + "mode": "add", + "alpha": 0.25, + "metrics": { + "miou": 0.5034314801649535, + "oa": 0.7868488983622712, + "macro_f1": 0.6166596041097919, + "kappa": 0.7625780548899873, + "per_class_iou": [ + 0.789699798451257, + 0.7702071686945083, + 0.8330592646188252, + 0.45555064130915524, + 0.8826789107029765, + 0.4972677595628415, + 0.6326109391124871, + 0.6726751331421549, + 0.37982793336994325, + 0.06402439024390244, + 0.835366636702196, + 0.12417919159492193, + 0.18663838812301167, + 0.3661155250161048, + 0.8009259259259259, + 0.5133765136581244, + 0.001243008079552517, + 0.256319514661274 + ], + "confusion_matrix": [ + [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + [ + 0, + 14889, + 98, + 59, + 3, + 18, + 44, + 2, + 558, + 0, + 2, + 151, + 64, + 2, + 566, + 17, + 304, + 1, + 2, + 0 + ], + [ + 0, + 202, + 11711, + 100, + 37, + 25, + 54, + 1, + 3, + 15, + 11, + 190, + 13, + 1, + 93, + 0, + 8, + 5, + 8, + 0 + ], + [ + 0, + 155, + 141, + 12665, + 5, + 9, + 2, + 241, + 1, + 29, + 0, + 0, + 2, + 3, + 44, + 153, + 22, + 1, + 395, + 0 + ], + [ + 0, + 23, + 738, + 36, + 1030, + 52, + 0, + 15, + 0, + 0, + 74, + 0, + 16, + 6, + 0, + 1, + 0, + 56, + 0, + 0 + ], + [ + 0, + 85, + 0, + 37, + 5, + 5575, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 19, + 3, + 0, + 65, + 0, + 0 + ], + [ + 0, + 78, + 75, + 5, + 4, + 0, + 1274, + 181, + 164, + 0, + 5, + 358, + 0, + 0, + 82, + 0, + 4, + 178, + 0, + 0 + ], + [ + 0, + 10, + 0, + 20, + 0, + 0, + 14, + 4291, + 583, + 41, + 0, + 5, + 387, + 0, + 11, + 1, + 16, + 0, + 0, + 0 + ], + [ + 0, + 20, + 0, + 0, + 0, + 0, + 0, + 0, + 6568, + 0, + 0, + 10, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + [ + 0, + 2, + 15, + 42, + 7, + 0, + 0, + 9, + 0, + 2075, + 0, + 0, + 9, + 4, + 2, + 1, + 0, + 0, + 0, + 0 + ], + [ + 0, + 32, + 1034, + 0, + 8, + 12, + 0, + 0, + 0, + 0, + 84, + 0, + 0, + 0, + 3, + 4, + 25, + 0, + 0, + 0 + ], + [ + 0, + 12, + 0, + 0, + 90, + 0, + 28, + 8, + 12, + 0, + 0, + 6505, + 0, + 0, + 19, + 0, + 66, + 0, + 2, + 0 + ], + [ + 0, + 115, + 29, + 276, + 0, + 23, + 2, + 563, + 516, + 3108, + 5, + 198, + 851, + 131, + 148, + 29, + 4, + 3, + 45, + 0 + ], + [ + 0, + 4, + 42, + 130, + 0, + 0, + 0, + 114, + 15, + 27, + 0, + 59, + 208, + 176, + 9, + 2, + 9, + 1, + 0, + 0 + ], + [ + 0, + 1015, + 14, + 30, + 0, + 0, + 10, + 43, + 432, + 0, + 0, + 52, + 0, + 0, + 1705, + 0, + 199, + 4, + 0, + 0 + ], + [ + 0, + 34, + 2, + 78, + 5, + 6, + 0, + 0, + 0, + 54, + 0, + 0, + 0, + 0, + 0, + 1730, + 0, + 0, + 0, + 0 + ], + [ + 0, + 50, + 0, + 11, + 0, + 0, + 0, + 19, + 859, + 0, + 0, + 12, + 0, + 0, + 55, + 0, + 1823, + 0, + 0, + 0 + ], + [ + 0, + 195, + 540, + 84, + 50, + 382, + 0, + 0, + 0, + 23, + 13, + 0, + 0, + 0, + 0, + 2, + 4, + 2, + 0, + 0 + ], + [ + 0, + 42, + 0, + 427, + 0, + 0, + 0, + 208, + 23, + 0, + 0, + 10, + 108, + 0, + 102, + 38, + 61, + 0, + 507, + 0 + ], + [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ] + ] + } + }, + { + "mode": "add", + "alpha": 0.5, + "metrics": { + "miou": 0.47011318817648867, + "oa": 0.7689720547123531, + "macro_f1": 0.5844616805801827, + "kappa": 0.7427842533709742, + "per_class_iou": [ + 0.792068079640334, + 0.7450491803278688, + 0.8061975468043899, + 0.3069113627489262, + 0.8277646363098758, + 0.4170581857607517, + 0.5762545556490047, + 0.6606280193236715, + 0.3809878844361603, + 0.003692762186115214, + 0.8138611324622086, + 0.08577253531381972, + 0.18654073199527746, + 0.427379679144385, + 0.7254191209787041, + 0.5, + 0.043424317617866005, + 0.16302765647743814 + ], + "confusion_matrix": [ + [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + [ + 0, + 14799, + 96, + 71, + 4, + 88, + 95, + 3, + 681, + 0, + 4, + 93, + 39, + 0, + 496, + 13, + 291, + 7, + 0, + 0 + ], + [ + 0, + 250, + 11362, + 134, + 259, + 54, + 63, + 1, + 30, + 6, + 15, + 213, + 7, + 1, + 48, + 0, + 6, + 24, + 4, + 0 + ], + [ + 0, + 192, + 148, + 12488, + 4, + 10, + 3, + 254, + 4, + 25, + 1, + 0, + 3, + 0, + 12, + 188, + 17, + 5, + 514, + 0 + ], + [ + 0, + 29, + 854, + 50, + 786, + 60, + 2, + 125, + 0, + 0, + 118, + 0, + 2, + 3, + 0, + 0, + 0, + 18, + 0, + 0 + ], + [ + 0, + 82, + 0, + 45, + 12, + 5599, + 0, + 0, + 0, + 0, + 0, + 8, + 0, + 0, + 10, + 7, + 0, + 26, + 0, + 0 + ], + [ + 0, + 73, + 83, + 7, + 2, + 0, + 1154, + 274, + 131, + 0, + 11, + 415, + 0, + 0, + 84, + 0, + 8, + 166, + 0, + 0 + ], + [ + 0, + 10, + 0, + 37, + 0, + 0, + 17, + 4111, + 608, + 23, + 0, + 1, + 438, + 0, + 24, + 0, + 91, + 19, + 0, + 0 + ], + [ + 0, + 17, + 0, + 0, + 0, + 0, + 0, + 0, + 6564, + 0, + 0, + 15, + 0, + 0, + 1, + 0, + 1, + 0, + 0, + 0 + ], + [ + 0, + 1, + 4, + 86, + 15, + 2, + 0, + 0, + 0, + 2044, + 0, + 0, + 5, + 0, + 0, + 0, + 0, + 9, + 0, + 0 + ], + [ + 0, + 37, + 1017, + 2, + 1, + 105, + 0, + 0, + 0, + 0, + 5, + 0, + 0, + 0, + 1, + 22, + 4, + 8, + 0, + 0 + ], + [ + 0, + 14, + 0, + 0, + 93, + 0, + 152, + 12, + 23, + 0, + 0, + 6353, + 2, + 0, + 31, + 0, + 62, + 0, + 0, + 0 + ], + [ + 0, + 117, + 54, + 329, + 0, + 215, + 6, + 636, + 512, + 3056, + 3, + 212, + 589, + 47, + 178, + 45, + 4, + 26, + 17, + 0 + ], + [ + 0, + 13, + 33, + 200, + 0, + 0, + 8, + 47, + 38, + 27, + 0, + 23, + 211, + 158, + 22, + 7, + 8, + 1, + 0, + 0 + ], + [ + 0, + 709, + 12, + 19, + 2, + 0, + 10, + 42, + 476, + 0, + 0, + 62, + 0, + 0, + 1998, + 0, + 168, + 6, + 0, + 0 + ], + [ + 0, + 41, + 0, + 186, + 6, + 14, + 0, + 0, + 0, + 58, + 0, + 0, + 0, + 0, + 0, + 1601, + 1, + 2, + 0, + 0 + ], + [ + 0, + 49, + 1, + 14, + 0, + 0, + 3, + 22, + 783, + 0, + 0, + 13, + 0, + 0, + 169, + 0, + 1775, + 0, + 0, + 0 + ], + [ + 0, + 164, + 471, + 43, + 116, + 427, + 0, + 0, + 0, + 4, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 70, + 0, + 0 + ], + [ + 0, + 106, + 0, + 399, + 0, + 0, + 0, + 339, + 52, + 0, + 0, + 9, + 114, + 0, + 95, + 16, + 60, + 0, + 336, + 0 + ], + [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ] + ] + } + }, + { + "mode": "replace", + "alpha": 0.1, + "metrics": { + "miou": 0.5156897413514732, + "oa": 0.7876308094386307, + "macro_f1": 0.6299112173266176, + "kappa": 0.7640374489555132, + "per_class_iou": [ + 0.7858398593575195, + 0.8013330612800109, + 0.8101624098658939, + 0.535650623885918, + 0.8954983922829582, + 0.5462998837659822, + 0.6107694615269237, + 0.6898833911125118, + 0.3884499623777276, + 0.14826302729528537, + 0.8445106162610047, + 0.19224871044193503, + 0.11196911196911197, + 0.33547997585027167, + 0.83356708742403, + 0.5039840637450199, + 0.01855287569573284, + 0.22995283018867924 + ], + "confusion_matrix": [ + [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + [ + 0, + 14751, + 119, + 53, + 51, + 16, + 48, + 6, + 487, + 0, + 3, + 203, + 80, + 3, + 672, + 20, + 259, + 5, + 4, + 0 + ], + [ + 0, + 112, + 11782, + 86, + 22, + 17, + 58, + 3, + 0, + 18, + 50, + 188, + 20, + 4, + 98, + 0, + 7, + 4, + 8, + 0 + ], + [ + 0, + 160, + 119, + 12022, + 20, + 11, + 3, + 216, + 0, + 29, + 3, + 0, + 2, + 5, + 165, + 122, + 34, + 0, + 957, + 0 + ], + [ + 0, + 23, + 439, + 33, + 1202, + 45, + 5, + 1, + 0, + 0, + 249, + 0, + 12, + 5, + 0, + 0, + 18, + 11, + 4, + 0 + ], + [ + 0, + 69, + 6, + 27, + 0, + 5570, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 19, + 8, + 0, + 90, + 0, + 0 + ], + [ + 0, + 62, + 74, + 4, + 11, + 0, + 1410, + 74, + 194, + 0, + 2, + 310, + 0, + 0, + 82, + 0, + 4, + 181, + 0, + 0 + ], + [ + 0, + 6, + 1, + 9, + 0, + 0, + 15, + 4072, + 367, + 115, + 0, + 7, + 696, + 1, + 70, + 1, + 4, + 0, + 15, + 0 + ], + [ + 0, + 20, + 0, + 0, + 0, + 0, + 0, + 0, + 6567, + 0, + 0, + 10, + 0, + 0, + 0, + 0, + 1, + 0, + 0, + 0 + ], + [ + 0, + 3, + 21, + 7, + 0, + 0, + 0, + 21, + 0, + 2065, + 0, + 0, + 22, + 24, + 3, + 0, + 0, + 0, + 0, + 0 + ], + [ + 0, + 23, + 896, + 0, + 2, + 0, + 0, + 0, + 0, + 2, + 239, + 0, + 0, + 0, + 5, + 1, + 31, + 3, + 0, + 0 + ], + [ + 0, + 9, + 1, + 0, + 69, + 0, + 31, + 5, + 10, + 0, + 0, + 6523, + 0, + 0, + 20, + 0, + 66, + 0, + 8, + 0 + ], + [ + 0, + 114, + 22, + 154, + 1, + 4, + 2, + 470, + 495, + 2876, + 0, + 105, + 1379, + 198, + 166, + 19, + 8, + 11, + 22, + 0 + ], + [ + 0, + 2, + 46, + 59, + 0, + 1, + 0, + 193, + 5, + 36, + 0, + 92, + 214, + 116, + 18, + 4, + 9, + 1, + 0, + 0 + ], + [ + 0, + 1027, + 18, + 37, + 0, + 2, + 10, + 53, + 444, + 0, + 0, + 55, + 2, + 0, + 1667, + 0, + 173, + 16, + 0, + 0 + ], + [ + 0, + 27, + 8, + 37, + 9, + 6, + 0, + 0, + 0, + 38, + 0, + 0, + 0, + 0, + 0, + 1783, + 1, + 0, + 0, + 0 + ], + [ + 0, + 54, + 0, + 7, + 0, + 0, + 0, + 38, + 919, + 0, + 0, + 7, + 0, + 0, + 33, + 0, + 1771, + 0, + 0, + 0 + ], + [ + 0, + 265, + 456, + 34, + 12, + 329, + 0, + 0, + 0, + 36, + 103, + 0, + 0, + 0, + 0, + 4, + 26, + 30, + 0, + 0 + ], + [ + 0, + 15, + 0, + 424, + 0, + 0, + 1, + 208, + 0, + 0, + 0, + 5, + 79, + 0, + 114, + 51, + 44, + 0, + 585, + 0 + ], + [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ] + ] + } + }, + { + "mode": "replace", + "alpha": 0.25, + "metrics": { + "miou": 0.5051979099384225, + "oa": 0.7856385428605092, + "macro_f1": 0.6188360224940829, + "kappa": 0.7615060967176807, + "per_class_iou": [ + 0.7890566840370095, + 0.7799654117334043, + 0.8176368722525643, + 0.45858761987794244, + 0.8910859512039547, + 0.5054012345679012, + 0.6113875878220141, + 0.6862335491957384, + 0.3890349230191513, + 0.11559888579387187, + 0.8362467866323907, + 0.16544532130777903, + 0.11967545638945233, + 0.3544013350020859, + 0.8334124347413384, + 0.5034090909090909, + 0.006313131313131313, + 0.23067010309278352 + ], + "confusion_matrix": [ + [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + [ + 0, + 14839, + 111, + 55, + 30, + 17, + 50, + 3, + 527, + 0, + 3, + 163, + 73, + 3, + 589, + 21, + 291, + 3, + 2, + 0 + ], + [ + 0, + 144, + 11726, + 93, + 61, + 24, + 61, + 2, + 0, + 15, + 22, + 186, + 19, + 4, + 99, + 0, + 7, + 6, + 8, + 0 + ], + [ + 0, + 157, + 133, + 12276, + 7, + 10, + 2, + 237, + 0, + 25, + 2, + 0, + 2, + 5, + 112, + 113, + 24, + 0, + 763, + 0 + ], + [ + 0, + 21, + 708, + 41, + 1052, + 52, + 0, + 14, + 0, + 0, + 129, + 0, + 11, + 3, + 0, + 0, + 3, + 10, + 3, + 0 + ], + [ + 0, + 76, + 1, + 30, + 0, + 5588, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 19, + 6, + 0, + 69, + 0, + 0 + ], + [ + 0, + 64, + 84, + 5, + 9, + 0, + 1310, + 159, + 142, + 0, + 5, + 367, + 0, + 0, + 81, + 0, + 4, + 178, + 0, + 0 + ], + [ + 0, + 6, + 0, + 13, + 0, + 0, + 14, + 4177, + 394, + 96, + 0, + 5, + 631, + 0, + 25, + 1, + 14, + 0, + 3, + 0 + ], + [ + 0, + 16, + 0, + 0, + 0, + 0, + 0, + 0, + 6570, + 0, + 0, + 12, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + [ + 0, + 0, + 17, + 29, + 6, + 0, + 0, + 12, + 0, + 2072, + 0, + 0, + 17, + 11, + 2, + 0, + 0, + 0, + 0, + 0 + ], + [ + 0, + 21, + 970, + 0, + 3, + 5, + 0, + 0, + 0, + 0, + 166, + 0, + 0, + 0, + 5, + 2, + 30, + 0, + 0, + 0 + ], + [ + 0, + 11, + 0, + 0, + 73, + 0, + 44, + 7, + 9, + 0, + 0, + 6506, + 0, + 0, + 17, + 0, + 68, + 0, + 7, + 0 + ], + [ + 0, + 119, + 25, + 201, + 0, + 2, + 2, + 527, + 533, + 2925, + 0, + 165, + 1174, + 164, + 177, + 6, + 3, + 7, + 16, + 0 + ], + [ + 0, + 2, + 45, + 98, + 0, + 0, + 0, + 175, + 9, + 33, + 0, + 80, + 209, + 118, + 17, + 0, + 9, + 1, + 0, + 0 + ], + [ + 0, + 1013, + 15, + 32, + 0, + 0, + 10, + 52, + 435, + 0, + 0, + 50, + 0, + 0, + 1699, + 0, + 183, + 15, + 0, + 0 + ], + [ + 0, + 26, + 2, + 73, + 8, + 6, + 0, + 0, + 0, + 38, + 0, + 0, + 0, + 0, + 0, + 1756, + 0, + 0, + 0, + 0 + ], + [ + 0, + 54, + 0, + 8, + 0, + 0, + 0, + 31, + 917, + 0, + 0, + 7, + 0, + 0, + 40, + 0, + 1772, + 0, + 0, + 0 + ], + [ + 0, + 266, + 446, + 41, + 50, + 366, + 0, + 0, + 0, + 28, + 73, + 0, + 0, + 0, + 0, + 3, + 12, + 10, + 0, + 0 + ], + [ + 0, + 30, + 0, + 427, + 0, + 0, + 1, + 234, + 10, + 0, + 0, + 3, + 88, + 0, + 107, + 46, + 43, + 0, + 537, + 0 + ], + [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ] + ] + } + }, + { + "mode": "replace", + "alpha": 0.5, + "metrics": { + "miou": 0.47218138169509277, + "oa": 0.7691112991506089, + "macro_f1": 0.5860214026766256, + "kappa": 0.7430579651778964, + "per_class_iou": [ + 0.792337411461687, + 0.7464335020708698, + 0.8044551240420834, + 0.3215909090909091, + 0.8300014808233378, + 0.42093862815884475, + 0.5705915178571429, + 0.6686342357012008, + 0.3808014911463187, + 0.015209125475285171, + 0.8113183444047011, + 0.09684361549497848, + 0.15436241610738255, + 0.42431339152650627, + 0.7629107981220657, + 0.4964679287934445, + 0.044136191677175286, + 0.15791875855773618 + ], + "confusion_matrix": [ + [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + [ + 0, + 14766, + 97, + 72, + 6, + 91, + 89, + 4, + 675, + 0, + 4, + 98, + 43, + 0, + 537, + 16, + 275, + 7, + 0, + 0 + ], + [ + 0, + 217, + 11354, + 128, + 309, + 50, + 59, + 1, + 18, + 8, + 13, + 210, + 12, + 1, + 61, + 0, + 6, + 23, + 7, + 0 + ], + [ + 0, + 181, + 154, + 12387, + 5, + 11, + 3, + 266, + 1, + 24, + 0, + 0, + 1, + 2, + 10, + 159, + 18, + 5, + 641, + 0 + ], + [ + 0, + 26, + 854, + 53, + 849, + 60, + 0, + 118, + 0, + 0, + 74, + 0, + 1, + 0, + 0, + 0, + 0, + 12, + 0, + 0 + ], + [ + 0, + 80, + 0, + 45, + 10, + 5605, + 0, + 0, + 0, + 0, + 0, + 9, + 0, + 0, + 9, + 4, + 0, + 27, + 0, + 0 + ], + [ + 0, + 67, + 95, + 5, + 5, + 0, + 1166, + 255, + 123, + 0, + 13, + 424, + 0, + 0, + 83, + 0, + 5, + 167, + 0, + 0 + ], + [ + 0, + 9, + 0, + 29, + 0, + 0, + 17, + 4090, + 503, + 51, + 0, + 3, + 553, + 0, + 24, + 0, + 93, + 7, + 0, + 0 + ], + [ + 0, + 13, + 0, + 0, + 0, + 0, + 0, + 0, + 6570, + 0, + 0, + 14, + 0, + 0, + 0, + 0, + 1, + 0, + 0, + 0 + ], + [ + 0, + 1, + 5, + 85, + 15, + 1, + 0, + 0, + 0, + 2043, + 0, + 0, + 6, + 2, + 0, + 0, + 0, + 8, + 0, + 0 + ], + [ + 0, + 31, + 1010, + 0, + 1, + 100, + 0, + 0, + 0, + 0, + 20, + 0, + 0, + 0, + 2, + 20, + 16, + 2, + 0, + 0 + ], + [ + 0, + 12, + 0, + 0, + 83, + 0, + 166, + 14, + 18, + 0, + 0, + 6351, + 2, + 0, + 33, + 0, + 62, + 0, + 1, + 0 + ], + [ + 0, + 116, + 51, + 287, + 0, + 218, + 6, + 607, + 527, + 3028, + 1, + 203, + 675, + 93, + 183, + 3, + 5, + 27, + 16, + 0 + ], + [ + 0, + 6, + 36, + 188, + 0, + 0, + 8, + 81, + 28, + 26, + 0, + 41, + 205, + 138, + 25, + 4, + 9, + 1, + 0, + 0 + ], + [ + 0, + 727, + 13, + 18, + 2, + 0, + 10, + 49, + 454, + 0, + 0, + 66, + 1, + 0, + 1993, + 0, + 166, + 5, + 0, + 0 + ], + [ + 0, + 34, + 0, + 175, + 8, + 9, + 0, + 0, + 0, + 55, + 0, + 0, + 0, + 0, + 0, + 1625, + 3, + 0, + 0, + 0 + ], + [ + 0, + 50, + 0, + 14, + 0, + 0, + 3, + 27, + 836, + 0, + 0, + 11, + 0, + 0, + 131, + 0, + 1757, + 0, + 0, + 0 + ], + [ + 0, + 184, + 419, + 33, + 149, + 424, + 0, + 0, + 0, + 7, + 8, + 0, + 0, + 0, + 0, + 1, + 0, + 70, + 0, + 0 + ], + [ + 0, + 102, + 0, + 398, + 0, + 0, + 1, + 367, + 45, + 0, + 0, + 7, + 100, + 0, + 95, + 14, + 51, + 0, + 346, + 0 + ], + [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ] + ] + } + } + ], + "reference_val_miou": 0.5256398451814701, + "delta_val_pp": 0.0, + "patch_bootstrap_delta_interval_pp": [ + 0.0, + 0.0 + ], + "bootstrap_caveat": "descriptive, after validation selection; not an independent significance test", + "selection_split": "validation", + "test_used_for_selection": false + }, + "test_policy": "exploratory all-variants sweep explicitly requested by user; no test retuning", + "patches": 482 + } + ] +} \ No newline at end of file diff --git a/ablations/10_plateau_breakthrough/workspace/convnext_research_20261010/plan.json b/ablations/10_plateau_breakthrough/workspace/convnext_research_20261010/plan.json new file mode 100644 index 0000000000000000000000000000000000000000..b9c208220f236899833f1e0e160db6b16d81b57d --- /dev/null +++ b/ablations/10_plateau_breakthrough/workspace/convnext_research_20261010/plan.json @@ -0,0 +1,242 @@ +{ + "created": "2026-10-10T07:23:21.061456+00:00", + "jobs": [ + { + "name": "reference_validation", + "command": [ + "/usr/bin/python3", + "-u", + "/home/ubuntu/tsr/convnext_research.py", + "cache" + ] + }, + { + "name": "cnn_control_train", + "command": [ + "/usr/bin/python3", + "-u", + "/home/ubuntu/tsr/convnext_research.py", + "train", + "--kind", + "cnn_control" + ], + "dependency": null + }, + { + "name": "cnn_control_select", + "command": [ + "/usr/bin/python3", + "-u", + "/home/ubuntu/tsr/convnext_research.py", + "select", + "--kind", + "cnn_control" + ], + "dependency": "cnn_control_train" + }, + { + "name": "temporal_cnv1_k3_train", + "command": [ + "/usr/bin/python3", + "-u", + "/home/ubuntu/tsr/convnext_research.py", + "train", + "--kind", + "temporal_cnv1_k3" + ], + "dependency": null + }, + { + "name": "temporal_cnv1_k3_select", + "command": [ + "/usr/bin/python3", + "-u", + "/home/ubuntu/tsr/convnext_research.py", + "select", + "--kind", + "temporal_cnv1_k3" + ], + "dependency": "temporal_cnv1_k3_train" + }, + { + "name": "temporal_cnv1_k7_train", + "command": [ + "/usr/bin/python3", + "-u", + "/home/ubuntu/tsr/convnext_research.py", + "train", + "--kind", + "temporal_cnv1_k7" + ], + "dependency": null + }, + { + "name": "temporal_cnv1_k7_select", + "command": [ + "/usr/bin/python3", + "-u", + "/home/ubuntu/tsr/convnext_research.py", + "select", + "--kind", + "temporal_cnv1_k7" + ], + "dependency": "temporal_cnv1_k7_train" + }, + { + "name": "temporal_cnv2_k7_train", + "command": [ + "/usr/bin/python3", + "-u", + "/home/ubuntu/tsr/convnext_research.py", + "train", + "--kind", + "temporal_cnv2_k7" + ], + "dependency": null + }, + { + "name": "temporal_cnv2_k7_select", + "command": [ + "/usr/bin/python3", + "-u", + "/home/ubuntu/tsr/convnext_research.py", + "select", + "--kind", + "temporal_cnv2_k7" + ], + "dependency": "temporal_cnv2_k7_train" + }, + { + "name": "temporal_cnv2_k15_train", + "command": [ + "/usr/bin/python3", + "-u", + "/home/ubuntu/tsr/convnext_research.py", + "train", + "--kind", + "temporal_cnv2_k15" + ], + "dependency": null + }, + { + "name": "temporal_cnv2_k15_select", + "command": [ + "/usr/bin/python3", + "-u", + "/home/ubuntu/tsr/convnext_research.py", + "select", + "--kind", + "temporal_cnv2_k15" + ], + "dependency": "temporal_cnv2_k15_train" + }, + { + "name": "spatial_cnv1_train", + "command": [ + "/usr/bin/python3", + "-u", + "/home/ubuntu/tsr/convnext_research.py", + "train", + "--kind", + "spatial_cnv1" + ], + "dependency": null + }, + { + "name": "spatial_cnv1_select", + "command": [ + "/usr/bin/python3", + "-u", + "/home/ubuntu/tsr/convnext_research.py", + "select", + "--kind", + "spatial_cnv1" + ], + "dependency": "spatial_cnv1_train" + }, + { + "name": "spatial_cnv2_train", + "command": [ + "/usr/bin/python3", + "-u", + "/home/ubuntu/tsr/convnext_research.py", + "train", + "--kind", + "spatial_cnv2" + ], + "dependency": null + }, + { + "name": "spatial_cnv2_select", + "command": [ + "/usr/bin/python3", + "-u", + "/home/ubuntu/tsr/convnext_research.py", + "select", + "--kind", + "spatial_cnv2" + ], + "dependency": "spatial_cnv2_train" + }, + { + "name": "spatial_inception_train", + "command": [ + "/usr/bin/python3", + "-u", + "/home/ubuntu/tsr/convnext_research.py", + "train", + "--kind", + "spatial_inception" + ], + "dependency": null + }, + { + "name": "spatial_inception_select", + "command": [ + "/usr/bin/python3", + "-u", + "/home/ubuntu/tsr/convnext_research.py", + "select", + "--kind", + "spatial_inception" + ], + "dependency": "spatial_inception_train" + } + ], + "seed": 3407, + "training_epochs": 100, + "data_config": "unchanged exact IDs/duplicates; fixed32 diagonal crops; ten bands/index positions;76steps/epoch; full128 fold4 test", + "selection_options": [ + [ + "add", + 0.0 + ], + [ + "add", + 0.1 + ], + [ + "add", + 0.25 + ], + [ + "add", + 0.5 + ], + [ + "replace", + 0.1 + ], + [ + "replace", + 0.25 + ], + [ + "replace", + 0.5 + ] + ], + "promotion_rule": "up to2 non-control candidates ranked by validation, require +0.10 percentage points over52.5639845%; freeze promotion before any new test", + "test_used_for_selection": false, + "external_pretraining": false +} \ No newline at end of file diff --git a/ablations/10_plateau_breakthrough/workspace/convnext_research_20261010/previous_final_error_analysis.json b/ablations/10_plateau_breakthrough/workspace/convnext_research_20261010/previous_final_error_analysis.json new file mode 100644 index 0000000000000000000000000000000000000000..6f320eea9156cc5e79b72edcf7821ec7fb56e129 --- /dev/null +++ b/ablations/10_plateau_breakthrough/workspace/convnext_research_20261010/previous_final_error_analysis.json @@ -0,0 +1,366 @@ +{ + "source": "temporal_research/32X32_cnn_control_seed3407/test_results.json", + "new_test_evaluation": false, + "per_class": [ + { + "class_id": 1, + "ground_truth_pixels": 1466003, + "precision": 0.8910144797524048, + "recall": 0.8943153595183638, + "largest_confusions": [ + { + "predicted_class": 16, + "fraction_of_ground_truth": 0.048643829514673574 + }, + { + "predicted_class": 14, + "fraction_of_ground_truth": 0.020125470411724942 + }, + { + "predicted_class": 8, + "fraction_of_ground_truth": 0.013154816190689924 + } + ] + }, + { + "class_id": 2, + "ground_truth_pixels": 560680, + "precision": 0.7982471042595981, + "recall": 0.8799439965755868, + "largest_confusions": [ + { + "predicted_class": 10, + "fraction_of_ground_truth": 0.037841549546978666 + }, + { + "predicted_class": 11, + "fraction_of_ground_truth": 0.027357851180709138 + }, + { + "predicted_class": 1, + "fraction_of_ground_truth": 0.022599343654134265 + } + ] + }, + { + "class_id": 3, + "ground_truth_pixels": 688289, + "precision": 0.9351310944378305, + "recall": 0.9323757898208456, + "largest_confusions": [ + { + "predicted_class": 1, + "fraction_of_ground_truth": 0.025839436631996154 + }, + { + "predicted_class": 18, + "fraction_of_ground_truth": 0.007623251279622368 + }, + { + "predicted_class": 15, + "fraction_of_ground_truth": 0.007040647170011434 + } + ] + }, + { + "class_id": 4, + "ground_truth_pixels": 163392, + "precision": 0.8429230172818347, + "recall": 0.5056857128867999, + "largest_confusions": [ + { + "predicted_class": 2, + "fraction_of_ground_truth": 0.28183142381511944 + }, + { + "predicted_class": 1, + "fraction_of_ground_truth": 0.05760379945162554 + }, + { + "predicted_class": 10, + "fraction_of_ground_truth": 0.048925283979631806 + } + ] + }, + { + "class_id": 5, + "ground_truth_pixels": 129119, + "precision": 0.9318384744986297, + "recall": 0.9295146337874364, + "largest_confusions": [ + { + "predicted_class": 1, + "fraction_of_ground_truth": 0.020717322779761304 + }, + { + "predicted_class": 14, + "fraction_of_ground_truth": 0.011431315298290725 + }, + { + "predicted_class": 2, + "fraction_of_ground_truth": 0.00903042929390717 + } + ] + }, + { + "class_id": 6, + "ground_truth_pixels": 53762, + "precision": 0.6751039113289993, + "recall": 0.4712994308247461, + "largest_confusions": [ + { + "predicted_class": 2, + "fraction_of_ground_truth": 0.13546743052713814 + }, + { + "predicted_class": 11, + "fraction_of_ground_truth": 0.09322569844871842 + }, + { + "predicted_class": 1, + "fraction_of_ground_truth": 0.07514601391317287 + } + ] + }, + { + "class_id": 7, + "ground_truth_pixels": 81933, + "precision": 0.6610652393399997, + "recall": 0.583366897342951, + "largest_confusions": [ + { + "predicted_class": 15, + "fraction_of_ground_truth": 0.11820633932603469 + }, + { + "predicted_class": 8, + "fraction_of_ground_truth": 0.09300281937680788 + }, + { + "predicted_class": 9, + "fraction_of_ground_truth": 0.04607423138417976 + } + ] + }, + { + "class_id": 8, + "ground_truth_pixels": 187477, + "precision": 0.7281756980465732, + "recall": 0.8094539596857214, + "largest_confusions": [ + { + "predicted_class": 1, + "fraction_of_ground_truth": 0.09844407580663228 + }, + { + "predicted_class": 16, + "fraction_of_ground_truth": 0.04841127178267201 + }, + { + "predicted_class": 3, + "fraction_of_ground_truth": 0.024653690852744603 + } + ] + }, + { + "class_id": 9, + "ground_truth_pixels": 71047, + "precision": 0.8382410629547612, + "recall": 0.9323687136684167, + "largest_confusions": [ + { + "predicted_class": 3, + "fraction_of_ground_truth": 0.014891550663645193 + }, + { + "predicted_class": 12, + "fraction_of_ground_truth": 0.011189775782228666 + }, + { + "predicted_class": 7, + "fraction_of_ground_truth": 0.008726617591172041 + } + ] + }, + { + "class_id": 10, + "ground_truth_pixels": 58362, + "precision": 0.1472262180248921, + "recall": 0.12100339261848463, + "largest_confusions": [ + { + "predicted_class": 2, + "fraction_of_ground_truth": 0.7665775675953531 + }, + { + "predicted_class": 1, + "fraction_of_ground_truth": 0.0529796785579658 + }, + { + "predicted_class": 4, + "fraction_of_ground_truth": 0.0302080120626435 + } + ] + }, + { + "class_id": 11, + "ground_truth_pixels": 69960, + "precision": 0.6121055825242718, + "recall": 0.8651372212692967, + "largest_confusions": [ + { + "predicted_class": 2, + "fraction_of_ground_truth": 0.03431961120640366 + }, + { + "predicted_class": 6, + "fraction_of_ground_truth": 0.025343053173241852 + }, + { + "predicted_class": 14, + "fraction_of_ground_truth": 0.021555174385363064 + } + ] + }, + { + "class_id": 12, + "ground_truth_pixels": 60715, + "precision": 0.5533427254098361, + "recall": 0.426962035740756, + "largest_confusions": [ + { + "predicted_class": 7, + "fraction_of_ground_truth": 0.1597134151362925 + }, + { + "predicted_class": 3, + "fraction_of_ground_truth": 0.07632380795520052 + }, + { + "predicted_class": 8, + "fraction_of_ground_truth": 0.065519229185539 + } + ] + }, + { + "class_id": 13, + "ground_truth_pixels": 22613, + "precision": 0.7194231581487962, + "recall": 0.5272630787600053, + "largest_confusions": [ + { + "predicted_class": 7, + "fraction_of_ground_truth": 0.13249016052713042 + }, + { + "predicted_class": 12, + "fraction_of_ground_truth": 0.11157298898863485 + }, + { + "predicted_class": 3, + "fraction_of_ground_truth": 0.062176624065802856 + } + ] + }, + { + "class_id": 14, + "ground_truth_pixels": 127794, + "precision": 0.48201219821593483, + "recall": 0.3716684664381739, + "largest_confusions": [ + { + "predicted_class": 1, + "fraction_of_ground_truth": 0.4501306790616148 + }, + { + "predicted_class": 8, + "fraction_of_ground_truth": 0.055135608870526 + }, + { + "predicted_class": 16, + "fraction_of_ground_truth": 0.05128566286367122 + } + ] + }, + { + "class_id": 15, + "ground_truth_pixels": 68316, + "precision": 0.7424993766795025, + "recall": 0.7846478131038117, + "largest_confusions": [ + { + "predicted_class": 3, + "fraction_of_ground_truth": 0.09492651794601557 + }, + { + "predicted_class": 11, + "fraction_of_ground_truth": 0.0330083728555536 + }, + { + "predicted_class": 18, + "fraction_of_ground_truth": 0.030051525264945256 + } + ] + }, + { + "class_id": 16, + "ground_truth_pixels": 76859, + "precision": 0.3423618483544728, + "recall": 0.6377652584602974, + "largest_confusions": [ + { + "predicted_class": 1, + "fraction_of_ground_truth": 0.165601946421369 + }, + { + "predicted_class": 8, + "fraction_of_ground_truth": 0.13669186432298105 + }, + { + "predicted_class": 11, + "fraction_of_ground_truth": 0.014663214457643218 + } + ] + }, + { + "class_id": 17, + "ground_truth_pixels": 42769, + "precision": 0.33188645445776493, + "recall": 0.11262830554841123, + "largest_confusions": [ + { + "predicted_class": 2, + "fraction_of_ground_truth": 0.26311113189459656 + }, + { + "predicted_class": 1, + "fraction_of_ground_truth": 0.20192195281629216 + }, + { + "predicted_class": 10, + "fraction_of_ground_truth": 0.15962496200519066 + } + ] + }, + { + "class_id": 18, + "ground_truth_pixels": 32024, + "precision": 0.5247309923393704, + "recall": 0.37003497376967276, + "largest_confusions": [ + { + "predicted_class": 1, + "fraction_of_ground_truth": 0.14657756682488135 + }, + { + "predicted_class": 14, + "fraction_of_ground_truth": 0.11407069697726704 + }, + { + "predicted_class": 8, + "fraction_of_ground_truth": 0.11210342243317512 + } + ] + } + ] +} diff --git a/ablations/10_plateau_breakthrough/workspace/convnext_research_20261010/promotion.json b/ablations/10_plateau_breakthrough/workspace/convnext_research_20261010/promotion.json new file mode 100644 index 0000000000000000000000000000000000000000..9fc924c2e1c49e3fd782973310ba883567c6267c --- /dev/null +++ b/ablations/10_plateau_breakthrough/workspace/convnext_research_20261010/promotion.json @@ -0,0 +1,6 @@ +{ + "frozen_at": "2026-10-10T09:44:02.390257+00:00", + "selected": [], + "ranked_eligible": [], + "test_used_for_selection": false +} \ No newline at end of file diff --git a/ablations/10_plateau_breakthrough/workspace/convnext_research_20261010/protected_hashes.json b/ablations/10_plateau_breakthrough/workspace/convnext_research_20261010/protected_hashes.json new file mode 100644 index 0000000000000000000000000000000000000000..1645cdd987d2be9e7b5b443b285e1392c725b86c --- /dev/null +++ b/ablations/10_plateau_breakthrough/workspace/convnext_research_20261010/protected_hashes.json @@ -0,0 +1,11 @@ +{ + "config.py": "919187bb4d7cf6ab6ef3748287a3b2720b5b1057bab35edefa0d7ef0fae60531", + "dataset.py": "710b78cb1459498fbf45732809b18e3d8676433e5f2e06c43da6a0b6358b94dc", + "latest.utae.tar": "550f799d8ee7493112aa1d156f22487e1e999ff62b653a456e7a0000047bfe4b", + "model.py": "81d0a5820168363e0775cd7bfc36535398ef42e78dae9422c35d9455c7793442", + "temporal_srda.py": "1b73f000ae44c8680b94b021a379d4815f95a553af611c8f885a295e5179468e", + "research_round/checkpoints/sam/model_best_raw.tar": "aa834986f0756f8bcf5646f3af63d0ccbd59ad46d33f6a64641e98fe14e679f1", + "plateau_experiments/probe_best.tar": "3a17469c8d41370e6808f00c24fc49f8801c88a9e4715b5a19802bba9ec3fb30", + "overnight_research/32X32_full_seed3407/best.tar": "08ba0ec1c2409596301504f299c40b8eb20346c12241903364d74179b23a1774", + "temporal_research/32X32_cnn_control_seed3407/best.tar": "a08c3485199d8b519bf1a9dad72c84545b7adee818798acdfe068135be3de833" +} \ No newline at end of file diff --git a/ablations/10_plateau_breakthrough/workspace/convnext_research_20261010/queue.log b/ablations/10_plateau_breakthrough/workspace/convnext_research_20261010/queue.log new file mode 100644 index 0000000000000000000000000000000000000000..1402c096d4c07aed1436f56fccdf817c3a9425a4 --- /dev/null +++ b/ablations/10_plateau_breakthrough/workspace/convnext_research_20261010/queue.log @@ -0,0 +1,36 @@ +/usr/lib/python3/dist-packages/scipy/__init__.py:146: UserWarning: A NumPy version >=1.17.3 and <1.25.0 is required for this version of SciPy (detected version 1.26.4 + warnings.warn(f"A NumPy version >={np_minversion} and <{np_maxversion}" +START reference_validation +END reference_validation 0 +START cnn_control_train +END cnn_control_train 0 +START cnn_control_select +END cnn_control_select 0 +START temporal_cnv1_k3_train +END temporal_cnv1_k3_train 0 +START temporal_cnv1_k3_select +END temporal_cnv1_k3_select 0 +START temporal_cnv1_k7_train +END temporal_cnv1_k7_train 0 +START temporal_cnv1_k7_select +END temporal_cnv1_k7_select 0 +START temporal_cnv2_k7_train +END temporal_cnv2_k7_train 0 +START temporal_cnv2_k7_select +END temporal_cnv2_k7_select 0 +START temporal_cnv2_k15_train +END temporal_cnv2_k15_train 0 +START temporal_cnv2_k15_select +END temporal_cnv2_k15_select 0 +START spatial_cnv1_train +END spatial_cnv1_train 0 +START spatial_cnv1_select +END spatial_cnv1_select 0 +START spatial_cnv2_train +END spatial_cnv2_train 0 +START spatial_cnv2_select +END spatial_cnv2_select 0 +START spatial_inception_train +END spatial_inception_train 0 +START spatial_inception_select +END spatial_inception_select 0 diff --git a/ablations/10_plateau_breakthrough/workspace/convnext_research_20261010/recommended_test_probabilities.npy b/ablations/10_plateau_breakthrough/workspace/convnext_research_20261010/recommended_test_probabilities.npy new file mode 100644 index 0000000000000000000000000000000000000000..86a957cd80221ea2eb8023eb6d2effbee610c82d --- /dev/null +++ b/ablations/10_plateau_breakthrough/workspace/convnext_research_20261010/recommended_test_probabilities.npy @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:1ebda3460d8e5429df74751f01a76f04de6d4d15548d83c084dcb52e84b3657e +size 631767168 diff --git a/ablations/10_plateau_breakthrough/workspace/convnext_research_20261010/reference_validation.json b/ablations/10_plateau_breakthrough/workspace/convnext_research_20261010/reference_validation.json new file mode 100644 index 0000000000000000000000000000000000000000..ddc41104e06751547958356f39deb77d477e4697 --- /dev/null +++ b/ablations/10_plateau_breakthrough/workspace/convnext_research_20261010/reference_validation.json @@ -0,0 +1,472 @@ +{ + "metrics": { + "miou": 0.5256398451814701, + "oa": 0.7954606313128608, + "macro_f1": 0.6400266863319044, + "kappa": 0.7725060156424988, + "per_class_iou": [ + 0.7863696632193052, + 0.7940560621411685, + 0.8422681105804802, + 0.5216035634743875, + 0.8953563366655918, + 0.5666403785488959, + 0.6681021224238696, + 0.6854425749817118, + 0.3865969759193579, + 0.15913978494623657, + 0.8521227955584585, + 0.16817463736895016, + 0.15324165029469547, + 0.3526720731960907, + 0.8232323232323232, + 0.5073836723321259, + 0.010297482837528604, + 0.2888170055452865 + ], + "confusion_matrix": [ + [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + [ + 0, + 14827, + 104, + 46, + 8, + 16, + 20, + 1, + 480, + 0, + 3, + 211, + 80, + 3, + 659, + 16, + 296, + 4, + 6, + 0 + ], + [ + 0, + 160, + 11756, + 93, + 27, + 17, + 59, + 3, + 0, + 18, + 25, + 184, + 13, + 1, + 99, + 0, + 10, + 4, + 8, + 0 + ], + [ + 0, + 165, + 132, + 12522, + 19, + 10, + 2, + 144, + 0, + 31, + 1, + 0, + 2, + 6, + 113, + 137, + 34, + 11, + 539, + 0 + ], + [ + 0, + 23, + 477, + 28, + 1171, + 50, + 1, + 0, + 0, + 0, + 130, + 0, + 18, + 10, + 0, + 2, + 6, + 128, + 3, + 0 + ], + [ + 0, + 83, + 1, + 23, + 0, + 5553, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 19, + 8, + 1, + 101, + 0, + 0 + ], + [ + 0, + 96, + 76, + 5, + 7, + 0, + 1437, + 49, + 253, + 0, + 0, + 217, + 0, + 0, + 77, + 0, + 5, + 186, + 0, + 0 + ], + [ + 0, + 7, + 0, + 14, + 0, + 0, + 10, + 4344, + 415, + 65, + 0, + 10, + 472, + 0, + 33, + 1, + 4, + 0, + 4, + 0 + ], + [ + 0, + 29, + 0, + 0, + 0, + 0, + 0, + 0, + 6559, + 0, + 0, + 9, + 0, + 0, + 0, + 0, + 1, + 0, + 0, + 0 + ], + [ + 0, + 6, + 20, + 6, + 0, + 1, + 0, + 26, + 0, + 2071, + 0, + 0, + 16, + 14, + 5, + 1, + 0, + 0, + 0, + 0 + ], + [ + 0, + 34, + 886, + 0, + 14, + 0, + 2, + 0, + 0, + 5, + 222, + 0, + 0, + 0, + 5, + 0, + 30, + 4, + 0, + 0 + ], + [ + 0, + 17, + 0, + 0, + 91, + 0, + 14, + 5, + 10, + 0, + 0, + 6523, + 0, + 0, + 13, + 0, + 63, + 0, + 6, + 0 + ], + [ + 0, + 107, + 18, + 205, + 0, + 3, + 10, + 473, + 524, + 2954, + 6, + 129, + 1171, + 188, + 120, + 47, + 11, + 8, + 72, + 0 + ], + [ + 0, + 1, + 44, + 53, + 0, + 0, + 0, + 189, + 8, + 36, + 1, + 71, + 216, + 156, + 12, + 2, + 7, + 0, + 0, + 0 + ], + [ + 0, + 1027, + 18, + 38, + 0, + 0, + 10, + 43, + 402, + 0, + 0, + 58, + 0, + 0, + 1696, + 0, + 205, + 7, + 0, + 0 + ], + [ + 0, + 28, + 6, + 32, + 4, + 6, + 0, + 0, + 0, + 40, + 0, + 0, + 0, + 0, + 0, + 1793, + 0, + 0, + 0, + 0 + ], + [ + 0, + 51, + 0, + 8, + 0, + 0, + 0, + 19, + 875, + 0, + 0, + 14, + 0, + 0, + 41, + 0, + 1821, + 0, + 0, + 0 + ], + [ + 0, + 230, + 546, + 75, + 28, + 310, + 0, + 0, + 0, + 42, + 27, + 0, + 0, + 0, + 0, + 4, + 15, + 18, + 0, + 0 + ], + [ + 0, + 11, + 0, + 373, + 0, + 0, + 0, + 171, + 4, + 0, + 0, + 10, + 100, + 0, + 109, + 51, + 72, + 0, + 625, + 0 + ], + [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ] + ] + }, + "expected": 0.5256398451814701, + "verified_at": "2026-10-10T07:23:37.492657+00:00" +} \ No newline at end of file diff --git a/ablations/10_plateau_breakthrough/workspace/convnext_research_20261010/reference_validation.log b/ablations/10_plateau_breakthrough/workspace/convnext_research_20261010/reference_validation.log new file mode 100644 index 0000000000000000000000000000000000000000..f611f87d8903be5f8a8f9c31cf771e7689cff251 --- /dev/null +++ b/ablations/10_plateau_breakthrough/workspace/convnext_research_20261010/reference_validation.log @@ -0,0 +1,3 @@ +/usr/lib/python3/dist-packages/scipy/__init__.py:146: UserWarning: A NumPy version >=1.17.3 and <1.25.0 is required for this version of SciPy (detected version 1.26.4 + warnings.warn(f"A NumPy version >={np_minversion} and <{np_maxversion}" +REFERENCE VERIFIED 0.5256398451814701 diff --git a/ablations/10_plateau_breakthrough/workspace/convnext_research_20261010/smoke.json b/ablations/10_plateau_breakthrough/workspace/convnext_research_20261010/smoke.json new file mode 100644 index 0000000000000000000000000000000000000000..71f03fe41cdf1d9b4bdd73d018a2238aa292f207 --- /dev/null +++ b/ablations/10_plateau_breakthrough/workspace/convnext_research_20261010/smoke.json @@ -0,0 +1,93 @@ +{ + "passed": true, + "records": [ + { + "kind": "cnn_control", + "parameters": 28306, + "forward_backward_seconds": 0.6546013168990612, + "padding_max_error": 0.0 + }, + { + "kind": "temporal_cnv1_k3", + "parameters": 144274, + "forward_backward_seconds": 0.01775271911174059, + "padding_max_error": 0.0 + }, + { + "kind": "temporal_cnv1_k7", + "parameters": 145298, + "forward_backward_seconds": 0.016588952858000994, + "padding_max_error": 0.0 + }, + { + "kind": "temporal_cnv2_k7", + "parameters": 147090, + "forward_backward_seconds": 0.06850095465779305, + "padding_max_error": 0.0 + }, + { + "kind": "temporal_cnv2_k15", + "parameters": 149138, + "forward_backward_seconds": 0.05462230183184147, + "padding_max_error": 0.0 + }, + { + "kind": "spatial_cnv1", + "parameters": 220050, + "forward_backward_seconds": 0.14255994372069836, + "padding_max_error": 0.0 + }, + { + "kind": "spatial_cnv2", + "parameters": 220946, + "forward_backward_seconds": 0.03083092113956809, + "padding_max_error": 0.0 + }, + { + "kind": "spatial_inception", + "parameters": 214194, + "forward_backward_seconds": 0.0772546399384737, + "padding_max_error": 0.0 + }, + { + "kind": "temporal_cnv2_k7", + "real_batch_shape": [ + 2, + 43, + 10, + 32, + 32 + ], + "loss": 2.891028642654419, + "seconds": 0.10501805413514376, + "peak_allocated_gb": 1.631952896 + }, + { + "kind": "spatial_cnv2", + "real_batch_shape": [ + 2, + 43, + 10, + 32, + 32 + ], + "loss": 3.169011116027832, + "seconds": 0.12999175675213337, + "peak_allocated_gb": 1.632998912 + }, + { + "kind": "spatial_inception", + "real_batch_shape": [ + 2, + 43, + 10, + 32, + 32 + ], + "loss": 3.0430166721343994, + "seconds": 0.09755064873024821, + "peak_allocated_gb": 1.632951808 + } + ], + "at": "2026-10-10T07:21:54.501443+00:00" +} \ No newline at end of file diff --git a/ablations/10_plateau_breakthrough/workspace/convnext_research_20261010/source/convnext_research.py b/ablations/10_plateau_breakthrough/workspace/convnext_research_20261010/source/convnext_research.py new file mode 100644 index 0000000000000000000000000000000000000000..29002505d54a1efebcbef6a567fcacb216c64e4b --- /dev/null +++ b/ablations/10_plateau_breakthrough/workspace/convnext_research_20261010/source/convnext_research.py @@ -0,0 +1,296 @@ +"""Controlled ConvNeXt block study with unchanged PASTIS sampling and held test. + +Commands: smoke, cache, train --kind NAME, select --kind NAME, queue. +The queue trains eight models, selects blends on validation, freezes up to two +improving candidates, then evaluates exactly those candidates on fold4. +""" +import argparse, datetime as dt, fcntl, hashlib, json, random, subprocess, sys, time +from pathlib import Path +import numpy as np +import torch +from torch.nn import functional as F +import config as C +from dataset import train_patch_ids, val_patch_ids, test_patch_ids, crop_ij +from temporal_specialist import loader +from finetune_temporal_research import target_for +from finetune_plateau import aug_dihedral, aug_temporal_subsample, aug_frame_dropout, aug_spectral, lr_factor +from plateau_probes import metrics_cm, write_json +from convnext_research_models import KINDS, make_model, GRN + +ROOT=Path(__file__).resolve().parent +OUT=ROOT/'convnext_research_20261010' +BASE_VAL=.5256398451814701 +BASE_TEST=.49455547330691263 +CLASSES=list(range(1,19)) +OPTIONS=[('add',0.),('add',.1),('add',.25),('add',.5),('replace',.1),('replace',.25),('replace',.5)] + + +def now():return dt.datetime.now(dt.timezone.utc).isoformat() +def folder(kind):return OUT/f'32X32_{kind}_seed3407' +def seed(): + torch.set_num_threads(4);torch.manual_seed(3407);random.seed(3407);np.random.seed(3407) + torch.backends.cuda.matmul.allow_tf32=True;torch.backends.cudnn.allow_tf32=True + + +def cm_for(y,pred): + y=np.asarray(y).ravel().astype(np.int64);pred=np.asarray(pred).ravel().astype(np.int64) + valid=(y>0)&(y<19) + return np.bincount(20*y[valid]+pred[valid],minlength=400).reshape(20,20) + + +def probabilities(logits): + b,_,h,w=logits.shape + out=torch.zeros((b,20,h,w),device=logits.device) + out[:,1:19]=logits.float().softmax(1) + return out + + +class Reference: + def __init__(self): + from evaluate_temporal_research import ReferenceTeacher + self.teacher=ReferenceTeacher() + self.new=make_model('cnn_control').cuda().eval().requires_grad_(False) + self.new.load_state_dict(torch.load(ROOT/'temporal_research/32X32_cnn_control_seed3407/best.tar',map_location='cpu',weights_only=False)['state'],strict=True) + + @torch.inference_mode() + def __call__(self,x,pos): + ref=self.teacher(x,pos) + with torch.autocast('cuda',dtype=torch.float16):new=probabilities(self.new(x,pos)) + return ref,.75*ref+.25*new + + def close(self):self.teacher.collector.close() + + +@torch.inference_mode() +def cache_reference(): + path=OUT/'validation_reference.npz' + if path.exists(): + data=np.load(path);score=metrics_cm(cm_for(data['labels'],data['recommended'].argmax(-1)))['miou'] + assert abs(score-BASE_VAL)<1e-6 + return + ref=Reference();ys=[];older=[];recommended=[];patches=[] + ids=val_patch_ids();offset=0 + for (x,pos,_),y in loader(ids,2): + these_ids=ids[offset:offset+len(x)];offset+=len(x) + x,pos=x.cuda(),pos.cuda() + for i,j in C.FT_CROP_IJ: + xc,yc=crop_ij(x,y,i,j,4);old,full=ref(xc,pos) + ys.append(yc.numpy().ravel()) + older.append(old.permute(0,2,3,1).reshape(-1,20).cpu().numpy()) + recommended.append(full.permute(0,2,3,1).reshape(-1,20).cpu().numpy()) + patches.append(np.repeat(these_ids,32*32)) + ref.close() + data={'labels':np.concatenate(ys),'old_reference':np.concatenate(older), + 'recommended':np.concatenate(recommended),'patch_ids':np.concatenate(patches)} + metric=metrics_cm(cm_for(data['labels'],data['recommended'].argmax(-1))) + assert abs(metric['miou']-BASE_VAL)<1e-6,(metric['miou'],BASE_VAL) + np.savez_compressed(path,**data) + write_json(OUT/'reference_validation.json',{'metrics':metric,'expected':BASE_VAL,'verified_at':now()}) + print('REFERENCE VERIFIED',metric['miou'],flush=True) + + +@torch.inference_mode() +def validate(model,dl,keep=False): + model.eval();cm=np.zeros((20,20),np.int64);predictions=[];labels=[] + for (x,pos,_),y in dl: + x,pos=x.cuda(),pos.cuda() + for i,j in C.FT_CROP_IJ: + xc,yc=crop_ij(x,y,i,j,4) + with torch.autocast('cuda',dtype=torch.float16):logits=model(xc,pos) + cm+=cm_for(yc.numpy(),logits.argmax(1).cpu().numpy()+1) + if keep: + predictions.append(probabilities(logits).permute(0,2,3,1).reshape(-1,20).cpu().numpy()) + labels.append(yc.numpy().ravel()) + return metrics_cm(cm),(np.concatenate(predictions),np.concatenate(labels)) if keep else None + + +def atomic_save(data,path): + temp=path.with_suffix('.tmp');torch.save(data,temp);temp.replace(path) + + +def train(kind,epochs): + dest=folder(kind);dest.mkdir(parents=True,exist_ok=True) + model=make_model(kind).cuda();opt=torch.optim.AdamW(model.parameters(),lr=1e-3,weight_decay=.01) + torch.manual_seed(3407);random.seed(3407) + scaler=torch.amp.GradScaler('cuda') + td=loader(train_patch_ids(),2,True);vd=loader(val_patch_ids(),2) + best=-1.;start=0;history=[] + if (dest/'latest.tar').exists(): + ck=torch.load(dest/'latest.tar',map_location='cpu',weights_only=False) + if ck['epochs_budget']!=epochs:raise ValueError('Changed epoch budget on resume') + model.load_state_dict(ck['state']);opt.load_state_dict(ck['optimizer']);scaler.load_state_dict(ck['scaler']) + torch.set_rng_state(ck['rng']);torch.cuda.set_rng_state_all(ck['cuda_rng']);random.setstate(ck['python_rng']);np.random.set_state(ck['numpy_rng']) + start=ck['epoch']+1;best=ck['best'];history=ck['history'] + write_json(dest/'config.json',{'kind':kind,'seed':3407,'epochs':epochs,'parameters':sum(p.numel() for p in model.parameters()),'lr':.001,'wd':.01,'warmup_epochs':3,'clip':1.,'label_smoothing':.05,'pretrained':False,'architecture_scope':'custom PASTIS adaptation, not official ImageNet model reproduction'}) + for epoch in range(start,epochs): + model.train();started=time.monotonic();total=0.;steps=0 + for (x,pos,_),y in td: + x,pos,y=x.cuda(),pos.cuda(),y.cuda() + for i,j in C.FT_CROP_IJ: + xc,yc=crop_ij(x,y,i,j,4);xc,yc=aug_dihedral(xc,yc) + xc,pc=aug_temporal_subsample(xc,pos);xc=aug_frame_dropout(xc);xc=aug_spectral(xc) + target=target_for(yc,CLASSES);opt.zero_grad(set_to_none=True) + factor=lr_factor(epoch*76+steps,epochs*76,3*76,.01) + for g in opt.param_groups:g['lr']=.001*factor + with torch.autocast('cuda',dtype=torch.float16):logits=model(xc,pc) + loss=F.cross_entropy(logits.float(),target,ignore_index=-100,label_smoothing=.05) if (target!=-100).any() else logits.float().sum()*0 + if not torch.isfinite(loss):raise RuntimeError('Nonfinite loss') + scaler.scale(loss).backward();scaler.unscale_(opt);torch.nn.utils.clip_grad_norm_(model.parameters(),1.) + scaler.step(opt);scaler.update();total+=loss.item();steps+=1 + assert steps==76 + metric,_=validate(model,vd) + if metric['miou']>best: + best=metric['miou'];atomic_save({'state':model.state_dict(),'epoch':epoch,'seed':3407,'kind':kind,'validation':metric},dest/'best.tar') + rec={'epoch':epoch+1,'loss':total/steps,'val_miou':metric['miou'],'best_val_miou':best,'seconds':time.monotonic()-started,'peak_allocated_gb':torch.cuda.max_memory_allocated()/1e9} + history.append(rec) + atomic_save({'state':model.state_dict(),'optimizer':opt.state_dict(),'scaler':scaler.state_dict(),'epoch':epoch,'epochs_budget':epochs,'best':best,'rng':torch.get_rng_state(),'cuda_rng':torch.cuda.get_rng_state_all(),'python_rng':random.getstate(),'numpy_rng':np.random.get_state(),'history':history},dest/'latest.tar') + write_json(dest/'history.json',history);write_json(dest/'progress.json',rec) + print(kind,json.dumps(rec),flush=True) + + +def load_candidate(kind): + ck=torch.load(folder(kind)/'best.tar',map_location='cpu',weights_only=False) + model=make_model(kind).cuda().eval();model.load_state_dict(ck['state'],strict=True) + return model,ck + + +def select(kind): + data=np.load(OUT/'validation_reference.npz') + model,ck=load_candidate(kind);standalone,(p,y)=validate(model,loader(val_patch_ids(),2),True) + assert np.array_equal(y,data['labels']),'Validation cache order changed' + records=[] + for mode,alpha in OPTIONS: + base=data['recommended'] if mode=='add' else data['old_reference'] + pred=((1-alpha)*base+alpha*p).argmax(-1) + records.append({'mode':mode,'alpha':alpha,'metrics':metrics_cm(cm_for(y,pred))}) + chosen=max(records,key=lambda r:r['metrics']['miou']) + base=data['recommended'] if chosen['mode']=='add' else data['old_reference'] + pred=((1-chosen['alpha'])*base+chosen['alpha']*p).argmax(-1) + pid=data['patch_ids'];cms=[];basecms=[] + for patch in np.unique(pid): + take=pid==patch;cms.append(cm_for(y[take],pred[take]));basecms.append(cm_for(y[take],data['recommended'][take].argmax(-1))) + rng=np.random.default_rng(3407);cms=np.array(cms);basecms=np.array(basecms);deltas=[] + for _ in range(1000): + ix=rng.integers(len(cms),size=len(cms));deltas.append(100*(metrics_cm(cms[ix].sum(0))['miou']-metrics_cm(basecms[ix].sum(0))['miou'])) + result={'kind':kind,'seed':3407,'checkpoint_epoch':ck['epoch']+1,'standalone':standalone, + 'chosen':chosen,'records':records,'reference_val_miou':BASE_VAL, + 'delta_val_pp':100*(chosen['metrics']['miou']-BASE_VAL), + 'patch_bootstrap_delta_interval_pp':np.quantile(deltas,[.025,.975]).tolist(), + 'bootstrap_caveat':'descriptive, after validation selection; not an independent significance test', + 'selection_split':'validation','test_used_for_selection':False} + write_json(folder(kind)/'selection.json',result);print('SELECT',kind,result['delta_val_pp'],chosen['mode'],chosen['alpha'],flush=True) + + +@torch.inference_mode() +def test_promoted(kind): + promotion=json.loads((OUT/'promotion.json').read_text()) + if kind not in promotion['selected']:raise RuntimeError('Candidate was not promoted before test') + selection=json.loads((folder(kind)/'selection.json').read_text());chosen=selection['chosen'] + model,_=load_candidate(kind);ref=Reference();cm=np.zeros((20,20),np.int64);basecm=cm.copy();singlecm=cm.copy();started=time.monotonic() + for bi,((x,pos,_),y) in enumerate(loader(test_patch_ids(),1)): + x,pos=x.cuda(),pos.cuda();old,base=ref(x,pos) + with torch.autocast('cuda',dtype=torch.float16):p=probabilities(model(x,pos)) + parent=base if chosen['mode']=='add' else old + pred=((1-chosen['alpha'])*parent+chosen['alpha']*p).argmax(1) + cm+=cm_for(y.numpy(),pred.cpu().numpy());basecm+=cm_for(y.numpy(),base.argmax(1).cpu().numpy());singlecm+=cm_for(y.numpy(),p.argmax(1).cpu().numpy()) + if bi%50==0:print('TEST',kind,bi,482,flush=True) + ref.close();baseline=metrics_cm(basecm);assert abs(baseline['miou']-BASE_TEST)<1e-6,(baseline['miou'],BASE_TEST) + metric=metrics_cm(cm) + result={'kind':kind,'metrics':metric,'baseline':baseline,'standalone':metrics_cm(singlecm),'delta_test_pp':100*(metric['miou']-BASE_TEST),'seconds':time.monotonic()-started,'validation_selection':selection,'promotion_frozen_at':promotion['frozen_at'],'patches':482} + write_json(folder(kind)/'test_results.json',result);print('TEST RESULT',kind,metric['miou'],flush=True) + + +def smoke(): + OUT.mkdir(exist_ok=True) + x=torch.randn(2,9,10,8,8,device='cuda');pos=torch.tensor([[0,1,2,3,4,5,6,7,8],[0,1,2,3,4,0,0,0,0]],device='cuda').float() + records=[] + for kind in KINDS: + model=make_model(kind).cuda();torch.cuda.reset_peak_memory_stats();t=time.monotonic() + with torch.autocast('cuda',dtype=torch.float16):out=model(x,pos) + assert out.shape==(2,18,8,8) and torch.isfinite(out).all() + loss=out.float().square().mean();loss.backward() + assert all(p.grad is None or torch.isfinite(p.grad).all() for p in model.parameters()) + model.eval() + # Different sequence lengths may select different TF32 kernels. Check + # mathematical padding invariance in full FP32, not a TF32 tolerance. + torch.backends.cuda.matmul.allow_tf32=False;torch.backends.cudnn.allow_tf32=False + with torch.no_grad(): + a=model(x,pos);xp=F.pad(x,(0,0,0,0,0,0,0,3));pp=F.pad(pos,(0,3));b=model(xp,pp) + error=(a-b).abs().max().item();assert error<1e-5,(kind,error) + torch.backends.cuda.matmul.allow_tf32=True;torch.backends.cudnn.allow_tf32=True + records.append({'kind':kind,'parameters':sum(p.numel() for p in model.parameters()),'forward_backward_seconds':time.monotonic()-t,'padding_max_error':error}) + del model + # Verify GRN identity initialization and masked response with learned parameters. + grn=GRN(8).cuda();z=torch.randn(2,9,8,device='cuda');mask=torch.ones(2,9,1,device='cuda') + assert torch.equal(grn(z,mask),z) + with torch.no_grad():grn.gamma.fill_(.2);grn.beta.fill_(.1) + assert torch.allclose(grn(z,mask),grn(F.pad(z,(0,0,0,3)),F.pad(mask,(0,0,0,3)))[:,:9],atol=1e-6) + # Real data forward/backward at full fixed32 geometry and batch2. + ((real,positions,_),target)=next(iter(loader(train_patch_ids(),2))) + real,target=crop_ij(real,target,0,0,4);real,positions,target=real.cuda(),positions.cuda(),target.cuda() + for kind in ['temporal_cnv2_k7','spatial_cnv2','spatial_inception']: + model=make_model(kind).cuda();torch.cuda.reset_peak_memory_stats();t=time.monotonic() + with torch.autocast('cuda',dtype=torch.float16):pred=model(real,positions) + loss=F.cross_entropy(pred.float(),target_for(target,CLASSES),ignore_index=-100,label_smoothing=.05) + loss.backward();assert torch.isfinite(loss) + records.append({'kind':kind,'real_batch_shape':list(real.shape),'loss':loss.item(),'seconds':time.monotonic()-t,'peak_allocated_gb':torch.cuda.max_memory_allocated()/1e9}) + del model,pred + write_json(OUT/'smoke.json',{'passed':True,'records':records,'at':now()});print(json.dumps(records,indent=2),flush=True) + + +def protected_hashes(): + names=['config.py','dataset.py','latest.utae.tar','model.py','temporal_srda.py','research_round/checkpoints/sam/model_best_raw.tar','plateau_experiments/probe_best.tar','overnight_research/32X32_full_seed3407/best.tar','temporal_research/32X32_cnn_control_seed3407/best.tar'] + return {n:hashlib.sha256((ROOT/n).read_bytes()).hexdigest() for n in names} + + +def queue(): + OUT.mkdir(exist_ok=True) + with (OUT/'queue.lock').open('w') as lock: + fcntl.flock(lock,fcntl.LOCK_EX|fcntl.LOCK_NB) + manifest=OUT/'protected_hashes.json' + if not manifest.exists():write_json(manifest,protected_hashes()) + jobs=[{'name':'reference_validation','command':[sys.executable,'-u',__file__,'cache']}] + for kind in KINDS: + for action in ['train','select']: + jobs.append({'name':kind+'_'+action,'command':[sys.executable,'-u',__file__,action,'--kind',kind],'dependency':None if action=='train' else kind+'_train'}) + write_json(OUT/'plan.json',{'created':now(),'jobs':jobs,'seed':3407,'training_epochs':100,'data_config':'unchanged exact IDs/duplicates; fixed32 diagonal crops; ten bands/index positions;76steps/epoch; full128 fold4 test','selection_options':OPTIONS,'promotion_rule':'up to2 non-control candidates ranked by validation, require +0.10 percentage points over52.5639845%; freeze promotion before any new test','test_used_for_selection':False,'external_pretraining':False}) + sp=OUT/'status.json';state=json.loads(sp.read_text()) if sp.exists() else {} + for job in jobs:state.setdefault(job['name'],{'status':'queued'}) + write_json(sp,state) + def run(job): + name=job['name'] + if state.get(name,{}).get('status')=='completed':return + if protected_hashes()!=json.loads(manifest.read_text()):raise RuntimeError('Protected protocol/checkpoint changed') + if job.get('dependency') and state[job['dependency']]['status']!='completed': + state[name]={'status':'blocked_by_failed_dependency'};write_json(sp,state);return + state[name]={'status':'running','started':now(),'command':job['command']};write_json(sp,state);t=time.monotonic() + print('START',name,flush=True) + with (OUT/(name+'.log')).open('a') as log:rc=subprocess.run(job['command'],cwd=ROOT,stdout=log,stderr=subprocess.STDOUT).returncode + state[name].update(status='completed' if rc==0 else 'failed',returncode=rc,ended=now(),seconds=time.monotonic()-t);write_json(sp,state);print('END',name,rc,flush=True) + for job in jobs: + run(job) + if job['name']=='reference_validation' and state[job['name']]['status']!='completed':raise RuntimeError('Reference did not reproduce; halt queue') + promotion=OUT/'promotion.json' + if not promotion.exists(): + eligible=[] + for kind in KINDS: + p=folder(kind)/'selection.json' + if kind!='cnn_control' and p.exists(): + s=json.loads(p.read_text()) + if s['delta_val_pp']>=.10:eligible.append((s['chosen']['metrics']['miou'],kind)) + write_json(promotion,{'frozen_at':now(),'selected':[k for _,k in sorted(eligible,reverse=True)[:2]],'ranked_eligible':sorted(eligible,reverse=True),'test_used_for_selection':False}) + for kind in json.loads(promotion.read_text())['selected']: + run({'name':kind+'_test','command':[sys.executable,'-u',__file__,'test','--kind',kind]}) + write_json(OUT/'completion.json',{'finished':now(),'status':state,'promotion':json.loads(promotion.read_text())}) + + +if __name__=='__main__': + ap=argparse.ArgumentParser();ap.add_argument('action',choices=['smoke','cache','train','select','test','queue']);ap.add_argument('--kind',choices=KINDS);ap.add_argument('--epochs',type=int,default=100);args=ap.parse_args() + OUT.mkdir(exist_ok=True);seed() + if args.action in ['train','select','test'] and args.kind is None:ap.error('--kind is required') + if args.action=='smoke':smoke() + elif args.action=='cache':cache_reference() + elif args.action=='train':train(args.kind,args.epochs) + elif args.action=='select':select(args.kind) + elif args.action=='test':test_promoted(args.kind) + else:queue() diff --git a/ablations/10_plateau_breakthrough/workspace/convnext_research_20261010/source/convnext_research_models.py b/ablations/10_plateau_breakthrough/workspace/convnext_research_20261010/source/convnext_research_models.py new file mode 100644 index 0000000000000000000000000000000000000000..7f531d0f44cbbe1c9420cc39ec60b4e169aca430 --- /dev/null +++ b/ablations/10_plateau_breakthrough/workspace/convnext_research_20261010/source/convnext_research_models.py @@ -0,0 +1,125 @@ +"""PASTIS adaptations of ConvNeXt blocks; not official ImageNet model reproductions. + +All models consume the unchanged ten-band index-position input. Temporal +adaptations keep every observation; spatial adaptations retain full resolution. +No external pretrained weights. Original pretrained model is used only in the +existing frozen reference ensemble by the evaluator. +Sources: ConvNeXt (CVPR2022), ConvNeXt V2 (CVPR2023), InceptionNeXt (CVPR2024). +""" +import torch +from torch import nn +from torch.nn import functional as F +from temporal_specialist import TemporalCNN +from top5_models import valid_from_index_positions + +KINDS = ['cnn_control', 'temporal_cnv1_k3', 'temporal_cnv1_k7', + 'temporal_cnv2_k7', 'temporal_cnv2_k15', + 'spatial_cnv1', 'spatial_cnv2', 'spatial_inception'] + + +class GRN(nn.Module): + """Channel-last response normalization; norm over valid temporal/spatial axes.""" + def __init__(self, dim): + super().__init__() + self.gamma = nn.Parameter(torch.zeros(dim)) + self.beta = nn.Parameter(torch.zeros(dim)) + + def forward(self, x, valid=None): + values = x.float() if valid is None else x.float() * valid + axes = tuple(range(1, x.ndim - 1)) + response = torch.linalg.vector_norm(values, dim=axes, keepdim=True) + relative = response / (response.mean(dim=-1, keepdim=True) + 1e-6) + out = x + self.gamma * x * relative.to(x.dtype) + self.beta + return out if valid is None else out * valid + + +class TemporalBlock(nn.Module): + def __init__(self, dim=64, kernel=7, version=2): + super().__init__() + self.dw = nn.Conv1d(dim, dim, kernel, padding=kernel//2, groups=dim) + self.norm = nn.LayerNorm(dim, eps=1e-6) + self.expand = nn.Linear(dim, 4*dim) + self.grn = GRN(4*dim) if version == 2 else None + self.project = nn.Linear(4*dim, dim) + self.scale = nn.Parameter(torch.full((dim,), 1e-6)) if version == 1 else None + + def forward(self, x, valid): + z = self.dw((x*valid).transpose(1,2)).transpose(1,2) + z = F.gelu(self.expand(self.norm(z))) * valid + if self.grn is not None: + z = self.grn(z, valid) + z = self.project(z) + if self.scale is not None: + z = z * self.scale + return (x + z) * valid + + +class InceptionDW(nn.Module): + """Identity plus square/horizontal/vertical channel branches, ratio1/8.""" + def __init__(self, dim): + super().__init__() + branch = dim//8 + self.splits = [dim-3*branch, branch, branch, branch] + self.square = nn.Conv2d(branch,branch,3,padding=1,groups=branch) + self.horizontal = nn.Conv2d(branch,branch,(1,11),padding=(0,5),groups=branch) + self.vertical = nn.Conv2d(branch,branch,(11,1),padding=(5,0),groups=branch) + + def forward(self,x): + identity,s,h,v=torch.split(x,self.splits,dim=1) + return torch.cat([identity,self.square(s),self.horizontal(h),self.vertical(v)],dim=1) + + +class SpatialBlock(nn.Module): + def __init__(self, dim=64, kind='spatial_cnv2'): + super().__init__() + self.dw = InceptionDW(dim) if kind=='spatial_inception' else nn.Conv2d(dim,dim,7,padding=3,groups=dim) + self.norm=nn.LayerNorm(dim,eps=1e-6) + self.expand=nn.Linear(dim,4*dim) + self.grn=GRN(4*dim) if kind=='spatial_cnv2' else None + self.project=nn.Linear(4*dim,dim) + self.scale=nn.Parameter(torch.full((dim,),1e-6)) if kind!='spatial_cnv2' else None + + def forward(self,x): + z=self.dw(x).permute(0,2,3,1) + z=F.gelu(self.expand(self.norm(z))) + if self.grn is not None:z=self.grn(z) + z=self.project(z) + if self.scale is not None:z=z*self.scale + return x+z.permute(0,3,1,2) + + +class TemporalConvNeXt(nn.Module): + def __init__(self, kind, classes=18): + super().__init__() + version=1 if 'cnv1' in kind and kind.startswith('temporal') else 2 + kernel=15 if kind.endswith('k15') else (3 if kind.endswith('k3') else 7) + self.input=nn.Linear(10,64) + self.blocks=nn.ModuleList([TemporalBlock(64,kernel,version) for _ in range(4)]) + self.spatial=kind.startswith('spatial') + if self.spatial: + self.project=nn.Conv2d(128,64,1) + self.spatial_blocks=nn.Sequential(*[SpatialBlock(64,kind) for _ in range(2)]) + self.head=nn.Conv2d(64,classes,1) + else: + self.head=nn.Sequential(nn.Linear(128,64),nn.GELU(),nn.Linear(64,classes)) + + def forward(self,x,pos): + b,t,c,h,w=x.shape + valid=valid_from_index_positions(pos)[:,None,None].expand(b,h,w,t).reshape(-1,t,1) + pixels=x.permute(0,3,4,1,2).reshape(-1,t,c) + parts=[] + for start in range(0,len(pixels),1024): + mask=valid[start:start+1024] + z=self.input(pixels[start:start+1024])*mask + for block in self.blocks:z=block(z,mask) + mean=z.sum(1)/mask.sum(1).clamp_min(1) + maximum=z.masked_fill(~mask,torch.finfo(z.dtype).min).amax(1) + pooled=torch.cat([mean,maximum],dim=-1) + parts.append(pooled if self.spatial else self.head(pooled)) + out=torch.cat(parts).reshape(b,h,w,-1).permute(0,3,1,2) + return self.head(self.spatial_blocks(self.project(out))) if self.spatial else out + + +def make_model(kind,classes=18): + if kind not in KINDS:raise ValueError(kind) + return TemporalCNN(classes) if kind=='cnn_control' else TemporalConvNeXt(kind,classes) diff --git a/ablations/10_plateau_breakthrough/workspace/convnext_research_20261010/source/run_convnext_research.sh b/ablations/10_plateau_breakthrough/workspace/convnext_research_20261010/source/run_convnext_research.sh new file mode 100644 index 0000000000000000000000000000000000000000..f9e7f13de4195ae61bb9a1d23acdc8c12d4d47f9 --- /dev/null +++ b/ablations/10_plateau_breakthrough/workspace/convnext_research_20261010/source/run_convnext_research.sh @@ -0,0 +1,10 @@ +#!/usr/bin/env bash +set -euo pipefail +cd /home/ubuntu/tsr +export PASTIS_ROOT=/home/ubuntu/PASTIS +export LD_LIBRARY_PATH=/home/ubuntu/tsr/cuda12_libs/nvidia/cudnn/lib:/home/ubuntu/tsr/cuda12_libs/nvidia/cublas/lib +export LD_PRELOAD=/home/ubuntu/tsr/cuda12_libs/nvidia/cudnn/lib/libcudnn.so.9:/home/ubuntu/tsr/cuda12_libs/nvidia/cublas/lib/libcublas.so.12:/home/ubuntu/tsr/cuda12_libs/nvidia/cublas/lib/libcublasLt.so.12 +export PYTORCH_CUDA_ALLOC_CONF=expandable_segments:True +export OPENBLAS_NUM_THREADS=4 +export OMP_NUM_THREADS=4 +exec python3 -u convnext_research.py "$@" diff --git a/ablations/10_plateau_breakthrough/workspace/convnext_research_20261010/source_manifest.json b/ablations/10_plateau_breakthrough/workspace/convnext_research_20261010/source_manifest.json new file mode 100644 index 0000000000000000000000000000000000000000..09bbb8e32d8a220ed7e0a11790a0b65333fd4663 --- /dev/null +++ b/ablations/10_plateau_breakthrough/workspace/convnext_research_20261010/source_manifest.json @@ -0,0 +1,5 @@ +{ + "convnext_research.py": "214eae2bd9eae88b4b4cd5585bb70c3c44085daa1a59f3632044f55828fe919a", + "convnext_research_models.py": "ecc76490f636673dfaf8b52bee5c033f2496f4e0b46e520b28ce0d18cafa0f56", + "run_convnext_research.sh": "b6b2aa4e85488ffefab0b580d49d86171482ba32e2af4d78ad0f8d375abcfafe" +} diff --git a/ablations/10_plateau_breakthrough/workspace/convnext_research_20261010/spatial_cnv1_select.log b/ablations/10_plateau_breakthrough/workspace/convnext_research_20261010/spatial_cnv1_select.log new file mode 100644 index 0000000000000000000000000000000000000000..b08fbfe0f61f1a2a41ecddd0014b846145626bbe --- /dev/null +++ b/ablations/10_plateau_breakthrough/workspace/convnext_research_20261010/spatial_cnv1_select.log @@ -0,0 +1,3 @@ +/usr/lib/python3/dist-packages/scipy/__init__.py:146: UserWarning: A NumPy version >=1.17.3 and <1.25.0 is required for this version of SciPy (detected version 1.26.4 + warnings.warn(f"A NumPy version >={np_minversion} and <{np_maxversion}" +SELECT spatial_cnv1 0.0 add 0.0 diff --git a/ablations/10_plateau_breakthrough/workspace/convnext_research_20261010/spatial_cnv1_train.log b/ablations/10_plateau_breakthrough/workspace/convnext_research_20261010/spatial_cnv1_train.log new file mode 100644 index 0000000000000000000000000000000000000000..4f436090a3d2281878653e305c5bb92fa395a5cf --- /dev/null +++ b/ablations/10_plateau_breakthrough/workspace/convnext_research_20261010/spatial_cnv1_train.log @@ -0,0 +1,102 @@ +/usr/lib/python3/dist-packages/scipy/__init__.py:146: UserWarning: A NumPy version >=1.17.3 and <1.25.0 is required for this version of SciPy (detected version 1.26.4 + warnings.warn(f"A NumPy version >={np_minversion} and <{np_maxversion}" +spatial_cnv1 {"epoch": 1, "loss": 2.8847742613993193, "val_miou": 0.023140563385397456, "best_val_miou": 0.023140563385397456, "seconds": 14.846661356743425, "peak_allocated_gb": 2.381900288} +spatial_cnv1 {"epoch": 2, "loss": 2.514019216361799, "val_miou": 0.04879972824521639, "best_val_miou": 0.04879972824521639, "seconds": 13.119620207231492, "peak_allocated_gb": 2.381900288} +spatial_cnv1 {"epoch": 3, "loss": 2.368038856669476, "val_miou": 0.0706564038088221, "best_val_miou": 0.0706564038088221, "seconds": 13.120040589012206, "peak_allocated_gb": 2.381900288} +spatial_cnv1 {"epoch": 4, "loss": 2.1325925525866056, "val_miou": 0.030896954092728374, "best_val_miou": 0.0706564038088221, "seconds": 13.02426225412637, "peak_allocated_gb": 2.381900288} +spatial_cnv1 {"epoch": 5, "loss": 2.0715440794041284, "val_miou": 0.19642382439864378, "best_val_miou": 0.19642382439864378, "seconds": 13.255871386267245, "peak_allocated_gb": 2.381900288} +spatial_cnv1 {"epoch": 6, "loss": 1.8138714597413415, "val_miou": 0.12072549878799348, "best_val_miou": 0.19642382439864378, "seconds": 13.275642370805144, "peak_allocated_gb": 2.381900288} +spatial_cnv1 {"epoch": 7, "loss": 1.768769967712854, "val_miou": 0.21929265779754925, "best_val_miou": 0.21929265779754925, "seconds": 13.449704219587147, "peak_allocated_gb": 2.381900288} +spatial_cnv1 {"epoch": 8, "loss": 1.569861633212943, "val_miou": 0.23697048148063432, "best_val_miou": 0.23697048148063432, "seconds": 13.363473103847355, "peak_allocated_gb": 2.381900288} +spatial_cnv1 {"epoch": 9, "loss": 1.4372160011216213, "val_miou": 0.20645157003893216, "best_val_miou": 0.23697048148063432, "seconds": 13.236034048255533, "peak_allocated_gb": 2.381900288} +spatial_cnv1 {"epoch": 10, "loss": 1.3719062648321454, "val_miou": 0.27208199601897376, "best_val_miou": 0.27208199601897376, "seconds": 13.278920335229486, "peak_allocated_gb": 2.381900288} +spatial_cnv1 {"epoch": 11, "loss": 1.2737454795523693, "val_miou": 0.2365018320764553, "best_val_miou": 0.27208199601897376, "seconds": 13.315643940120935, "peak_allocated_gb": 2.381900288} +spatial_cnv1 {"epoch": 12, "loss": 1.3302593960573799, "val_miou": 0.250718281538589, "best_val_miou": 0.27208199601897376, "seconds": 13.14907995890826, "peak_allocated_gb": 2.381900288} +spatial_cnv1 {"epoch": 13, "loss": 1.1509225893961756, "val_miou": 0.2654535926665729, "best_val_miou": 0.27208199601897376, "seconds": 13.380979647859931, "peak_allocated_gb": 2.381900288} +spatial_cnv1 {"epoch": 14, "loss": 1.0859499895258953, "val_miou": 0.2997293597407624, "best_val_miou": 0.2997293597407624, "seconds": 13.689207947347313, "peak_allocated_gb": 2.381900288} +spatial_cnv1 {"epoch": 15, "loss": 1.0312802407302355, "val_miou": 0.2834368760603778, "best_val_miou": 0.2997293597407624, "seconds": 13.272246973123401, "peak_allocated_gb": 2.381900288} +spatial_cnv1 {"epoch": 16, "loss": 0.9938021815921131, "val_miou": 0.2900909182127743, "best_val_miou": 0.2997293597407624, "seconds": 13.348744108807296, "peak_allocated_gb": 2.381900288} +spatial_cnv1 {"epoch": 17, "loss": 1.0404714792966843, "val_miou": 0.29104270769587043, "best_val_miou": 0.2997293597407624, "seconds": 13.298079740721732, "peak_allocated_gb": 2.381900288} +spatial_cnv1 {"epoch": 18, "loss": 0.9306914873029056, "val_miou": 0.2546236042764647, "best_val_miou": 0.2997293597407624, "seconds": 13.122143612708896, "peak_allocated_gb": 2.381900288} +spatial_cnv1 {"epoch": 19, "loss": 0.9327797191707712, "val_miou": 0.3079091063407532, "best_val_miou": 0.3079091063407532, "seconds": 13.284294159617275, "peak_allocated_gb": 2.381900288} +spatial_cnv1 {"epoch": 20, "loss": 0.8622635061803617, "val_miou": 0.292275139535682, "best_val_miou": 0.3079091063407532, "seconds": 13.347269839141518, "peak_allocated_gb": 2.381900288} +spatial_cnv1 {"epoch": 21, "loss": 0.8580273519221105, "val_miou": 0.3002613578078351, "best_val_miou": 0.3079091063407532, "seconds": 13.165202037896961, "peak_allocated_gb": 2.381900288} +spatial_cnv1 {"epoch": 22, "loss": 0.7536711081078178, "val_miou": 0.3379135682712237, "best_val_miou": 0.3379135682712237, "seconds": 13.189706942997873, "peak_allocated_gb": 2.381900288} +spatial_cnv1 {"epoch": 23, "loss": 0.7718524885805029, "val_miou": 0.2897091762091332, "best_val_miou": 0.3379135682712237, "seconds": 13.040536301210523, "peak_allocated_gb": 2.381900288} +spatial_cnv1 {"epoch": 24, "loss": 0.726569621970779, "val_miou": 0.3251574750913223, "best_val_miou": 0.3379135682712237, "seconds": 13.616339002270252, "peak_allocated_gb": 2.381900288} +spatial_cnv1 {"epoch": 25, "loss": 0.6558693416024509, "val_miou": 0.36745496495328683, "best_val_miou": 0.36745496495328683, "seconds": 13.54883758816868, "peak_allocated_gb": 2.381900288} +spatial_cnv1 {"epoch": 26, "loss": 0.693387337421116, "val_miou": 0.3363630326177929, "best_val_miou": 0.36745496495328683, "seconds": 13.218420431017876, "peak_allocated_gb": 2.381900288} +spatial_cnv1 {"epoch": 27, "loss": 0.6030315948944343, "val_miou": 0.3431335587885837, "best_val_miou": 0.36745496495328683, "seconds": 13.419546672143042, "peak_allocated_gb": 2.381900288} +spatial_cnv1 {"epoch": 28, "loss": 0.6196562992899042, "val_miou": 0.3290287841711377, "best_val_miou": 0.36745496495328683, "seconds": 13.566414029337466, "peak_allocated_gb": 2.381900288} +spatial_cnv1 {"epoch": 29, "loss": 0.6375314514887961, "val_miou": 0.311402271785536, "best_val_miou": 0.36745496495328683, "seconds": 13.491071911063045, "peak_allocated_gb": 2.381900288} +spatial_cnv1 {"epoch": 30, "loss": 0.6315247620406904, "val_miou": 0.32357704747685134, "best_val_miou": 0.36745496495328683, "seconds": 13.062270415015519, "peak_allocated_gb": 2.381900288} +spatial_cnv1 {"epoch": 31, "loss": 0.5707830806311808, "val_miou": 0.35184257240516237, "best_val_miou": 0.36745496495328683, "seconds": 13.473309769295156, "peak_allocated_gb": 2.381900288} +spatial_cnv1 {"epoch": 32, "loss": 0.5779452982701754, "val_miou": 0.3236934857553464, "best_val_miou": 0.36745496495328683, "seconds": 13.446456608828157, "peak_allocated_gb": 2.381900288} +spatial_cnv1 {"epoch": 33, "loss": 0.5706389934608811, "val_miou": 0.3269187754803636, "best_val_miou": 0.36745496495328683, "seconds": 13.224190726876259, "peak_allocated_gb": 2.381900288} +spatial_cnv1 {"epoch": 34, "loss": 0.5395386622924554, "val_miou": 0.3749528359603587, "best_val_miou": 0.3749528359603587, "seconds": 13.419090554583818, "peak_allocated_gb": 2.381900288} +spatial_cnv1 {"epoch": 35, "loss": 0.55398438949334, "val_miou": 0.3289942475221722, "best_val_miou": 0.3749528359603587, "seconds": 13.245449455920607, "peak_allocated_gb": 2.381900288} +spatial_cnv1 {"epoch": 36, "loss": 0.5192278603974142, "val_miou": 0.35051167953997975, "best_val_miou": 0.3749528359603587, "seconds": 13.613436238840222, "peak_allocated_gb": 2.381900288} +spatial_cnv1 {"epoch": 37, "loss": 0.5153444754449945, "val_miou": 0.33753560715302044, "best_val_miou": 0.3749528359603587, "seconds": 13.571635593660176, "peak_allocated_gb": 2.381900288} +spatial_cnv1 {"epoch": 38, "loss": 0.502941761754061, "val_miou": 0.36408613348629565, "best_val_miou": 0.3749528359603587, "seconds": 13.17276686616242, "peak_allocated_gb": 2.381900288} +spatial_cnv1 {"epoch": 39, "loss": 0.5057619602272385, "val_miou": 0.3671642318376958, "best_val_miou": 0.3749528359603587, "seconds": 13.213247940409929, "peak_allocated_gb": 2.381900288} +spatial_cnv1 {"epoch": 40, "loss": 0.4690232672973683, "val_miou": 0.3455881769731338, "best_val_miou": 0.3749528359603587, "seconds": 13.225335993338376, "peak_allocated_gb": 2.381900288} +spatial_cnv1 {"epoch": 41, "loss": 0.48944478560435145, "val_miou": 0.3529014904158071, "best_val_miou": 0.3749528359603587, "seconds": 13.282657601870596, "peak_allocated_gb": 2.381900288} +spatial_cnv1 {"epoch": 42, "loss": 0.476547419632736, "val_miou": 0.36837806531098144, "best_val_miou": 0.3749528359603587, "seconds": 13.347090736962855, "peak_allocated_gb": 2.381900288} +spatial_cnv1 {"epoch": 43, "loss": 0.45846861796943766, "val_miou": 0.35473321658312296, "best_val_miou": 0.3749528359603587, "seconds": 13.363453916274011, "peak_allocated_gb": 2.381900288} +spatial_cnv1 {"epoch": 44, "loss": 0.48852646154792684, "val_miou": 0.38206778275267683, "best_val_miou": 0.38206778275267683, "seconds": 13.128580590710044, "peak_allocated_gb": 2.381900288} +spatial_cnv1 {"epoch": 45, "loss": 0.4685412688474906, "val_miou": 0.36895130412847615, "best_val_miou": 0.38206778275267683, "seconds": 13.61297527095303, "peak_allocated_gb": 2.381900288} +spatial_cnv1 {"epoch": 46, "loss": 0.46084360150914444, "val_miou": 0.3596137384627684, "best_val_miou": 0.38206778275267683, "seconds": 13.170213951729238, "peak_allocated_gb": 2.381900288} +spatial_cnv1 {"epoch": 47, "loss": 0.43723512087997635, "val_miou": 0.3642705312951047, "best_val_miou": 0.38206778275267683, "seconds": 13.192931349854916, "peak_allocated_gb": 2.381900288} +spatial_cnv1 {"epoch": 48, "loss": 0.4371304755148135, "val_miou": 0.3519023952268372, "best_val_miou": 0.38206778275267683, "seconds": 13.06648813188076, "peak_allocated_gb": 2.381900288} +spatial_cnv1 {"epoch": 49, "loss": 0.4440946010382552, "val_miou": 0.36079201488799084, "best_val_miou": 0.38206778275267683, "seconds": 13.550338920205832, "peak_allocated_gb": 2.381900288} +spatial_cnv1 {"epoch": 50, "loss": 0.41076468597901494, "val_miou": 0.3764095412720516, "best_val_miou": 0.38206778275267683, "seconds": 13.351179113145918, "peak_allocated_gb": 2.381900288} +spatial_cnv1 {"epoch": 51, "loss": 0.4561811481651507, "val_miou": 0.3770181189418602, "best_val_miou": 0.38206778275267683, "seconds": 13.46517166821286, "peak_allocated_gb": 2.381900288} +spatial_cnv1 {"epoch": 52, "loss": 0.43776748603896093, "val_miou": 0.3732358009176361, "best_val_miou": 0.38206778275267683, "seconds": 13.32119402103126, "peak_allocated_gb": 2.381900288} +spatial_cnv1 {"epoch": 53, "loss": 0.42526482124077647, "val_miou": 0.3712625012153588, "best_val_miou": 0.38206778275267683, "seconds": 13.534449448343366, "peak_allocated_gb": 2.381900288} +spatial_cnv1 {"epoch": 54, "loss": 0.4251931760656206, "val_miou": 0.3912104565298561, "best_val_miou": 0.3912104565298561, "seconds": 12.876993104815483, "peak_allocated_gb": 2.381900288} +spatial_cnv1 {"epoch": 55, "loss": 0.43584201524132177, "val_miou": 0.3716779419967212, "best_val_miou": 0.3912104565298561, "seconds": 13.046096491161734, "peak_allocated_gb": 2.381900288} +spatial_cnv1 {"epoch": 56, "loss": 0.4025330190595828, "val_miou": 0.3847529009478801, "best_val_miou": 0.3912104565298561, "seconds": 13.339281714055687, "peak_allocated_gb": 2.381900288} +spatial_cnv1 {"epoch": 57, "loss": 0.42078085400556264, "val_miou": 0.35899883010906686, "best_val_miou": 0.3912104565298561, "seconds": 13.199532252270728, "peak_allocated_gb": 2.381900288} +spatial_cnv1 {"epoch": 58, "loss": 0.41562900731438085, "val_miou": 0.38908159131426223, "best_val_miou": 0.3912104565298561, "seconds": 13.188239611685276, "peak_allocated_gb": 2.381900288} +spatial_cnv1 {"epoch": 59, "loss": 0.40793834861956146, "val_miou": 0.40308597010170377, "best_val_miou": 0.40308597010170377, "seconds": 13.530500834807754, "peak_allocated_gb": 2.381900288} +spatial_cnv1 {"epoch": 60, "loss": 0.40333038999846105, "val_miou": 0.3677352027399545, "best_val_miou": 0.40308597010170377, "seconds": 13.419699830934405, "peak_allocated_gb": 2.381900288} +spatial_cnv1 {"epoch": 61, "loss": 0.41231316288835124, "val_miou": 0.37260878012650167, "best_val_miou": 0.40308597010170377, "seconds": 13.215086225885898, "peak_allocated_gb": 2.381900288} +spatial_cnv1 {"epoch": 62, "loss": 0.38749054270355326, "val_miou": 0.3787724255899221, "best_val_miou": 0.40308597010170377, "seconds": 13.259109671227634, "peak_allocated_gb": 2.381900288} +spatial_cnv1 {"epoch": 63, "loss": 0.39405965256063563, "val_miou": 0.3868511461116209, "best_val_miou": 0.40308597010170377, "seconds": 13.327810232061893, "peak_allocated_gb": 2.381900288} +spatial_cnv1 {"epoch": 64, "loss": 0.38708864230858653, "val_miou": 0.39289798627575245, "best_val_miou": 0.40308597010170377, "seconds": 13.432683215010911, "peak_allocated_gb": 2.381900288} +spatial_cnv1 {"epoch": 65, "loss": 0.4019524835442242, "val_miou": 0.3918253229377133, "best_val_miou": 0.40308597010170377, "seconds": 13.48086524894461, "peak_allocated_gb": 2.381900288} +spatial_cnv1 {"epoch": 66, "loss": 0.4019034540182666, "val_miou": 0.37903451822092493, "best_val_miou": 0.40308597010170377, "seconds": 13.295224834699184, "peak_allocated_gb": 2.381900288} +spatial_cnv1 {"epoch": 67, "loss": 0.3970831024803613, "val_miou": 0.37679909176191145, "best_val_miou": 0.40308597010170377, "seconds": 13.34079310297966, "peak_allocated_gb": 2.381900288} +spatial_cnv1 {"epoch": 68, "loss": 0.3888999247237256, "val_miou": 0.38924384663180983, "best_val_miou": 0.40308597010170377, "seconds": 13.16661997884512, "peak_allocated_gb": 2.381900288} +spatial_cnv1 {"epoch": 69, "loss": 0.3937032046286683, "val_miou": 0.38518220700690986, "best_val_miou": 0.40308597010170377, "seconds": 13.23004571115598, "peak_allocated_gb": 2.381900288} +spatial_cnv1 {"epoch": 70, "loss": 0.38654881284425135, "val_miou": 0.39090591550232445, "best_val_miou": 0.40308597010170377, "seconds": 13.10657247994095, "peak_allocated_gb": 2.381900288} +spatial_cnv1 {"epoch": 71, "loss": 0.37385678761883784, "val_miou": 0.4028802803296103, "best_val_miou": 0.40308597010170377, "seconds": 13.380503815598786, "peak_allocated_gb": 2.381900288} +spatial_cnv1 {"epoch": 72, "loss": 0.39141589050230224, "val_miou": 0.40926084060737083, "best_val_miou": 0.40926084060737083, "seconds": 13.043337367940694, "peak_allocated_gb": 2.381900288} +spatial_cnv1 {"epoch": 73, "loss": 0.3712604810532771, "val_miou": 0.393544736008114, "best_val_miou": 0.40926084060737083, "seconds": 13.28299384796992, "peak_allocated_gb": 2.381900288} +spatial_cnv1 {"epoch": 74, "loss": 0.37362760501472575, "val_miou": 0.38320876274312815, "best_val_miou": 0.40926084060737083, "seconds": 13.485608563292772, "peak_allocated_gb": 2.381900288} +spatial_cnv1 {"epoch": 75, "loss": 0.3813778291407384, "val_miou": 0.39514795443987855, "best_val_miou": 0.40926084060737083, "seconds": 13.018018352333456, "peak_allocated_gb": 2.381900288} +spatial_cnv1 {"epoch": 76, "loss": 0.38463543159397023, "val_miou": 0.383194764953243, "best_val_miou": 0.40926084060737083, "seconds": 13.026167382020503, "peak_allocated_gb": 2.381900288} +spatial_cnv1 {"epoch": 77, "loss": 0.3928881679710589, "val_miou": 0.4035426727141705, "best_val_miou": 0.40926084060737083, "seconds": 13.128579995129257, "peak_allocated_gb": 2.381900288} +spatial_cnv1 {"epoch": 78, "loss": 0.3823659647452204, "val_miou": 0.40189010600353586, "best_val_miou": 0.40926084060737083, "seconds": 13.092161187902093, "peak_allocated_gb": 2.381900288} +spatial_cnv1 {"epoch": 79, "loss": 0.3697920453391577, "val_miou": 0.38447641911434555, "best_val_miou": 0.40926084060737083, "seconds": 13.228462821803987, "peak_allocated_gb": 2.381900288} +spatial_cnv1 {"epoch": 80, "loss": 0.3841601327845925, "val_miou": 0.3898009777423869, "best_val_miou": 0.40926084060737083, "seconds": 13.020424886140972, "peak_allocated_gb": 2.381900288} +spatial_cnv1 {"epoch": 81, "loss": 0.3725483307712956, "val_miou": 0.39899153823677963, "best_val_miou": 0.40926084060737083, "seconds": 13.321375685278326, "peak_allocated_gb": 2.381900288} +spatial_cnv1 {"epoch": 82, "loss": 0.3704922897251029, "val_miou": 0.3914393132748574, "best_val_miou": 0.40926084060737083, "seconds": 13.066420066170394, "peak_allocated_gb": 2.381900288} +spatial_cnv1 {"epoch": 83, "loss": 0.3651148853333373, "val_miou": 0.38874891031585307, "best_val_miou": 0.40926084060737083, "seconds": 12.995594912208617, "peak_allocated_gb": 2.381900288} +spatial_cnv1 {"epoch": 84, "loss": 0.36857247862376663, "val_miou": 0.40010674544195185, "best_val_miou": 0.40926084060737083, "seconds": 13.090049128979445, "peak_allocated_gb": 2.381900288} +spatial_cnv1 {"epoch": 85, "loss": 0.3875395075271004, "val_miou": 0.39568987452445437, "best_val_miou": 0.40926084060737083, "seconds": 12.95874923095107, "peak_allocated_gb": 2.381900288} +spatial_cnv1 {"epoch": 86, "loss": 0.37387774884700775, "val_miou": 0.39870716144053003, "best_val_miou": 0.40926084060737083, "seconds": 13.132929746061563, "peak_allocated_gb": 2.381900288} +spatial_cnv1 {"epoch": 87, "loss": 0.37417890602036524, "val_miou": 0.39324931248274514, "best_val_miou": 0.40926084060737083, "seconds": 13.357767507899553, "peak_allocated_gb": 2.381900288} +spatial_cnv1 {"epoch": 88, "loss": 0.3700645652256514, "val_miou": 0.39909113169316196, "best_val_miou": 0.40926084060737083, "seconds": 12.764371195808053, "peak_allocated_gb": 2.381900288} +spatial_cnv1 {"epoch": 89, "loss": 0.3719171128774944, "val_miou": 0.4014618776749116, "best_val_miou": 0.40926084060737083, "seconds": 13.054117122199386, "peak_allocated_gb": 2.381900288} +spatial_cnv1 {"epoch": 90, "loss": 0.36860177313026626, "val_miou": 0.3980528197507844, "best_val_miou": 0.40926084060737083, "seconds": 13.028856329154223, "peak_allocated_gb": 2.381900288} +spatial_cnv1 {"epoch": 91, "loss": 0.365882114360207, "val_miou": 0.3984095276718411, "best_val_miou": 0.40926084060737083, "seconds": 13.155617109965533, "peak_allocated_gb": 2.381900288} +spatial_cnv1 {"epoch": 92, "loss": 0.36794471387800415, "val_miou": 0.3957543537296467, "best_val_miou": 0.40926084060737083, "seconds": 13.00920980796218, "peak_allocated_gb": 2.381900288} +spatial_cnv1 {"epoch": 93, "loss": 0.36945283648214844, "val_miou": 0.39783105407289315, "best_val_miou": 0.40926084060737083, "seconds": 12.731720860116184, "peak_allocated_gb": 2.381900288} +spatial_cnv1 {"epoch": 94, "loss": 0.3681842273003177, "val_miou": 0.39542478950589005, "best_val_miou": 0.40926084060737083, "seconds": 13.231343480292708, "peak_allocated_gb": 2.381900288} +spatial_cnv1 {"epoch": 95, "loss": 0.3740066972218062, "val_miou": 0.3964206443798575, "best_val_miou": 0.40926084060737083, "seconds": 13.131431772839278, "peak_allocated_gb": 2.381900288} +spatial_cnv1 {"epoch": 96, "loss": 0.3706671685764664, "val_miou": 0.39581641274305723, "best_val_miou": 0.40926084060737083, "seconds": 13.13909549312666, "peak_allocated_gb": 2.381900288} +spatial_cnv1 {"epoch": 97, "loss": 0.36269092167678635, "val_miou": 0.3949460466526327, "best_val_miou": 0.40926084060737083, "seconds": 13.187376421876252, "peak_allocated_gb": 2.381900288} +spatial_cnv1 {"epoch": 98, "loss": 0.3669660922728087, "val_miou": 0.39744601874075586, "best_val_miou": 0.40926084060737083, "seconds": 13.192042463924736, "peak_allocated_gb": 2.381900288} +spatial_cnv1 {"epoch": 99, "loss": 0.36074782437399816, "val_miou": 0.3973904058594816, "best_val_miou": 0.40926084060737083, "seconds": 13.372102105990052, "peak_allocated_gb": 2.381900288} +spatial_cnv1 {"epoch": 100, "loss": 0.3605884054773732, "val_miou": 0.396751143708629, "best_val_miou": 0.40926084060737083, "seconds": 13.279409472830594, "peak_allocated_gb": 2.381900288} diff --git a/ablations/10_plateau_breakthrough/workspace/convnext_research_20261010/spatial_cnv2_select.log b/ablations/10_plateau_breakthrough/workspace/convnext_research_20261010/spatial_cnv2_select.log new file mode 100644 index 0000000000000000000000000000000000000000..34584e2a4ebf1d1aa1228805016b10b508fc2113 --- /dev/null +++ b/ablations/10_plateau_breakthrough/workspace/convnext_research_20261010/spatial_cnv2_select.log @@ -0,0 +1,3 @@ +/usr/lib/python3/dist-packages/scipy/__init__.py:146: UserWarning: A NumPy version >=1.17.3 and <1.25.0 is required for this version of SciPy (detected version 1.26.4 + warnings.warn(f"A NumPy version >={np_minversion} and <{np_maxversion}" +SELECT spatial_cnv2 0.0 add 0.0 diff --git a/ablations/10_plateau_breakthrough/workspace/convnext_research_20261010/spatial_cnv2_train.log b/ablations/10_plateau_breakthrough/workspace/convnext_research_20261010/spatial_cnv2_train.log new file mode 100644 index 0000000000000000000000000000000000000000..e7a810390986491a182f0e935a76af1021ec908a --- /dev/null +++ b/ablations/10_plateau_breakthrough/workspace/convnext_research_20261010/spatial_cnv2_train.log @@ -0,0 +1,102 @@ +/usr/lib/python3/dist-packages/scipy/__init__.py:146: UserWarning: A NumPy version >=1.17.3 and <1.25.0 is required for this version of SciPy (detected version 1.26.4 + warnings.warn(f"A NumPy version >={np_minversion} and <{np_maxversion}" +spatial_cnv2 {"epoch": 1, "loss": 2.8292422247560403, "val_miou": 0.02442652551042249, "best_val_miou": 0.02442652551042249, "seconds": 14.662459587212652, "peak_allocated_gb": 2.381912576} +spatial_cnv2 {"epoch": 2, "loss": 2.4774572998285294, "val_miou": 0.04207830818599002, "best_val_miou": 0.04207830818599002, "seconds": 13.259861049242318, "peak_allocated_gb": 2.381912576} +spatial_cnv2 {"epoch": 3, "loss": 2.48991848920521, "val_miou": 0.054830228430601397, "best_val_miou": 0.054830228430601397, "seconds": 13.101491685956717, "peak_allocated_gb": 2.381912576} +spatial_cnv2 {"epoch": 4, "loss": 2.2002530599895276, "val_miou": 0.03932853102413101, "best_val_miou": 0.054830228430601397, "seconds": 12.996324060019106, "peak_allocated_gb": 2.381912576} +spatial_cnv2 {"epoch": 5, "loss": 2.2390915116197183, "val_miou": 0.18801261112972265, "best_val_miou": 0.18801261112972265, "seconds": 13.308089373167604, "peak_allocated_gb": 2.381912576} +spatial_cnv2 {"epoch": 6, "loss": 1.9182478511019756, "val_miou": 0.1222093194253963, "best_val_miou": 0.18801261112972265, "seconds": 13.211536454968154, "peak_allocated_gb": 2.381912576} +spatial_cnv2 {"epoch": 7, "loss": 1.854770917641489, "val_miou": 0.19660123778823474, "best_val_miou": 0.19660123778823474, "seconds": 13.076678690034896, "peak_allocated_gb": 2.381912576} +spatial_cnv2 {"epoch": 8, "loss": 1.6685772267611403, "val_miou": 0.23350793756015747, "best_val_miou": 0.23350793756015747, "seconds": 13.312489169184119, "peak_allocated_gb": 2.381912576} +spatial_cnv2 {"epoch": 9, "loss": 1.5148425910033678, "val_miou": 0.20004090048619375, "best_val_miou": 0.23350793756015747, "seconds": 13.177210303023458, "peak_allocated_gb": 2.381912576} +spatial_cnv2 {"epoch": 10, "loss": 1.4893279754017528, "val_miou": 0.2607577712564698, "best_val_miou": 0.2607577712564698, "seconds": 13.079326862003654, "peak_allocated_gb": 2.381912576} +spatial_cnv2 {"epoch": 11, "loss": 1.3619966863801605, "val_miou": 0.23026121117853457, "best_val_miou": 0.2607577712564698, "seconds": 13.354620804078877, "peak_allocated_gb": 2.381912576} +spatial_cnv2 {"epoch": 12, "loss": 1.4030997729615162, "val_miou": 0.21911562148334238, "best_val_miou": 0.2607577712564698, "seconds": 13.062559446319938, "peak_allocated_gb": 2.381912576} +spatial_cnv2 {"epoch": 13, "loss": 1.2535600348522788, "val_miou": 0.21278696515270112, "best_val_miou": 0.2607577712564698, "seconds": 13.389584894292057, "peak_allocated_gb": 2.381912576} +spatial_cnv2 {"epoch": 14, "loss": 1.168513168629847, "val_miou": 0.2794641830458844, "best_val_miou": 0.2794641830458844, "seconds": 13.435828552115709, "peak_allocated_gb": 2.381912576} +spatial_cnv2 {"epoch": 15, "loss": 1.071762073196863, "val_miou": 0.285871679939749, "best_val_miou": 0.285871679939749, "seconds": 13.159837940707803, "peak_allocated_gb": 2.381912576} +spatial_cnv2 {"epoch": 16, "loss": 1.0092790236598568, "val_miou": 0.2744113280980067, "best_val_miou": 0.285871679939749, "seconds": 13.256808131933212, "peak_allocated_gb": 2.381912576} +spatial_cnv2 {"epoch": 17, "loss": 1.0811229199171066, "val_miou": 0.30783008813291224, "best_val_miou": 0.30783008813291224, "seconds": 13.190667029004544, "peak_allocated_gb": 2.381912576} +spatial_cnv2 {"epoch": 18, "loss": 1.0159834246886403, "val_miou": 0.25522538777097176, "best_val_miou": 0.30783008813291224, "seconds": 13.197413274087012, "peak_allocated_gb": 2.381912576} +spatial_cnv2 {"epoch": 19, "loss": 0.9810640996224002, "val_miou": 0.275830452978432, "best_val_miou": 0.30783008813291224, "seconds": 13.200690038967878, "peak_allocated_gb": 2.381912576} +spatial_cnv2 {"epoch": 20, "loss": 0.8675242093832869, "val_miou": 0.289779157721037, "best_val_miou": 0.30783008813291224, "seconds": 13.29204395506531, "peak_allocated_gb": 2.381912576} +spatial_cnv2 {"epoch": 21, "loss": 0.9039600236635459, "val_miou": 0.3067405933432985, "best_val_miou": 0.30783008813291224, "seconds": 13.122227629180998, "peak_allocated_gb": 2.381912576} +spatial_cnv2 {"epoch": 22, "loss": 0.8001909177554282, "val_miou": 0.30738050883006074, "best_val_miou": 0.30783008813291224, "seconds": 13.038240433204919, "peak_allocated_gb": 2.381912576} +spatial_cnv2 {"epoch": 23, "loss": 0.8789623842427605, "val_miou": 0.3269123585504683, "best_val_miou": 0.3269123585504683, "seconds": 13.02858501393348, "peak_allocated_gb": 2.381912576} +spatial_cnv2 {"epoch": 24, "loss": 0.7603811884396955, "val_miou": 0.32089783231626984, "best_val_miou": 0.3269123585504683, "seconds": 13.444739326834679, "peak_allocated_gb": 2.381912576} +spatial_cnv2 {"epoch": 25, "loss": 0.7083392433430019, "val_miou": 0.337209296099888, "best_val_miou": 0.337209296099888, "seconds": 13.372163237072527, "peak_allocated_gb": 2.381912576} +spatial_cnv2 {"epoch": 26, "loss": 0.7176406548211449, "val_miou": 0.33519319442338463, "best_val_miou": 0.337209296099888, "seconds": 13.126640216913074, "peak_allocated_gb": 2.381912576} +spatial_cnv2 {"epoch": 27, "loss": 0.6271104342059085, "val_miou": 0.3207563747953217, "best_val_miou": 0.337209296099888, "seconds": 13.220061494037509, "peak_allocated_gb": 2.381912576} +spatial_cnv2 {"epoch": 28, "loss": 0.6567719378753712, "val_miou": 0.343912224156309, "best_val_miou": 0.343912224156309, "seconds": 13.442549698986113, "peak_allocated_gb": 2.381912576} +spatial_cnv2 {"epoch": 29, "loss": 0.6420605837514526, "val_miou": 0.3155105145277417, "best_val_miou": 0.343912224156309, "seconds": 13.384096095804125, "peak_allocated_gb": 2.381912576} +spatial_cnv2 {"epoch": 30, "loss": 0.6356986639531035, "val_miou": 0.31752977626221907, "best_val_miou": 0.343912224156309, "seconds": 13.186856190208346, "peak_allocated_gb": 2.381912576} +spatial_cnv2 {"epoch": 31, "loss": 0.5811281768899215, "val_miou": 0.3327493792162922, "best_val_miou": 0.343912224156309, "seconds": 13.367331501096487, "peak_allocated_gb": 2.381912576} +spatial_cnv2 {"epoch": 32, "loss": 0.5860197046085408, "val_miou": 0.33246254791934593, "best_val_miou": 0.343912224156309, "seconds": 13.533490926027298, "peak_allocated_gb": 2.381912576} +spatial_cnv2 {"epoch": 33, "loss": 0.592824710434989, "val_miou": 0.3267982797793706, "best_val_miou": 0.343912224156309, "seconds": 13.193180235102773, "peak_allocated_gb": 2.381912576} +spatial_cnv2 {"epoch": 34, "loss": 0.5324754973775462, "val_miou": 0.3305094757734103, "best_val_miou": 0.343912224156309, "seconds": 13.460126950405538, "peak_allocated_gb": 2.381912576} +spatial_cnv2 {"epoch": 35, "loss": 0.5650678547589403, "val_miou": 0.32286442214662714, "best_val_miou": 0.343912224156309, "seconds": 13.322848881129175, "peak_allocated_gb": 2.381912576} +spatial_cnv2 {"epoch": 36, "loss": 0.5190056754570258, "val_miou": 0.33312791236975686, "best_val_miou": 0.343912224156309, "seconds": 13.566177969798446, "peak_allocated_gb": 2.381912576} +spatial_cnv2 {"epoch": 37, "loss": 0.5243179707934982, "val_miou": 0.335264353586759, "best_val_miou": 0.343912224156309, "seconds": 13.588045452255756, "peak_allocated_gb": 2.381912576} +spatial_cnv2 {"epoch": 38, "loss": 0.5010692587024287, "val_miou": 0.35106887287398447, "best_val_miou": 0.35106887287398447, "seconds": 13.367282875813544, "peak_allocated_gb": 2.381912576} +spatial_cnv2 {"epoch": 39, "loss": 0.5018976620937649, "val_miou": 0.3468462046824637, "best_val_miou": 0.35106887287398447, "seconds": 13.092690453864634, "peak_allocated_gb": 2.381912576} +spatial_cnv2 {"epoch": 40, "loss": 0.5006333605239266, "val_miou": 0.3221081094496744, "best_val_miou": 0.35106887287398447, "seconds": 13.162403509952128, "peak_allocated_gb": 2.381912576} +spatial_cnv2 {"epoch": 41, "loss": 0.4974792607520756, "val_miou": 0.3735098825436781, "best_val_miou": 0.3735098825436781, "seconds": 13.255813580006361, "peak_allocated_gb": 2.381912576} +spatial_cnv2 {"epoch": 42, "loss": 0.4662229105045921, "val_miou": 0.3602877480163571, "best_val_miou": 0.3735098825436781, "seconds": 13.207633128855377, "peak_allocated_gb": 2.381912576} +spatial_cnv2 {"epoch": 43, "loss": 0.52036491703046, "val_miou": 0.3465939775784818, "best_val_miou": 0.3735098825436781, "seconds": 13.22937205992639, "peak_allocated_gb": 2.381912576} +spatial_cnv2 {"epoch": 44, "loss": 0.4799576864430779, "val_miou": 0.3757632589261862, "best_val_miou": 0.3757632589261862, "seconds": 12.979262610897422, "peak_allocated_gb": 2.381912576} +spatial_cnv2 {"epoch": 45, "loss": 0.4440323584958127, "val_miou": 0.3826547725699767, "best_val_miou": 0.3826547725699767, "seconds": 13.208910089917481, "peak_allocated_gb": 2.381912576} +spatial_cnv2 {"epoch": 46, "loss": 0.4694145255182919, "val_miou": 0.35119925284466336, "best_val_miou": 0.3826547725699767, "seconds": 12.964711290318519, "peak_allocated_gb": 2.381912576} +spatial_cnv2 {"epoch": 47, "loss": 0.4366756407053847, "val_miou": 0.3571122958805391, "best_val_miou": 0.3826547725699767, "seconds": 13.082803689874709, "peak_allocated_gb": 2.381912576} +spatial_cnv2 {"epoch": 48, "loss": 0.4250874405628757, "val_miou": 0.3566211189958411, "best_val_miou": 0.3826547725699767, "seconds": 12.958072874229401, "peak_allocated_gb": 2.381912576} +spatial_cnv2 {"epoch": 49, "loss": 0.42770668119192123, "val_miou": 0.37280875249199547, "best_val_miou": 0.3826547725699767, "seconds": 13.43663565767929, "peak_allocated_gb": 2.381912576} +spatial_cnv2 {"epoch": 50, "loss": 0.41367360478953313, "val_miou": 0.3770581397828246, "best_val_miou": 0.3826547725699767, "seconds": 13.17732566781342, "peak_allocated_gb": 2.381912576} +spatial_cnv2 {"epoch": 51, "loss": 0.4404305674527821, "val_miou": 0.3857116862987902, "best_val_miou": 0.3857116862987902, "seconds": 13.420277773868293, "peak_allocated_gb": 2.381912576} +spatial_cnv2 {"epoch": 52, "loss": 0.4280373869757903, "val_miou": 0.373001607222562, "best_val_miou": 0.3857116862987902, "seconds": 13.169694277923554, "peak_allocated_gb": 2.381912576} +spatial_cnv2 {"epoch": 53, "loss": 0.4226021143166642, "val_miou": 0.37750378930764966, "best_val_miou": 0.3857116862987902, "seconds": 13.540873468853533, "peak_allocated_gb": 2.381912576} +spatial_cnv2 {"epoch": 54, "loss": 0.43497471197655324, "val_miou": 0.37048888605882285, "best_val_miou": 0.3857116862987902, "seconds": 12.920553511939943, "peak_allocated_gb": 2.381912576} +spatial_cnv2 {"epoch": 55, "loss": 0.4316065915321049, "val_miou": 0.35584187046458265, "best_val_miou": 0.3857116862987902, "seconds": 13.01410586712882, "peak_allocated_gb": 2.381912576} +spatial_cnv2 {"epoch": 56, "loss": 0.3993189919151758, "val_miou": 0.37964562785219, "best_val_miou": 0.3857116862987902, "seconds": 13.301621610764414, "peak_allocated_gb": 2.381912576} +spatial_cnv2 {"epoch": 57, "loss": 0.41867344669605555, "val_miou": 0.3766777493134168, "best_val_miou": 0.3857116862987902, "seconds": 13.10752251278609, "peak_allocated_gb": 2.381912576} +spatial_cnv2 {"epoch": 58, "loss": 0.4094610661268234, "val_miou": 0.3761071850313315, "best_val_miou": 0.3857116862987902, "seconds": 13.175162139348686, "peak_allocated_gb": 2.381912576} +spatial_cnv2 {"epoch": 59, "loss": 0.3995130697363301, "val_miou": 0.3834734705523577, "best_val_miou": 0.3857116862987902, "seconds": 13.37124856095761, "peak_allocated_gb": 2.381912576} +spatial_cnv2 {"epoch": 60, "loss": 0.39973326341102, "val_miou": 0.3668851616036136, "best_val_miou": 0.3857116862987902, "seconds": 13.1735301730223, "peak_allocated_gb": 2.381912576} +spatial_cnv2 {"epoch": 61, "loss": 0.4027943689572184, "val_miou": 0.38163028856082454, "best_val_miou": 0.3857116862987902, "seconds": 13.045397089794278, "peak_allocated_gb": 2.381912576} +spatial_cnv2 {"epoch": 62, "loss": 0.3829852550437576, "val_miou": 0.37620647292725123, "best_val_miou": 0.3857116862987902, "seconds": 13.227401178795844, "peak_allocated_gb": 2.381912576} +spatial_cnv2 {"epoch": 63, "loss": 0.3850267066767341, "val_miou": 0.39436405389480744, "best_val_miou": 0.39436405389480744, "seconds": 13.520482453051955, "peak_allocated_gb": 2.381912576} +spatial_cnv2 {"epoch": 64, "loss": 0.37931662915568604, "val_miou": 0.3918027940704824, "best_val_miou": 0.39436405389480744, "seconds": 13.491340771317482, "peak_allocated_gb": 2.381912576} +spatial_cnv2 {"epoch": 65, "loss": 0.384575417167262, "val_miou": 0.401598977674203, "best_val_miou": 0.401598977674203, "seconds": 13.29614349314943, "peak_allocated_gb": 2.381912576} +spatial_cnv2 {"epoch": 66, "loss": 0.39467531638710124, "val_miou": 0.3795795102319129, "best_val_miou": 0.401598977674203, "seconds": 13.136211411096156, "peak_allocated_gb": 2.381912576} +spatial_cnv2 {"epoch": 67, "loss": 0.3768247083613747, "val_miou": 0.3851865493733675, "best_val_miou": 0.401598977674203, "seconds": 13.214982367120683, "peak_allocated_gb": 2.381912576} +spatial_cnv2 {"epoch": 68, "loss": 0.3791269460006764, "val_miou": 0.3932079017268617, "best_val_miou": 0.401598977674203, "seconds": 13.172981138341129, "peak_allocated_gb": 2.381912576} +spatial_cnv2 {"epoch": 69, "loss": 0.37894278254948166, "val_miou": 0.38061004667295256, "best_val_miou": 0.401598977674203, "seconds": 13.227806423325092, "peak_allocated_gb": 2.381912576} +spatial_cnv2 {"epoch": 70, "loss": 0.3754797542565747, "val_miou": 0.3822617225464238, "best_val_miou": 0.401598977674203, "seconds": 13.140393205918372, "peak_allocated_gb": 2.381912576} +spatial_cnv2 {"epoch": 71, "loss": 0.36353080876563726, "val_miou": 0.39629910189022877, "best_val_miou": 0.401598977674203, "seconds": 13.35218596784398, "peak_allocated_gb": 2.381912576} +spatial_cnv2 {"epoch": 72, "loss": 0.37448296695947647, "val_miou": 0.39151558725753144, "best_val_miou": 0.401598977674203, "seconds": 13.153144055046141, "peak_allocated_gb": 2.381912576} +spatial_cnv2 {"epoch": 73, "loss": 0.3643556492109048, "val_miou": 0.4018405568783073, "best_val_miou": 0.4018405568783073, "seconds": 13.361761102918535, "peak_allocated_gb": 2.381912576} +spatial_cnv2 {"epoch": 74, "loss": 0.3626431277708003, "val_miou": 0.39555572850366316, "best_val_miou": 0.4018405568783073, "seconds": 13.431986341252923, "peak_allocated_gb": 2.381912576} +spatial_cnv2 {"epoch": 75, "loss": 0.3689625478888813, "val_miou": 0.3926507334267071, "best_val_miou": 0.4018405568783073, "seconds": 13.118622492067516, "peak_allocated_gb": 2.381912576} +spatial_cnv2 {"epoch": 76, "loss": 0.3788345005167158, "val_miou": 0.387146874298516, "best_val_miou": 0.4018405568783073, "seconds": 13.221850744914263, "peak_allocated_gb": 2.381912576} +spatial_cnv2 {"epoch": 77, "loss": 0.3773475085434161, "val_miou": 0.3945862497235486, "best_val_miou": 0.4018405568783073, "seconds": 13.23612942872569, "peak_allocated_gb": 2.381912576} +spatial_cnv2 {"epoch": 78, "loss": 0.373810276389122, "val_miou": 0.40405148156161474, "best_val_miou": 0.40405148156161474, "seconds": 13.226258621085435, "peak_allocated_gb": 2.381912576} +spatial_cnv2 {"epoch": 79, "loss": 0.3689280438580011, "val_miou": 0.39225501763587667, "best_val_miou": 0.40405148156161474, "seconds": 13.310906857252121, "peak_allocated_gb": 2.381912576} +spatial_cnv2 {"epoch": 80, "loss": 0.3806203325328074, "val_miou": 0.3895855736042702, "best_val_miou": 0.40405148156161474, "seconds": 13.217858246061951, "peak_allocated_gb": 2.381912576} +spatial_cnv2 {"epoch": 81, "loss": 0.3658034440718199, "val_miou": 0.39315502254369894, "best_val_miou": 0.40405148156161474, "seconds": 13.384943992365152, "peak_allocated_gb": 2.381912576} +spatial_cnv2 {"epoch": 82, "loss": 0.36481694288943944, "val_miou": 0.39110811445245264, "best_val_miou": 0.40405148156161474, "seconds": 13.158186118118465, "peak_allocated_gb": 2.381912576} +spatial_cnv2 {"epoch": 83, "loss": 0.35759560920690237, "val_miou": 0.3926662428453302, "best_val_miou": 0.40405148156161474, "seconds": 13.118691465817392, "peak_allocated_gb": 2.381912576} +spatial_cnv2 {"epoch": 84, "loss": 0.3615216820647842, "val_miou": 0.3963720222594762, "best_val_miou": 0.40405148156161474, "seconds": 13.174297159072012, "peak_allocated_gb": 2.381912576} +spatial_cnv2 {"epoch": 85, "loss": 0.37185225047563253, "val_miou": 0.39747229032520515, "best_val_miou": 0.40405148156161474, "seconds": 13.109671982936561, "peak_allocated_gb": 2.381912576} +spatial_cnv2 {"epoch": 86, "loss": 0.36199199486719935, "val_miou": 0.39869317149811107, "best_val_miou": 0.40405148156161474, "seconds": 13.304884774144739, "peak_allocated_gb": 2.381912576} +spatial_cnv2 {"epoch": 87, "loss": 0.36245562410668325, "val_miou": 0.39753594154122784, "best_val_miou": 0.40405148156161474, "seconds": 13.187793413177133, "peak_allocated_gb": 2.381912576} +spatial_cnv2 {"epoch": 88, "loss": 0.3615904422967057, "val_miou": 0.39777905157365956, "best_val_miou": 0.40405148156161474, "seconds": 12.813607683870941, "peak_allocated_gb": 2.381912576} +spatial_cnv2 {"epoch": 89, "loss": 0.3652919621059769, "val_miou": 0.39740954048240495, "best_val_miou": 0.40405148156161474, "seconds": 13.071340895723552, "peak_allocated_gb": 2.381912576} +spatial_cnv2 {"epoch": 90, "loss": 0.35903220035527883, "val_miou": 0.3934188195369197, "best_val_miou": 0.40405148156161474, "seconds": 13.071828586049378, "peak_allocated_gb": 2.381912576} +spatial_cnv2 {"epoch": 91, "loss": 0.3580243822775389, "val_miou": 0.394877916418292, "best_val_miou": 0.40405148156161474, "seconds": 13.24125838605687, "peak_allocated_gb": 2.381912576} +spatial_cnv2 {"epoch": 92, "loss": 0.36029294760603653, "val_miou": 0.392547963031515, "best_val_miou": 0.40405148156161474, "seconds": 13.04686462180689, "peak_allocated_gb": 2.381912576} +spatial_cnv2 {"epoch": 93, "loss": 0.3613997411571051, "val_miou": 0.3935961817203945, "best_val_miou": 0.40405148156161474, "seconds": 12.894965532235801, "peak_allocated_gb": 2.381912576} +spatial_cnv2 {"epoch": 94, "loss": 0.35975116295249837, "val_miou": 0.39341179356133305, "best_val_miou": 0.40405148156161474, "seconds": 13.305598149076104, "peak_allocated_gb": 2.381912576} +spatial_cnv2 {"epoch": 95, "loss": 0.36485326839120763, "val_miou": 0.391894611760293, "best_val_miou": 0.40405148156161474, "seconds": 13.270223522093147, "peak_allocated_gb": 2.381912576} +spatial_cnv2 {"epoch": 96, "loss": 0.3611812693508048, "val_miou": 0.39232594090516043, "best_val_miou": 0.40405148156161474, "seconds": 13.229031191207469, "peak_allocated_gb": 2.381912576} +spatial_cnv2 {"epoch": 97, "loss": 0.3546282076521924, "val_miou": 0.39370508149176303, "best_val_miou": 0.40405148156161474, "seconds": 13.253526203799993, "peak_allocated_gb": 2.381912576} +spatial_cnv2 {"epoch": 98, "loss": 0.3535398264464579, "val_miou": 0.39429940544955133, "best_val_miou": 0.40405148156161474, "seconds": 13.334332849364728, "peak_allocated_gb": 2.381912576} +spatial_cnv2 {"epoch": 99, "loss": 0.3515101028116126, "val_miou": 0.3934293118669705, "best_val_miou": 0.40405148156161474, "seconds": 13.466972949914634, "peak_allocated_gb": 2.381912576} +spatial_cnv2 {"epoch": 100, "loss": 0.3541396562206118, "val_miou": 0.39257118531535523, "best_val_miou": 0.40405148156161474, "seconds": 13.238692338112742, "peak_allocated_gb": 2.381912576} diff --git a/ablations/10_plateau_breakthrough/workspace/convnext_research_20261010/spatial_inception_select.log b/ablations/10_plateau_breakthrough/workspace/convnext_research_20261010/spatial_inception_select.log new file mode 100644 index 0000000000000000000000000000000000000000..b359c29267a606d036f95aad6e611415c53a8964 --- /dev/null +++ b/ablations/10_plateau_breakthrough/workspace/convnext_research_20261010/spatial_inception_select.log @@ -0,0 +1,3 @@ +/usr/lib/python3/dist-packages/scipy/__init__.py:146: UserWarning: A NumPy version >=1.17.3 and <1.25.0 is required for this version of SciPy (detected version 1.26.4 + warnings.warn(f"A NumPy version >={np_minversion} and <{np_maxversion}" +SELECT spatial_inception 0.0 add 0.0 diff --git a/ablations/10_plateau_breakthrough/workspace/convnext_research_20261010/spatial_inception_train.log b/ablations/10_plateau_breakthrough/workspace/convnext_research_20261010/spatial_inception_train.log new file mode 100644 index 0000000000000000000000000000000000000000..355ac65b1186e35d1c446568df20b18aed7b3a91 --- /dev/null +++ b/ablations/10_plateau_breakthrough/workspace/convnext_research_20261010/spatial_inception_train.log @@ -0,0 +1,102 @@ +/usr/lib/python3/dist-packages/scipy/__init__.py:146: UserWarning: A NumPy version >=1.17.3 and <1.25.0 is required for this version of SciPy (detected version 1.26.4 + warnings.warn(f"A NumPy version >={np_minversion} and <{np_maxversion}" +spatial_inception {"epoch": 1, "loss": 2.8330566914458024, "val_miou": 0.023139816987386878, "best_val_miou": 0.023139816987386878, "seconds": 14.768623067997396, "peak_allocated_gb": 2.381818368} +spatial_inception {"epoch": 2, "loss": 2.463932861623011, "val_miou": 0.042030463692043024, "best_val_miou": 0.042030463692043024, "seconds": 13.58641853602603, "peak_allocated_gb": 2.381818368} +spatial_inception {"epoch": 3, "loss": 2.365156774458132, "val_miou": 0.0957053533644944, "best_val_miou": 0.0957053533644944, "seconds": 13.348703572060913, "peak_allocated_gb": 2.381818368} +spatial_inception {"epoch": 4, "loss": 2.1216804863590943, "val_miou": 0.0560732433250852, "best_val_miou": 0.0957053533644944, "seconds": 13.198303455021232, "peak_allocated_gb": 2.381818368} +spatial_inception {"epoch": 5, "loss": 2.0568000235055623, "val_miou": 0.20204380590311724, "best_val_miou": 0.20204380590311724, "seconds": 13.431332189124078, "peak_allocated_gb": 2.381818368} +spatial_inception {"epoch": 6, "loss": 1.7821843498631527, "val_miou": 0.13921248019769117, "best_val_miou": 0.20204380590311724, "seconds": 13.393094563856721, "peak_allocated_gb": 2.381818368} +spatial_inception {"epoch": 7, "loss": 1.814365727728919, "val_miou": 0.180264774839055, "best_val_miou": 0.20204380590311724, "seconds": 13.442887128330767, "peak_allocated_gb": 2.381818368} +spatial_inception {"epoch": 8, "loss": 1.733500262624339, "val_miou": 0.2402764406594024, "best_val_miou": 0.2402764406594024, "seconds": 13.326751398853958, "peak_allocated_gb": 2.381818368} +spatial_inception {"epoch": 9, "loss": 1.4886363011441732, "val_miou": 0.19855156224211223, "best_val_miou": 0.2402764406594024, "seconds": 13.313427605200559, "peak_allocated_gb": 2.381818368} +spatial_inception {"epoch": 10, "loss": 1.4446560916932005, "val_miou": 0.23444136955514974, "best_val_miou": 0.2402764406594024, "seconds": 13.281859064940363, "peak_allocated_gb": 2.381818368} +spatial_inception {"epoch": 11, "loss": 1.3418057913842953, "val_miou": 0.24176806547025814, "best_val_miou": 0.24176806547025814, "seconds": 13.48249003989622, "peak_allocated_gb": 2.381818368} +spatial_inception {"epoch": 12, "loss": 1.3930215231682126, "val_miou": 0.2628719812126782, "best_val_miou": 0.2628719812126782, "seconds": 13.277846224140376, "peak_allocated_gb": 2.381818368} +spatial_inception {"epoch": 13, "loss": 1.1791406818910648, "val_miou": 0.2633297036619369, "best_val_miou": 0.2633297036619369, "seconds": 13.542384313885123, "peak_allocated_gb": 2.381818368} +spatial_inception {"epoch": 14, "loss": 1.0664508593709845, "val_miou": 0.2630605336222613, "best_val_miou": 0.2633297036619369, "seconds": 13.648100387770683, "peak_allocated_gb": 2.381818368} +spatial_inception {"epoch": 15, "loss": 1.0310281511200101, "val_miou": 0.28521140682290397, "best_val_miou": 0.28521140682290397, "seconds": 13.364079964812845, "peak_allocated_gb": 2.381818368} +spatial_inception {"epoch": 16, "loss": 0.9940423200789251, "val_miou": 0.2995554230873491, "best_val_miou": 0.2995554230873491, "seconds": 13.44229439087212, "peak_allocated_gb": 2.381818368} +spatial_inception {"epoch": 17, "loss": 1.0135889782717353, "val_miou": 0.30796443126008216, "best_val_miou": 0.30796443126008216, "seconds": 13.377721965778619, "peak_allocated_gb": 2.381818368} +spatial_inception {"epoch": 18, "loss": 0.9517905374890879, "val_miou": 0.22933958413494748, "best_val_miou": 0.30796443126008216, "seconds": 13.389982347842306, "peak_allocated_gb": 2.381818368} +spatial_inception {"epoch": 19, "loss": 0.9723252759952294, "val_miou": 0.2917804553490792, "best_val_miou": 0.30796443126008216, "seconds": 13.47212637308985, "peak_allocated_gb": 2.381818368} +spatial_inception {"epoch": 20, "loss": 0.8096989840269089, "val_miou": 0.2996865708742715, "best_val_miou": 0.30796443126008216, "seconds": 13.625113976188004, "peak_allocated_gb": 2.381818368} +spatial_inception {"epoch": 21, "loss": 0.8502872468609559, "val_miou": 0.3097032531235847, "best_val_miou": 0.3097032531235847, "seconds": 13.311764115002006, "peak_allocated_gb": 2.381818368} +spatial_inception {"epoch": 22, "loss": 0.7719516209081599, "val_miou": 0.32797321781285566, "best_val_miou": 0.32797321781285566, "seconds": 13.225290583912283, "peak_allocated_gb": 2.381818368} +spatial_inception {"epoch": 23, "loss": 0.7577552313083097, "val_miou": 0.2962813472717152, "best_val_miou": 0.32797321781285566, "seconds": 13.385150168091059, "peak_allocated_gb": 2.381818368} +spatial_inception {"epoch": 24, "loss": 0.687835610226581, "val_miou": 0.3259079649398346, "best_val_miou": 0.32797321781285566, "seconds": 14.093430075794458, "peak_allocated_gb": 2.381818368} +spatial_inception {"epoch": 25, "loss": 0.6860225843755823, "val_miou": 0.31666899101800067, "best_val_miou": 0.32797321781285566, "seconds": 13.84880879893899, "peak_allocated_gb": 2.381818368} +spatial_inception {"epoch": 26, "loss": 0.7008218533898655, "val_miou": 0.34742880069181875, "best_val_miou": 0.34742880069181875, "seconds": 13.460406559053808, "peak_allocated_gb": 2.381818368} +spatial_inception {"epoch": 27, "loss": 0.6060620734566137, "val_miou": 0.3157997012864031, "best_val_miou": 0.34742880069181875, "seconds": 13.333985515870154, "peak_allocated_gb": 2.381818368} +spatial_inception {"epoch": 28, "loss": 0.6485728684224581, "val_miou": 0.32015118264314263, "best_val_miou": 0.34742880069181875, "seconds": 13.766623593866825, "peak_allocated_gb": 2.381818368} +spatial_inception {"epoch": 29, "loss": 0.6392757794574687, "val_miou": 0.3480519675166296, "best_val_miou": 0.3480519675166296, "seconds": 13.749884777702391, "peak_allocated_gb": 2.381818368} +spatial_inception {"epoch": 30, "loss": 0.5976045951247215, "val_miou": 0.28647280822241006, "best_val_miou": 0.3480519675166296, "seconds": 13.502771662082523, "peak_allocated_gb": 2.381818368} +spatial_inception {"epoch": 31, "loss": 0.545041440741012, "val_miou": 0.3235397731718629, "best_val_miou": 0.3480519675166296, "seconds": 13.672557498794049, "peak_allocated_gb": 2.381818368} +spatial_inception {"epoch": 32, "loss": 0.5603781722878155, "val_miou": 0.32061245048177806, "best_val_miou": 0.3480519675166296, "seconds": 13.678813831880689, "peak_allocated_gb": 2.381818368} +spatial_inception {"epoch": 33, "loss": 0.5700705878828701, "val_miou": 0.33571623279697405, "best_val_miou": 0.3480519675166296, "seconds": 13.400446268729866, "peak_allocated_gb": 2.381818368} +spatial_inception {"epoch": 34, "loss": 0.5208459202396242, "val_miou": 0.3308350430105637, "best_val_miou": 0.3480519675166296, "seconds": 13.586684057954699, "peak_allocated_gb": 2.381818368} +spatial_inception {"epoch": 35, "loss": 0.534541401423906, "val_miou": 0.31630309074293583, "best_val_miou": 0.3480519675166296, "seconds": 13.506128386128694, "peak_allocated_gb": 2.381818368} +spatial_inception {"epoch": 36, "loss": 0.5122910855632079, "val_miou": 0.31532688706998796, "best_val_miou": 0.3480519675166296, "seconds": 13.715475510805845, "peak_allocated_gb": 2.381818368} +spatial_inception {"epoch": 37, "loss": 0.5225553159651003, "val_miou": 0.3531863458311277, "best_val_miou": 0.3531863458311277, "seconds": 13.73572229128331, "peak_allocated_gb": 2.381818368} +spatial_inception {"epoch": 38, "loss": 0.48368259636979355, "val_miou": 0.36789702686400266, "best_val_miou": 0.36789702686400266, "seconds": 13.549165264237672, "peak_allocated_gb": 2.381818368} +spatial_inception {"epoch": 39, "loss": 0.5108284530671019, "val_miou": 0.3270353015406656, "best_val_miou": 0.36789702686400266, "seconds": 13.320822869893163, "peak_allocated_gb": 2.381818368} +spatial_inception {"epoch": 40, "loss": 0.4888543310134034, "val_miou": 0.33292321520198276, "best_val_miou": 0.36789702686400266, "seconds": 13.298939964268357, "peak_allocated_gb": 2.381818368} +spatial_inception {"epoch": 41, "loss": 0.4672597482016212, "val_miou": 0.34598772652790877, "best_val_miou": 0.36789702686400266, "seconds": 13.591931988950819, "peak_allocated_gb": 2.381818368} +spatial_inception {"epoch": 42, "loss": 0.4631928154512456, "val_miou": 0.35513894087602815, "best_val_miou": 0.36789702686400266, "seconds": 13.52391262492165, "peak_allocated_gb": 2.381818368} +spatial_inception {"epoch": 43, "loss": 0.4826037060273321, "val_miou": 0.33591202845032453, "best_val_miou": 0.36789702686400266, "seconds": 13.463671127334237, "peak_allocated_gb": 2.381818368} +spatial_inception {"epoch": 44, "loss": 0.47274823094669144, "val_miou": 0.34990012230648054, "best_val_miou": 0.36789702686400266, "seconds": 13.433216742705554, "peak_allocated_gb": 2.381818368} +spatial_inception {"epoch": 45, "loss": 0.44558476931170415, "val_miou": 0.3627710018942387, "best_val_miou": 0.36789702686400266, "seconds": 13.760891954880208, "peak_allocated_gb": 2.381818368} +spatial_inception {"epoch": 46, "loss": 0.47005081608107213, "val_miou": 0.3485286497748131, "best_val_miou": 0.36789702686400266, "seconds": 13.494688510894775, "peak_allocated_gb": 2.381818368} +spatial_inception {"epoch": 47, "loss": 0.4359266126626416, "val_miou": 0.3600178634662197, "best_val_miou": 0.36789702686400266, "seconds": 13.348415174055845, "peak_allocated_gb": 2.381818368} +spatial_inception {"epoch": 48, "loss": 0.43616047501564026, "val_miou": 0.3574215111737424, "best_val_miou": 0.36789702686400266, "seconds": 13.079919356387109, "peak_allocated_gb": 2.381818368} +spatial_inception {"epoch": 49, "loss": 0.42739586336048024, "val_miou": 0.3754330786783776, "best_val_miou": 0.3754330786783776, "seconds": 13.64967635506764, "peak_allocated_gb": 2.381818368} +spatial_inception {"epoch": 50, "loss": 0.40457010778941604, "val_miou": 0.37030440686972643, "best_val_miou": 0.3754330786783776, "seconds": 13.379233233164996, "peak_allocated_gb": 2.381818368} +spatial_inception {"epoch": 51, "loss": 0.42350184682168457, "val_miou": 0.3612862102845869, "best_val_miou": 0.3754330786783776, "seconds": 13.669305908959359, "peak_allocated_gb": 2.381818368} +spatial_inception {"epoch": 52, "loss": 0.4343728642714651, "val_miou": 0.3444587486787745, "best_val_miou": 0.3754330786783776, "seconds": 13.656485313083977, "peak_allocated_gb": 2.381818368} +spatial_inception {"epoch": 53, "loss": 0.40958339328828614, "val_miou": 0.350214994458999, "best_val_miou": 0.3754330786783776, "seconds": 13.902454115916044, "peak_allocated_gb": 2.381818368} +spatial_inception {"epoch": 54, "loss": 0.4359685049245232, "val_miou": 0.3828196997066677, "best_val_miou": 0.3828196997066677, "seconds": 13.3526861788705, "peak_allocated_gb": 2.381818368} +spatial_inception {"epoch": 55, "loss": 0.4331995884054585, "val_miou": 0.36630975859545073, "best_val_miou": 0.3828196997066677, "seconds": 13.243540373630822, "peak_allocated_gb": 2.381818368} +spatial_inception {"epoch": 56, "loss": 0.4021260836406758, "val_miou": 0.378858926345524, "best_val_miou": 0.3828196997066677, "seconds": 13.703028172254562, "peak_allocated_gb": 2.381818368} +spatial_inception {"epoch": 57, "loss": 0.41512580608066757, "val_miou": 0.36172147581861513, "best_val_miou": 0.3828196997066677, "seconds": 13.346399864181876, "peak_allocated_gb": 2.381818368} +spatial_inception {"epoch": 58, "loss": 0.41143212153723363, "val_miou": 0.38304785683493375, "best_val_miou": 0.38304785683493375, "seconds": 13.407977868802845, "peak_allocated_gb": 2.381818368} +spatial_inception {"epoch": 59, "loss": 0.39689828377020986, "val_miou": 0.39375178805308947, "best_val_miou": 0.39375178805308947, "seconds": 13.61314755026251, "peak_allocated_gb": 2.381818368} +spatial_inception {"epoch": 60, "loss": 0.40588684066345815, "val_miou": 0.37417803232113855, "best_val_miou": 0.39375178805308947, "seconds": 13.407769655343145, "peak_allocated_gb": 2.381818368} +spatial_inception {"epoch": 61, "loss": 0.40866602329831375, "val_miou": 0.3855469434572856, "best_val_miou": 0.39375178805308947, "seconds": 13.43910756194964, "peak_allocated_gb": 2.381818368} +spatial_inception {"epoch": 62, "loss": 0.37913073677765696, "val_miou": 0.38475444148338056, "best_val_miou": 0.39375178805308947, "seconds": 13.33717021998018, "peak_allocated_gb": 2.381818368} +spatial_inception {"epoch": 63, "loss": 0.38215221386206777, "val_miou": 0.3557799108890382, "best_val_miou": 0.39375178805308947, "seconds": 13.548967677168548, "peak_allocated_gb": 2.381818368} +spatial_inception {"epoch": 64, "loss": 0.38501026716671494, "val_miou": 0.3879770183522258, "best_val_miou": 0.39375178805308947, "seconds": 13.844251672271639, "peak_allocated_gb": 2.381818368} +spatial_inception {"epoch": 65, "loss": 0.38649693837291316, "val_miou": 0.389528075730597, "best_val_miou": 0.39375178805308947, "seconds": 13.605001607909799, "peak_allocated_gb": 2.381818368} +spatial_inception {"epoch": 66, "loss": 0.39166945964097977, "val_miou": 0.3755311103020993, "best_val_miou": 0.39375178805308947, "seconds": 13.53582414612174, "peak_allocated_gb": 2.381818368} +spatial_inception {"epoch": 67, "loss": 0.37787255762439026, "val_miou": 0.36864346120982433, "best_val_miou": 0.39375178805308947, "seconds": 13.374543151818216, "peak_allocated_gb": 2.381818368} +spatial_inception {"epoch": 68, "loss": 0.38549497096162094, "val_miou": 0.3802164242338904, "best_val_miou": 0.39375178805308947, "seconds": 13.517406599130481, "peak_allocated_gb": 2.381818368} +spatial_inception {"epoch": 69, "loss": 0.3832786294974779, "val_miou": 0.384111040057147, "best_val_miou": 0.39375178805308947, "seconds": 13.497135125100613, "peak_allocated_gb": 2.381818368} +spatial_inception {"epoch": 70, "loss": 0.3753219537044826, "val_miou": 0.38545054342193225, "best_val_miou": 0.39375178805308947, "seconds": 13.178567596711218, "peak_allocated_gb": 2.381818368} +spatial_inception {"epoch": 71, "loss": 0.36178453854824366, "val_miou": 0.3960004097947171, "best_val_miou": 0.3960004097947171, "seconds": 13.53520956588909, "peak_allocated_gb": 2.381818368} +spatial_inception {"epoch": 72, "loss": 0.3752211555838585, "val_miou": 0.38964631177922787, "best_val_miou": 0.3960004097947171, "seconds": 13.300721843261272, "peak_allocated_gb": 2.381818368} +spatial_inception {"epoch": 73, "loss": 0.36141952558567647, "val_miou": 0.38370626423086085, "best_val_miou": 0.3960004097947171, "seconds": 13.565160363912582, "peak_allocated_gb": 2.381818368} +spatial_inception {"epoch": 74, "loss": 0.36807718284820257, "val_miou": 0.3941791099688233, "best_val_miou": 0.3960004097947171, "seconds": 13.722592172212899, "peak_allocated_gb": 2.381818368} +spatial_inception {"epoch": 75, "loss": 0.37128464093333796, "val_miou": 0.3952705295521956, "best_val_miou": 0.3960004097947171, "seconds": 13.591726645827293, "peak_allocated_gb": 2.381818368} +spatial_inception {"epoch": 76, "loss": 0.38050166791991186, "val_miou": 0.3879743810779512, "best_val_miou": 0.3960004097947171, "seconds": 13.513577997218817, "peak_allocated_gb": 2.381818368} +spatial_inception {"epoch": 77, "loss": 0.3898928659526925, "val_miou": 0.3821371923130737, "best_val_miou": 0.3960004097947171, "seconds": 13.53063247911632, "peak_allocated_gb": 2.381818368} +spatial_inception {"epoch": 78, "loss": 0.3660214296297023, "val_miou": 0.38365334356645486, "best_val_miou": 0.3960004097947171, "seconds": 13.517418486997485, "peak_allocated_gb": 2.381818368} +spatial_inception {"epoch": 79, "loss": 0.3617668947891185, "val_miou": 0.3805002185157122, "best_val_miou": 0.3960004097947171, "seconds": 13.659855543170124, "peak_allocated_gb": 2.381818368} +spatial_inception {"epoch": 80, "loss": 0.37067047036007833, "val_miou": 0.3774364167998558, "best_val_miou": 0.3960004097947171, "seconds": 13.551577385980636, "peak_allocated_gb": 2.381818368} +spatial_inception {"epoch": 81, "loss": 0.3651902393290871, "val_miou": 0.37777106728689247, "best_val_miou": 0.3960004097947171, "seconds": 13.928659031167626, "peak_allocated_gb": 2.381818368} +spatial_inception {"epoch": 82, "loss": 0.3634596380748247, "val_miou": 0.38258229801485283, "best_val_miou": 0.3960004097947171, "seconds": 13.461789877153933, "peak_allocated_gb": 2.381818368} +spatial_inception {"epoch": 83, "loss": 0.3564960964416203, "val_miou": 0.38501955692163103, "best_val_miou": 0.3960004097947171, "seconds": 13.57894515292719, "peak_allocated_gb": 2.381818368} +spatial_inception {"epoch": 84, "loss": 0.35817277235420125, "val_miou": 0.38399288827552636, "best_val_miou": 0.3960004097947171, "seconds": 13.554109424818307, "peak_allocated_gb": 2.381818368} +spatial_inception {"epoch": 85, "loss": 0.37254667909521805, "val_miou": 0.38685399772617496, "best_val_miou": 0.3960004097947171, "seconds": 13.374848126899451, "peak_allocated_gb": 2.381818368} +spatial_inception {"epoch": 86, "loss": 0.36184070533827734, "val_miou": 0.3858975498023882, "best_val_miou": 0.3960004097947171, "seconds": 13.689023190177977, "peak_allocated_gb": 2.381818368} +spatial_inception {"epoch": 87, "loss": 0.36440430659996836, "val_miou": 0.387179519740296, "best_val_miou": 0.3960004097947171, "seconds": 13.645990344695747, "peak_allocated_gb": 2.381818368} +spatial_inception {"epoch": 88, "loss": 0.3603053692924349, "val_miou": 0.3903571262690464, "best_val_miou": 0.3960004097947171, "seconds": 13.25926443003118, "peak_allocated_gb": 2.381818368} +spatial_inception {"epoch": 89, "loss": 0.36295131044952494, "val_miou": 0.38529668431189795, "best_val_miou": 0.3960004097947171, "seconds": 13.402882331050932, "peak_allocated_gb": 2.381818368} +spatial_inception {"epoch": 90, "loss": 0.35790749364777613, "val_miou": 0.38969657558927556, "best_val_miou": 0.3960004097947171, "seconds": 13.313643016852438, "peak_allocated_gb": 2.381818368} +spatial_inception {"epoch": 91, "loss": 0.3557112009117478, "val_miou": 0.3878270764179848, "best_val_miou": 0.3960004097947171, "seconds": 13.471804071217775, "peak_allocated_gb": 2.381818368} +spatial_inception {"epoch": 92, "loss": 0.3597826663600771, "val_miou": 0.3874908994173613, "best_val_miou": 0.3960004097947171, "seconds": 13.387885707430542, "peak_allocated_gb": 2.381818368} +spatial_inception {"epoch": 93, "loss": 0.3610268007767828, "val_miou": 0.3872279860150212, "best_val_miou": 0.3960004097947171, "seconds": 13.1527867061086, "peak_allocated_gb": 2.381818368} +spatial_inception {"epoch": 94, "loss": 0.35987393440384613, "val_miou": 0.38861265937831974, "best_val_miou": 0.3960004097947171, "seconds": 13.581274351105094, "peak_allocated_gb": 2.381818368} +spatial_inception {"epoch": 95, "loss": 0.3627030410264668, "val_miou": 0.38962602377888206, "best_val_miou": 0.3960004097947171, "seconds": 13.516538931056857, "peak_allocated_gb": 2.381818368} +spatial_inception {"epoch": 96, "loss": 0.3596261382887238, "val_miou": 0.38944355092450095, "best_val_miou": 0.3960004097947171, "seconds": 13.442916513886303, "peak_allocated_gb": 2.381818368} +spatial_inception {"epoch": 97, "loss": 0.3534496642257038, "val_miou": 0.3899638266332235, "best_val_miou": 0.3960004097947171, "seconds": 13.76512095099315, "peak_allocated_gb": 2.381818368} +spatial_inception {"epoch": 98, "loss": 0.3537874433555101, "val_miou": 0.39046022679541337, "best_val_miou": 0.3960004097947171, "seconds": 13.82212084485218, "peak_allocated_gb": 2.381818368} +spatial_inception {"epoch": 99, "loss": 0.35120505172955363, "val_miou": 0.3877999308432405, "best_val_miou": 0.3960004097947171, "seconds": 13.821114999242127, "peak_allocated_gb": 2.381818368} +spatial_inception {"epoch": 100, "loss": 0.3523775519509065, "val_miou": 0.38901262297237105, "best_val_miou": 0.3960004097947171, "seconds": 13.801195424050093, "peak_allocated_gb": 2.381818368} diff --git a/ablations/10_plateau_breakthrough/workspace/convnext_research_20261010/status.json b/ablations/10_plateau_breakthrough/workspace/convnext_research_20261010/status.json new file mode 100644 index 0000000000000000000000000000000000000000..e162d55644aeaae4cbf39f500c006d002190661a --- /dev/null +++ b/ablations/10_plateau_breakthrough/workspace/convnext_research_20261010/status.json @@ -0,0 +1,255 @@ +{ + "reference_validation": { + "status": "completed", + "started": "2026-10-10T07:23:21.116350+00:00", + "command": [ + "/usr/bin/python3", + "-u", + "/home/ubuntu/tsr/convnext_research.py", + "cache" + ], + "returncode": 0, + "ended": "2026-10-10T07:23:38.179111+00:00", + "seconds": 17.06251286016777 + }, + "cnn_control_train": { + "status": "completed", + "started": "2026-10-10T07:23:38.232271+00:00", + "command": [ + "/usr/bin/python3", + "-u", + "/home/ubuntu/tsr/convnext_research.py", + "train", + "--kind", + "cnn_control" + ], + "returncode": 0, + "ended": "2026-10-10T07:30:53.456081+00:00", + "seconds": 435.2235012841411 + }, + "cnn_control_select": { + "status": "completed", + "started": "2026-10-10T07:30:53.490443+00:00", + "command": [ + "/usr/bin/python3", + "-u", + "/home/ubuntu/tsr/convnext_research.py", + "select", + "--kind", + "cnn_control" + ], + "returncode": 0, + "ended": "2026-10-10T07:31:08.503418+00:00", + "seconds": 15.012741900980473 + }, + "temporal_cnv1_k3_train": { + "status": "completed", + "started": "2026-10-10T07:31:08.562021+00:00", + "command": [ + "/usr/bin/python3", + "-u", + "/home/ubuntu/tsr/convnext_research.py", + "train", + "--kind", + "temporal_cnv1_k3" + ], + "returncode": 0, + "ended": "2026-10-10T07:40:43.794720+00:00", + "seconds": 575.232279648073 + }, + "temporal_cnv1_k3_select": { + "status": "completed", + "started": "2026-10-10T07:40:43.846098+00:00", + "command": [ + "/usr/bin/python3", + "-u", + "/home/ubuntu/tsr/convnext_research.py", + "select", + "--kind", + "temporal_cnv1_k3" + ], + "returncode": 0, + "ended": "2026-10-10T07:41:00.115795+00:00", + "seconds": 16.26937573030591 + }, + "temporal_cnv1_k7_train": { + "status": "completed", + "started": "2026-10-10T07:41:00.171596+00:00", + "command": [ + "/usr/bin/python3", + "-u", + "/home/ubuntu/tsr/convnext_research.py", + "train", + "--kind", + "temporal_cnv1_k7" + ], + "returncode": 0, + "ended": "2026-10-10T07:50:47.238078+00:00", + "seconds": 587.0660405750386 + }, + "temporal_cnv1_k7_select": { + "status": "completed", + "started": "2026-10-10T07:50:47.295126+00:00", + "command": [ + "/usr/bin/python3", + "-u", + "/home/ubuntu/tsr/convnext_research.py", + "select", + "--kind", + "temporal_cnv1_k7" + ], + "returncode": 0, + "ended": "2026-10-10T07:51:02.075449+00:00", + "seconds": 14.779849317856133 + }, + "temporal_cnv2_k7_train": { + "status": "completed", + "started": "2026-10-10T07:51:02.130262+00:00", + "command": [ + "/usr/bin/python3", + "-u", + "/home/ubuntu/tsr/convnext_research.py", + "train", + "--kind", + "temporal_cnv2_k7" + ], + "returncode": 0, + "ended": "2026-10-10T08:12:54.374933+00:00", + "seconds": 1312.244280742947 + }, + "temporal_cnv2_k7_select": { + "status": "completed", + "started": "2026-10-10T08:12:54.429849+00:00", + "command": [ + "/usr/bin/python3", + "-u", + "/home/ubuntu/tsr/convnext_research.py", + "select", + "--kind", + "temporal_cnv2_k7" + ], + "returncode": 0, + "ended": "2026-10-10T08:13:12.111857+00:00", + "seconds": 17.681549177970737 + }, + "temporal_cnv2_k15_train": { + "status": "completed", + "started": "2026-10-10T08:13:12.164068+00:00", + "command": [ + "/usr/bin/python3", + "-u", + "/home/ubuntu/tsr/convnext_research.py", + "train", + "--kind", + "temporal_cnv2_k15" + ], + "returncode": 0, + "ended": "2026-10-10T08:35:50.131764+00:00", + "seconds": 1357.9673400577158 + }, + "temporal_cnv2_k15_select": { + "status": "completed", + "started": "2026-10-10T08:35:50.191108+00:00", + "command": [ + "/usr/bin/python3", + "-u", + "/home/ubuntu/tsr/convnext_research.py", + "select", + "--kind", + "temporal_cnv2_k15" + ], + "returncode": 0, + "ended": "2026-10-10T08:36:08.090194+00:00", + "seconds": 17.89855015417561 + }, + "spatial_cnv1_train": { + "status": "completed", + "started": "2026-10-10T08:36:08.140334+00:00", + "command": [ + "/usr/bin/python3", + "-u", + "/home/ubuntu/tsr/convnext_research.py", + "train", + "--kind", + "spatial_cnv1" + ], + "returncode": 0, + "ended": "2026-10-10T08:58:21.346897+00:00", + "seconds": 1333.2061504060403 + }, + "spatial_cnv1_select": { + "status": "completed", + "started": "2026-10-10T08:58:21.401599+00:00", + "command": [ + "/usr/bin/python3", + "-u", + "/home/ubuntu/tsr/convnext_research.py", + "select", + "--kind", + "spatial_cnv1" + ], + "returncode": 0, + "ended": "2026-10-10T08:58:38.474075+00:00", + "seconds": 17.072064687032253 + }, + "spatial_cnv2_train": { + "status": "completed", + "started": "2026-10-10T08:58:38.524415+00:00", + "command": [ + "/usr/bin/python3", + "-u", + "/home/ubuntu/tsr/convnext_research.py", + "train", + "--kind", + "spatial_cnv2" + ], + "returncode": 0, + "ended": "2026-10-10T09:20:48.950977+00:00", + "seconds": 1330.4261724222451 + }, + "spatial_cnv2_select": { + "status": "completed", + "started": "2026-10-10T09:20:49.000813+00:00", + "command": [ + "/usr/bin/python3", + "-u", + "/home/ubuntu/tsr/convnext_research.py", + "select", + "--kind", + "spatial_cnv2" + ], + "returncode": 0, + "ended": "2026-10-10T09:21:06.186939+00:00", + "seconds": 17.18570496281609 + }, + "spatial_inception_train": { + "status": "completed", + "started": "2026-10-10T09:21:06.238320+00:00", + "command": [ + "/usr/bin/python3", + "-u", + "/home/ubuntu/tsr/convnext_research.py", + "train", + "--kind", + "spatial_inception" + ], + "returncode": 0, + "ended": "2026-10-10T09:43:44.179723+00:00", + "seconds": 1357.9409661409445 + }, + "spatial_inception_select": { + "status": "completed", + "started": "2026-10-10T09:43:44.237736+00:00", + "command": [ + "/usr/bin/python3", + "-u", + "/home/ubuntu/tsr/convnext_research.py", + "select", + "--kind", + "spatial_inception" + ], + "returncode": 0, + "ended": "2026-10-10T09:44:02.382961+00:00", + "seconds": 18.144666293635964 + } +} \ No newline at end of file diff --git a/ablations/10_plateau_breakthrough/workspace/convnext_research_20261010/temporal_cnv1_k3_select.log b/ablations/10_plateau_breakthrough/workspace/convnext_research_20261010/temporal_cnv1_k3_select.log new file mode 100644 index 0000000000000000000000000000000000000000..a777515066a5deb5f00359c700570d8cc2c08285 --- /dev/null +++ b/ablations/10_plateau_breakthrough/workspace/convnext_research_20261010/temporal_cnv1_k3_select.log @@ -0,0 +1,3 @@ +/usr/lib/python3/dist-packages/scipy/__init__.py:146: UserWarning: A NumPy version >=1.17.3 and <1.25.0 is required for this version of SciPy (detected version 1.26.4 + warnings.warn(f"A NumPy version >={np_minversion} and <{np_maxversion}" +SELECT temporal_cnv1_k3 0.0 add 0.0 diff --git a/ablations/10_plateau_breakthrough/workspace/convnext_research_20261010/temporal_cnv1_k3_train.log b/ablations/10_plateau_breakthrough/workspace/convnext_research_20261010/temporal_cnv1_k3_train.log new file mode 100644 index 0000000000000000000000000000000000000000..6db5ee58d2e2e41a2324a0236f076f2006015ab9 --- /dev/null +++ b/ablations/10_plateau_breakthrough/workspace/convnext_research_20261010/temporal_cnv1_k3_train.log @@ -0,0 +1,102 @@ +/usr/lib/python3/dist-packages/scipy/__init__.py:146: UserWarning: A NumPy version >=1.17.3 and <1.25.0 is required for this version of SciPy (detected version 1.26.4 + warnings.warn(f"A NumPy version >={np_minversion} and <{np_maxversion}" +temporal_cnv1_k3 {"epoch": 1, "loss": 2.8399622597192464, "val_miou": 0.025078941465012945, "best_val_miou": 0.025078941465012945, "seconds": 7.194165152963251, "peak_allocated_gb": 1.029179392} +temporal_cnv1_k3 {"epoch": 2, "loss": 2.5673882694620835, "val_miou": 0.025152040118444685, "best_val_miou": 0.025152040118444685, "seconds": 5.623103255871683, "peak_allocated_gb": 1.029179392} +temporal_cnv1_k3 {"epoch": 3, "loss": 2.4082247269781014, "val_miou": 0.024810521118750692, "best_val_miou": 0.025152040118444685, "seconds": 5.825198313221335, "peak_allocated_gb": 1.029179392} +temporal_cnv1_k3 {"epoch": 4, "loss": 2.4269462635642602, "val_miou": 0.02517214396306929, "best_val_miou": 0.02517214396306929, "seconds": 5.624370033387095, "peak_allocated_gb": 1.029179392} +temporal_cnv1_k3 {"epoch": 5, "loss": 2.373257817406403, "val_miou": 0.051258621990093865, "best_val_miou": 0.051258621990093865, "seconds": 5.922829831019044, "peak_allocated_gb": 1.029179392} +temporal_cnv1_k3 {"epoch": 6, "loss": 2.2190520630071036, "val_miou": 0.07338858958555644, "best_val_miou": 0.07338858958555644, "seconds": 5.717079215683043, "peak_allocated_gb": 1.029179392} +temporal_cnv1_k3 {"epoch": 7, "loss": 2.1636531854930676, "val_miou": 0.08614348435686327, "best_val_miou": 0.08614348435686327, "seconds": 5.655170704703778, "peak_allocated_gb": 1.029179392} +temporal_cnv1_k3 {"epoch": 8, "loss": 2.1078021275369743, "val_miou": 0.09810467772132152, "best_val_miou": 0.09810467772132152, "seconds": 5.605851198080927, "peak_allocated_gb": 1.029179392} +temporal_cnv1_k3 {"epoch": 9, "loss": 2.0997166555178794, "val_miou": 0.09117096346500438, "best_val_miou": 0.09810467772132152, "seconds": 5.803191489074379, "peak_allocated_gb": 1.029179392} +temporal_cnv1_k3 {"epoch": 10, "loss": 2.065529770757023, "val_miou": 0.13712734254764747, "best_val_miou": 0.13712734254764747, "seconds": 5.628998008091003, "peak_allocated_gb": 1.029179392} +temporal_cnv1_k3 {"epoch": 11, "loss": 1.9622992583011325, "val_miou": 0.09985187660292115, "best_val_miou": 0.13712734254764747, "seconds": 6.001627429854125, "peak_allocated_gb": 1.029179392} +temporal_cnv1_k3 {"epoch": 12, "loss": 1.9422276843535273, "val_miou": 0.1333062938414867, "best_val_miou": 0.13712734254764747, "seconds": 5.923183394130319, "peak_allocated_gb": 1.029179392} +temporal_cnv1_k3 {"epoch": 13, "loss": 1.8657804123665158, "val_miou": 0.1337376214478509, "best_val_miou": 0.13712734254764747, "seconds": 6.047591733280569, "peak_allocated_gb": 1.029179392} +temporal_cnv1_k3 {"epoch": 14, "loss": 1.8362704288018377, "val_miou": 0.15532414416283344, "best_val_miou": 0.15532414416283344, "seconds": 5.974049690179527, "peak_allocated_gb": 1.029179392} +temporal_cnv1_k3 {"epoch": 15, "loss": 1.6465814246943122, "val_miou": 0.1440073763420301, "best_val_miou": 0.15532414416283344, "seconds": 5.555129142012447, "peak_allocated_gb": 1.029179392} +temporal_cnv1_k3 {"epoch": 16, "loss": 1.6074577287623757, "val_miou": 0.19043298039871204, "best_val_miou": 0.19043298039871204, "seconds": 5.933942001312971, "peak_allocated_gb": 1.029179392} +temporal_cnv1_k3 {"epoch": 17, "loss": 1.6043704065837359, "val_miou": 0.22690234443700522, "best_val_miou": 0.22690234443700522, "seconds": 5.737267037853599, "peak_allocated_gb": 1.029179392} +temporal_cnv1_k3 {"epoch": 18, "loss": 1.5708843783328408, "val_miou": 0.21435878633859504, "best_val_miou": 0.22690234443700522, "seconds": 5.461513074114919, "peak_allocated_gb": 1.029179392} +temporal_cnv1_k3 {"epoch": 19, "loss": 1.5189136815698523, "val_miou": 0.23257601444078746, "best_val_miou": 0.23257601444078746, "seconds": 5.430540487635881, "peak_allocated_gb": 1.029179392} +temporal_cnv1_k3 {"epoch": 20, "loss": 1.4461142844275425, "val_miou": 0.22801158180361464, "best_val_miou": 0.23257601444078746, "seconds": 5.744404559023678, "peak_allocated_gb": 1.029179392} +temporal_cnv1_k3 {"epoch": 21, "loss": 1.3932245185500698, "val_miou": 0.26944154617215704, "best_val_miou": 0.26944154617215704, "seconds": 5.714788306038827, "peak_allocated_gb": 1.029179392} +temporal_cnv1_k3 {"epoch": 22, "loss": 1.284843897348956, "val_miou": 0.25139857314227526, "best_val_miou": 0.26944154617215704, "seconds": 5.772974357940257, "peak_allocated_gb": 1.029179392} +temporal_cnv1_k3 {"epoch": 23, "loss": 1.2620619488389868, "val_miou": 0.2153666828979571, "best_val_miou": 0.26944154617215704, "seconds": 5.6361265680752695, "peak_allocated_gb": 1.029179392} +temporal_cnv1_k3 {"epoch": 24, "loss": 1.229738003329227, "val_miou": 0.289052928005927, "best_val_miou": 0.289052928005927, "seconds": 5.796060747932643, "peak_allocated_gb": 1.029179392} +temporal_cnv1_k3 {"epoch": 25, "loss": 1.2134223533304114, "val_miou": 0.2617275603481142, "best_val_miou": 0.289052928005927, "seconds": 5.95519298594445, "peak_allocated_gb": 1.029179392} +temporal_cnv1_k3 {"epoch": 26, "loss": 1.2000896554244191, "val_miou": 0.2933043405636742, "best_val_miou": 0.2933043405636742, "seconds": 5.779003201983869, "peak_allocated_gb": 1.029179392} +temporal_cnv1_k3 {"epoch": 27, "loss": 1.1457037945327007, "val_miou": 0.27200098809718043, "best_val_miou": 0.2933043405636742, "seconds": 5.676787861157209, "peak_allocated_gb": 1.029179392} +temporal_cnv1_k3 {"epoch": 28, "loss": 1.1216930982313658, "val_miou": 0.27949019693882665, "best_val_miou": 0.2933043405636742, "seconds": 5.705595821142197, "peak_allocated_gb": 1.029179392} +temporal_cnv1_k3 {"epoch": 29, "loss": 1.1100634787427752, "val_miou": 0.2774551382243742, "best_val_miou": 0.2933043405636742, "seconds": 5.820566400885582, "peak_allocated_gb": 1.029179392} +temporal_cnv1_k3 {"epoch": 30, "loss": 1.0948003891267275, "val_miou": 0.2764432069815729, "best_val_miou": 0.2933043405636742, "seconds": 5.761966398917139, "peak_allocated_gb": 1.029179392} +temporal_cnv1_k3 {"epoch": 31, "loss": 1.0263473422903764, "val_miou": 0.2927262126792782, "best_val_miou": 0.2933043405636742, "seconds": 5.410651741083711, "peak_allocated_gb": 1.029179392} +temporal_cnv1_k3 {"epoch": 32, "loss": 1.0165338924056606, "val_miou": 0.27706323125954385, "best_val_miou": 0.2933043405636742, "seconds": 5.64524998376146, "peak_allocated_gb": 1.029179392} +temporal_cnv1_k3 {"epoch": 33, "loss": 1.040410339832306, "val_miou": 0.31567304788309936, "best_val_miou": 0.31567304788309936, "seconds": 5.973865096922964, "peak_allocated_gb": 1.029179392} +temporal_cnv1_k3 {"epoch": 34, "loss": 0.976247316520465, "val_miou": 0.3022930943137204, "best_val_miou": 0.31567304788309936, "seconds": 5.970367723144591, "peak_allocated_gb": 1.029179392} +temporal_cnv1_k3 {"epoch": 35, "loss": 0.988811536446998, "val_miou": 0.3097432691231537, "best_val_miou": 0.31567304788309936, "seconds": 5.886239256244153, "peak_allocated_gb": 1.029179392} +temporal_cnv1_k3 {"epoch": 36, "loss": 0.9294738647969145, "val_miou": 0.3189960214015167, "best_val_miou": 0.3189960214015167, "seconds": 5.470919749699533, "peak_allocated_gb": 1.029179392} +temporal_cnv1_k3 {"epoch": 37, "loss": 0.9335991406911298, "val_miou": 0.3285945533424294, "best_val_miou": 0.3285945533424294, "seconds": 5.586848559323698, "peak_allocated_gb": 1.029179392} +temporal_cnv1_k3 {"epoch": 38, "loss": 0.866054441583784, "val_miou": 0.3214895771733333, "best_val_miou": 0.3285945533424294, "seconds": 5.88210552977398, "peak_allocated_gb": 1.029179392} +temporal_cnv1_k3 {"epoch": 39, "loss": 0.893851893904962, "val_miou": 0.34159451305511196, "best_val_miou": 0.34159451305511196, "seconds": 6.08894746331498, "peak_allocated_gb": 1.029179392} +temporal_cnv1_k3 {"epoch": 40, "loss": 0.8838217038857309, "val_miou": 0.3198085486815601, "best_val_miou": 0.34159451305511196, "seconds": 5.949544410221279, "peak_allocated_gb": 1.029179392} +temporal_cnv1_k3 {"epoch": 41, "loss": 0.8390983888193181, "val_miou": 0.3162995215968766, "best_val_miou": 0.34159451305511196, "seconds": 5.408255165908486, "peak_allocated_gb": 1.029179392} +temporal_cnv1_k3 {"epoch": 42, "loss": 0.8098341575578639, "val_miou": 0.33576870486903276, "best_val_miou": 0.34159451305511196, "seconds": 5.236323227640241, "peak_allocated_gb": 1.029179392} +temporal_cnv1_k3 {"epoch": 43, "loss": 0.8311687327529255, "val_miou": 0.3107633682659518, "best_val_miou": 0.34159451305511196, "seconds": 5.376080358866602, "peak_allocated_gb": 1.029179392} +temporal_cnv1_k3 {"epoch": 44, "loss": 0.8443778168998266, "val_miou": 0.3016450150212853, "best_val_miou": 0.34159451305511196, "seconds": 5.631237056106329, "peak_allocated_gb": 1.029179392} +temporal_cnv1_k3 {"epoch": 45, "loss": 0.8011682982507505, "val_miou": 0.3404774303067618, "best_val_miou": 0.34159451305511196, "seconds": 5.592758201994002, "peak_allocated_gb": 1.029179392} +temporal_cnv1_k3 {"epoch": 46, "loss": 0.798670413854875, "val_miou": 0.3410046843043792, "best_val_miou": 0.34159451305511196, "seconds": 5.272441731765866, "peak_allocated_gb": 1.029179392} +temporal_cnv1_k3 {"epoch": 47, "loss": 0.7341102691073167, "val_miou": 0.32978848608360867, "best_val_miou": 0.34159451305511196, "seconds": 5.471173583995551, "peak_allocated_gb": 1.029179392} +temporal_cnv1_k3 {"epoch": 48, "loss": 0.7594593994711575, "val_miou": 0.3240165597659243, "best_val_miou": 0.34159451305511196, "seconds": 5.4411128661595285, "peak_allocated_gb": 1.029179392} +temporal_cnv1_k3 {"epoch": 49, "loss": 0.7506044087441344, "val_miou": 0.3205140874153742, "best_val_miou": 0.34159451305511196, "seconds": 5.548418257385492, "peak_allocated_gb": 1.029179392} +temporal_cnv1_k3 {"epoch": 50, "loss": 0.7200053918518519, "val_miou": 0.3248410950838931, "best_val_miou": 0.34159451305511196, "seconds": 5.667366492096335, "peak_allocated_gb": 1.029179392} +temporal_cnv1_k3 {"epoch": 51, "loss": 0.7176919210898248, "val_miou": 0.3183629911881391, "best_val_miou": 0.34159451305511196, "seconds": 5.6849531647749245, "peak_allocated_gb": 1.029179392} +temporal_cnv1_k3 {"epoch": 52, "loss": 0.7272422623477484, "val_miou": 0.3298167681006759, "best_val_miou": 0.34159451305511196, "seconds": 5.461485513951629, "peak_allocated_gb": 1.029179392} +temporal_cnv1_k3 {"epoch": 53, "loss": 0.68387804807801, "val_miou": 0.32331199023487206, "best_val_miou": 0.34159451305511196, "seconds": 5.691773481667042, "peak_allocated_gb": 1.029179392} +temporal_cnv1_k3 {"epoch": 54, "loss": 0.7269075250155047, "val_miou": 0.3370399901526411, "best_val_miou": 0.34159451305511196, "seconds": 5.823926598764956, "peak_allocated_gb": 1.029179392} +temporal_cnv1_k3 {"epoch": 55, "loss": 0.7640709500563773, "val_miou": 0.33496386997961447, "best_val_miou": 0.34159451305511196, "seconds": 5.968010379932821, "peak_allocated_gb": 1.029179392} +temporal_cnv1_k3 {"epoch": 56, "loss": 0.6775519734150485, "val_miou": 0.33257630118911596, "best_val_miou": 0.34159451305511196, "seconds": 5.674988599028438, "peak_allocated_gb": 1.029179392} +temporal_cnv1_k3 {"epoch": 57, "loss": 0.6717372473917509, "val_miou": 0.32558343936195205, "best_val_miou": 0.34159451305511196, "seconds": 5.80978198023513, "peak_allocated_gb": 1.029179392} +temporal_cnv1_k3 {"epoch": 58, "loss": 0.6926302172635731, "val_miou": 0.3333544653530014, "best_val_miou": 0.34159451305511196, "seconds": 5.6359469699673355, "peak_allocated_gb": 1.029179392} +temporal_cnv1_k3 {"epoch": 59, "loss": 0.659765428618381, "val_miou": 0.33842831793898087, "best_val_miou": 0.34159451305511196, "seconds": 5.498835001140833, "peak_allocated_gb": 1.029179392} +temporal_cnv1_k3 {"epoch": 60, "loss": 0.6811330047877211, "val_miou": 0.33413979632604834, "best_val_miou": 0.34159451305511196, "seconds": 5.47979380376637, "peak_allocated_gb": 1.029179392} +temporal_cnv1_k3 {"epoch": 61, "loss": 0.6597008560048906, "val_miou": 0.33578354248504605, "best_val_miou": 0.34159451305511196, "seconds": 5.3424077979288995, "peak_allocated_gb": 1.029179392} +temporal_cnv1_k3 {"epoch": 62, "loss": 0.635097587579175, "val_miou": 0.32482943324879066, "best_val_miou": 0.34159451305511196, "seconds": 5.380049149040133, "peak_allocated_gb": 1.029179392} +temporal_cnv1_k3 {"epoch": 63, "loss": 0.6450437530875206, "val_miou": 0.34346012177732077, "best_val_miou": 0.34346012177732077, "seconds": 5.5900822267867625, "peak_allocated_gb": 1.029179392} +temporal_cnv1_k3 {"epoch": 64, "loss": 0.6117053627967834, "val_miou": 0.33620658716528845, "best_val_miou": 0.34346012177732077, "seconds": 5.816411957144737, "peak_allocated_gb": 1.029179392} +temporal_cnv1_k3 {"epoch": 65, "loss": 0.6123305194472012, "val_miou": 0.3305518804163131, "best_val_miou": 0.34346012177732077, "seconds": 5.404339786153287, "peak_allocated_gb": 1.029179392} +temporal_cnv1_k3 {"epoch": 66, "loss": 0.6397928250463385, "val_miou": 0.33145898852663847, "best_val_miou": 0.34346012177732077, "seconds": 5.500597990117967, "peak_allocated_gb": 1.029179392} +temporal_cnv1_k3 {"epoch": 67, "loss": 0.6203497863913837, "val_miou": 0.3224121638488117, "best_val_miou": 0.34346012177732077, "seconds": 5.772578372154385, "peak_allocated_gb": 1.029179392} +temporal_cnv1_k3 {"epoch": 68, "loss": 0.6045483986013814, "val_miou": 0.32700223897311587, "best_val_miou": 0.34346012177732077, "seconds": 5.486192948184907, "peak_allocated_gb": 1.029179392} +temporal_cnv1_k3 {"epoch": 69, "loss": 0.5845097644548667, "val_miou": 0.3320262780319377, "best_val_miou": 0.34346012177732077, "seconds": 5.299709905870259, "peak_allocated_gb": 1.029179392} +temporal_cnv1_k3 {"epoch": 70, "loss": 0.591961637923592, "val_miou": 0.3343414265365056, "best_val_miou": 0.34346012177732077, "seconds": 5.311627960763872, "peak_allocated_gb": 1.029179392} +temporal_cnv1_k3 {"epoch": 71, "loss": 0.5860262250429705, "val_miou": 0.3325569888267603, "best_val_miou": 0.34346012177732077, "seconds": 5.72431967407465, "peak_allocated_gb": 1.029179392} +temporal_cnv1_k3 {"epoch": 72, "loss": 0.5804041788766259, "val_miou": 0.33456852325294384, "best_val_miou": 0.34346012177732077, "seconds": 5.79517593793571, "peak_allocated_gb": 1.029179392} +temporal_cnv1_k3 {"epoch": 73, "loss": 0.5833767876029015, "val_miou": 0.34209583328552506, "best_val_miou": 0.34346012177732077, "seconds": 5.4551806738600135, "peak_allocated_gb": 1.029179392} +temporal_cnv1_k3 {"epoch": 74, "loss": 0.5990745974214453, "val_miou": 0.3322930886714343, "best_val_miou": 0.34346012177732077, "seconds": 5.9430927243083715, "peak_allocated_gb": 1.029179392} +temporal_cnv1_k3 {"epoch": 75, "loss": 0.590026991147744, "val_miou": 0.33413103315024056, "best_val_miou": 0.34346012177732077, "seconds": 5.93231166806072, "peak_allocated_gb": 1.029179392} +temporal_cnv1_k3 {"epoch": 76, "loss": 0.6014582416728923, "val_miou": 0.3367044140390621, "best_val_miou": 0.34346012177732077, "seconds": 5.967012272682041, "peak_allocated_gb": 1.029179392} +temporal_cnv1_k3 {"epoch": 77, "loss": 0.6245248537314566, "val_miou": 0.34330751956253575, "best_val_miou": 0.34346012177732077, "seconds": 5.630193517077714, "peak_allocated_gb": 1.029179392} +temporal_cnv1_k3 {"epoch": 78, "loss": 0.5825335493213252, "val_miou": 0.33847786269080454, "best_val_miou": 0.34346012177732077, "seconds": 5.59652458736673, "peak_allocated_gb": 1.029179392} +temporal_cnv1_k3 {"epoch": 79, "loss": 0.5927817103894133, "val_miou": 0.34186167165442505, "best_val_miou": 0.34346012177732077, "seconds": 5.799643269740045, "peak_allocated_gb": 1.029179392} +temporal_cnv1_k3 {"epoch": 80, "loss": 0.595775448570126, "val_miou": 0.3333421871473991, "best_val_miou": 0.34346012177732077, "seconds": 5.675544275902212, "peak_allocated_gb": 1.029179392} +temporal_cnv1_k3 {"epoch": 81, "loss": 0.5966788475450716, "val_miou": 0.33841267724196267, "best_val_miou": 0.34346012177732077, "seconds": 5.724812761414796, "peak_allocated_gb": 1.029179392} +temporal_cnv1_k3 {"epoch": 82, "loss": 0.5739600089819807, "val_miou": 0.3362068910214691, "best_val_miou": 0.34346012177732077, "seconds": 5.840315464884043, "peak_allocated_gb": 1.029179392} +temporal_cnv1_k3 {"epoch": 83, "loss": 0.5820129109840644, "val_miou": 0.3366537726962531, "best_val_miou": 0.34346012177732077, "seconds": 5.717262215912342, "peak_allocated_gb": 1.029179392} +temporal_cnv1_k3 {"epoch": 84, "loss": 0.5715580672809952, "val_miou": 0.3358561349451916, "best_val_miou": 0.34346012177732077, "seconds": 5.737718453165144, "peak_allocated_gb": 1.029179392} +temporal_cnv1_k3 {"epoch": 85, "loss": 0.6012086860443416, "val_miou": 0.3359656778051598, "best_val_miou": 0.34346012177732077, "seconds": 5.699090359732509, "peak_allocated_gb": 1.029179392} +temporal_cnv1_k3 {"epoch": 86, "loss": 0.5737981815871439, "val_miou": 0.33743976450242186, "best_val_miou": 0.34346012177732077, "seconds": 5.944344901014119, "peak_allocated_gb": 1.029179392} +temporal_cnv1_k3 {"epoch": 87, "loss": 0.5863165122113729, "val_miou": 0.3361177810497177, "best_val_miou": 0.34346012177732077, "seconds": 6.102702840231359, "peak_allocated_gb": 1.029179392} +temporal_cnv1_k3 {"epoch": 88, "loss": 0.5537218333859193, "val_miou": 0.33599816351010037, "best_val_miou": 0.34346012177732077, "seconds": 5.714080275967717, "peak_allocated_gb": 1.029179392} +temporal_cnv1_k3 {"epoch": 89, "loss": 0.5645829243095297, "val_miou": 0.33619768599742733, "best_val_miou": 0.34346012177732077, "seconds": 5.8228157251141965, "peak_allocated_gb": 1.029179392} +temporal_cnv1_k3 {"epoch": 90, "loss": 0.5568458084997377, "val_miou": 0.33839714358447004, "best_val_miou": 0.34346012177732077, "seconds": 5.67981240991503, "peak_allocated_gb": 1.029179392} +temporal_cnv1_k3 {"epoch": 91, "loss": 0.5442452336612501, "val_miou": 0.3389434249127969, "best_val_miou": 0.34346012177732077, "seconds": 5.826815098058432, "peak_allocated_gb": 1.029179392} +temporal_cnv1_k3 {"epoch": 92, "loss": 0.555147426693063, "val_miou": 0.33810020886542147, "best_val_miou": 0.34346012177732077, "seconds": 5.9018012271262705, "peak_allocated_gb": 1.029179392} +temporal_cnv1_k3 {"epoch": 93, "loss": 0.5675244264696774, "val_miou": 0.33639109229440517, "best_val_miou": 0.34346012177732077, "seconds": 5.632364332675934, "peak_allocated_gb": 1.029179392} +temporal_cnv1_k3 {"epoch": 94, "loss": 0.5589379687842569, "val_miou": 0.3369936301649583, "best_val_miou": 0.34346012177732077, "seconds": 5.343549034092575, "peak_allocated_gb": 1.029179392} +temporal_cnv1_k3 {"epoch": 95, "loss": 0.5708922281077033, "val_miou": 0.3375581783808334, "best_val_miou": 0.34346012177732077, "seconds": 5.502384507097304, "peak_allocated_gb": 1.029179392} +temporal_cnv1_k3 {"epoch": 96, "loss": 0.5582074628848779, "val_miou": 0.3371116748565763, "best_val_miou": 0.34346012177732077, "seconds": 5.310642099939287, "peak_allocated_gb": 1.029179392} +temporal_cnv1_k3 {"epoch": 97, "loss": 0.5534011666712008, "val_miou": 0.3377001675891469, "best_val_miou": 0.34346012177732077, "seconds": 5.57123894803226, "peak_allocated_gb": 1.029179392} +temporal_cnv1_k3 {"epoch": 98, "loss": 0.5422820527302591, "val_miou": 0.3377651069939871, "best_val_miou": 0.34346012177732077, "seconds": 5.47403438994661, "peak_allocated_gb": 1.029179392} +temporal_cnv1_k3 {"epoch": 99, "loss": 0.5350497713998744, "val_miou": 0.3375813330713922, "best_val_miou": 0.34346012177732077, "seconds": 5.415088437963277, "peak_allocated_gb": 1.029179392} +temporal_cnv1_k3 {"epoch": 100, "loss": 0.5530857153629002, "val_miou": 0.3381479975662558, "best_val_miou": 0.34346012177732077, "seconds": 5.427879343740642, "peak_allocated_gb": 1.029179392} diff --git a/ablations/10_plateau_breakthrough/workspace/convnext_research_20261010/temporal_cnv1_k7_select.log b/ablations/10_plateau_breakthrough/workspace/convnext_research_20261010/temporal_cnv1_k7_select.log new file mode 100644 index 0000000000000000000000000000000000000000..51b3b304073fa45ac222a878541e881b48ea9d9f --- /dev/null +++ b/ablations/10_plateau_breakthrough/workspace/convnext_research_20261010/temporal_cnv1_k7_select.log @@ -0,0 +1,3 @@ +/usr/lib/python3/dist-packages/scipy/__init__.py:146: UserWarning: A NumPy version >=1.17.3 and <1.25.0 is required for this version of SciPy (detected version 1.26.4 + warnings.warn(f"A NumPy version >={np_minversion} and <{np_maxversion}" +SELECT temporal_cnv1_k7 0.0 add 0.0 diff --git a/ablations/10_plateau_breakthrough/workspace/convnext_research_20261010/temporal_cnv1_k7_train.log b/ablations/10_plateau_breakthrough/workspace/convnext_research_20261010/temporal_cnv1_k7_train.log new file mode 100644 index 0000000000000000000000000000000000000000..31ec331f483c5106a40dd956d4102988bc020da2 --- /dev/null +++ b/ablations/10_plateau_breakthrough/workspace/convnext_research_20261010/temporal_cnv1_k7_train.log @@ -0,0 +1,102 @@ +/usr/lib/python3/dist-packages/scipy/__init__.py:146: UserWarning: A NumPy version >=1.17.3 and <1.25.0 is required for this version of SciPy (detected version 1.26.4 + warnings.warn(f"A NumPy version >={np_minversion} and <{np_maxversion}" +temporal_cnv1_k7 {"epoch": 1, "loss": 2.8608509929556596, "val_miou": 0.02319235158221294, "best_val_miou": 0.02319235158221294, "seconds": 6.722695058211684, "peak_allocated_gb": 1.029193728} +temporal_cnv1_k7 {"epoch": 2, "loss": 2.5456772038811133, "val_miou": 0.052183938544825566, "best_val_miou": 0.052183938544825566, "seconds": 5.4930503950454295, "peak_allocated_gb": 1.029193728} +temporal_cnv1_k7 {"epoch": 3, "loss": 2.4337619072512577, "val_miou": 0.033373596804386715, "best_val_miou": 0.052183938544825566, "seconds": 5.676314958836883, "peak_allocated_gb": 1.029193728} +temporal_cnv1_k7 {"epoch": 4, "loss": 2.392650149370495, "val_miou": 0.03748277087693355, "best_val_miou": 0.052183938544825566, "seconds": 5.852524243760854, "peak_allocated_gb": 1.029193728} +temporal_cnv1_k7 {"epoch": 5, "loss": 2.2932711996530233, "val_miou": 0.05971164113329081, "best_val_miou": 0.05971164113329081, "seconds": 5.739965396001935, "peak_allocated_gb": 1.029193728} +temporal_cnv1_k7 {"epoch": 6, "loss": 2.1879570970409796, "val_miou": 0.062246979163846944, "best_val_miou": 0.062246979163846944, "seconds": 5.597578336019069, "peak_allocated_gb": 1.029193728} +temporal_cnv1_k7 {"epoch": 7, "loss": 2.1533270242967104, "val_miou": 0.09033993593364632, "best_val_miou": 0.09033993593364632, "seconds": 5.625209850259125, "peak_allocated_gb": 1.029193728} +temporal_cnv1_k7 {"epoch": 8, "loss": 2.084379538109428, "val_miou": 0.10511227602782827, "best_val_miou": 0.10511227602782827, "seconds": 5.750794248655438, "peak_allocated_gb": 1.029193728} +temporal_cnv1_k7 {"epoch": 9, "loss": 2.040826505736301, "val_miou": 0.09605692292541683, "best_val_miou": 0.10511227602782827, "seconds": 5.597694781143218, "peak_allocated_gb": 1.029193728} +temporal_cnv1_k7 {"epoch": 10, "loss": 1.9443820581624383, "val_miou": 0.1653428059222185, "best_val_miou": 0.1653428059222185, "seconds": 5.732319730799645, "peak_allocated_gb": 1.029193728} +temporal_cnv1_k7 {"epoch": 11, "loss": 1.8501426671680652, "val_miou": 0.11722210015059092, "best_val_miou": 0.1653428059222185, "seconds": 6.227188323158771, "peak_allocated_gb": 1.029193728} +temporal_cnv1_k7 {"epoch": 12, "loss": 1.806750415187133, "val_miou": 0.19881660538929774, "best_val_miou": 0.19881660538929774, "seconds": 5.468539770226926, "peak_allocated_gb": 1.029193728} +temporal_cnv1_k7 {"epoch": 13, "loss": 1.671807683612171, "val_miou": 0.20064480162466017, "best_val_miou": 0.20064480162466017, "seconds": 5.916748164687306, "peak_allocated_gb": 1.029193728} +temporal_cnv1_k7 {"epoch": 14, "loss": 1.5993108027859737, "val_miou": 0.2286813409607435, "best_val_miou": 0.2286813409607435, "seconds": 6.035507469903678, "peak_allocated_gb": 1.029193728} +temporal_cnv1_k7 {"epoch": 15, "loss": 1.4275371977373172, "val_miou": 0.22467389776739793, "best_val_miou": 0.2286813409607435, "seconds": 5.75505687110126, "peak_allocated_gb": 1.029193728} +temporal_cnv1_k7 {"epoch": 16, "loss": 1.4049647156345217, "val_miou": 0.24431644906362024, "best_val_miou": 0.24431644906362024, "seconds": 5.419261416886002, "peak_allocated_gb": 1.029193728} +temporal_cnv1_k7 {"epoch": 17, "loss": 1.3461463749408722, "val_miou": 0.25419408974517377, "best_val_miou": 0.25419408974517377, "seconds": 5.592322596814483, "peak_allocated_gb": 1.029193728} +temporal_cnv1_k7 {"epoch": 18, "loss": 1.2891129733700502, "val_miou": 0.2482925689862675, "best_val_miou": 0.25419408974517377, "seconds": 6.23183592967689, "peak_allocated_gb": 1.029193728} +temporal_cnv1_k7 {"epoch": 19, "loss": 1.3304626118195684, "val_miou": 0.2672808020108792, "best_val_miou": 0.2672808020108792, "seconds": 5.774888738058507, "peak_allocated_gb": 1.029193728} +temporal_cnv1_k7 {"epoch": 20, "loss": 1.2457132715927928, "val_miou": 0.2349433130951238, "best_val_miou": 0.2672808020108792, "seconds": 5.773482857272029, "peak_allocated_gb": 1.029193728} +temporal_cnv1_k7 {"epoch": 21, "loss": 1.2057793752143258, "val_miou": 0.26987757838786486, "best_val_miou": 0.26987757838786486, "seconds": 5.976837136782706, "peak_allocated_gb": 1.029193728} +temporal_cnv1_k7 {"epoch": 22, "loss": 1.1419127865841514, "val_miou": 0.2947165464021444, "best_val_miou": 0.2947165464021444, "seconds": 5.934505185112357, "peak_allocated_gb": 1.029193728} +temporal_cnv1_k7 {"epoch": 23, "loss": 1.1374741286823624, "val_miou": 0.2692184506334303, "best_val_miou": 0.2947165464021444, "seconds": 5.879826102871448, "peak_allocated_gb": 1.029193728} +temporal_cnv1_k7 {"epoch": 24, "loss": 1.0835887821097123, "val_miou": 0.2801875758469539, "best_val_miou": 0.2947165464021444, "seconds": 5.547572842799127, "peak_allocated_gb": 1.029193728} +temporal_cnv1_k7 {"epoch": 25, "loss": 1.0760592488866103, "val_miou": 0.2684445698352379, "best_val_miou": 0.2947165464021444, "seconds": 6.063954737968743, "peak_allocated_gb": 1.029193728} +temporal_cnv1_k7 {"epoch": 26, "loss": 1.1046584926937755, "val_miou": 0.28919028266227814, "best_val_miou": 0.2947165464021444, "seconds": 6.091979130636901, "peak_allocated_gb": 1.029193728} +temporal_cnv1_k7 {"epoch": 27, "loss": 1.0017633594964679, "val_miou": 0.2771121942302027, "best_val_miou": 0.2947165464021444, "seconds": 6.01637257123366, "peak_allocated_gb": 1.029193728} +temporal_cnv1_k7 {"epoch": 28, "loss": 0.9684821041791063, "val_miou": 0.2930904967903134, "best_val_miou": 0.2947165464021444, "seconds": 5.785551162902266, "peak_allocated_gb": 1.029193728} +temporal_cnv1_k7 {"epoch": 29, "loss": 0.9785222717021641, "val_miou": 0.2694968957661005, "best_val_miou": 0.2947165464021444, "seconds": 5.543282768223435, "peak_allocated_gb": 1.029193728} +temporal_cnv1_k7 {"epoch": 30, "loss": 0.9587461168044492, "val_miou": 0.28367700535392376, "best_val_miou": 0.2947165464021444, "seconds": 5.62409852584824, "peak_allocated_gb": 1.029193728} +temporal_cnv1_k7 {"epoch": 31, "loss": 0.8988449910753652, "val_miou": 0.2752466863940999, "best_val_miou": 0.2947165464021444, "seconds": 5.450921013019979, "peak_allocated_gb": 1.029193728} +temporal_cnv1_k7 {"epoch": 32, "loss": 0.9306697974863806, "val_miou": 0.27901571596554936, "best_val_miou": 0.2947165464021444, "seconds": 5.614320533815771, "peak_allocated_gb": 1.029193728} +temporal_cnv1_k7 {"epoch": 33, "loss": 0.9250595020620447, "val_miou": 0.2931904187043621, "best_val_miou": 0.2947165464021444, "seconds": 5.765804314054549, "peak_allocated_gb": 1.029193728} +temporal_cnv1_k7 {"epoch": 34, "loss": 0.879934120335077, "val_miou": 0.29160825103073607, "best_val_miou": 0.2947165464021444, "seconds": 6.0624306090176105, "peak_allocated_gb": 1.029193728} +temporal_cnv1_k7 {"epoch": 35, "loss": 0.8845061546093539, "val_miou": 0.29072056855183237, "best_val_miou": 0.2947165464021444, "seconds": 5.893884507007897, "peak_allocated_gb": 1.029193728} +temporal_cnv1_k7 {"epoch": 36, "loss": 0.8357217782422116, "val_miou": 0.2929228408337736, "best_val_miou": 0.2947165464021444, "seconds": 5.82455155486241, "peak_allocated_gb": 1.029193728} +temporal_cnv1_k7 {"epoch": 37, "loss": 0.8308940988622213, "val_miou": 0.31502189145487386, "best_val_miou": 0.31502189145487386, "seconds": 6.145547042135149, "peak_allocated_gb": 1.029193728} +temporal_cnv1_k7 {"epoch": 38, "loss": 0.7965511197322294, "val_miou": 0.3217281105485076, "best_val_miou": 0.3217281105485076, "seconds": 6.065871409140527, "peak_allocated_gb": 1.029193728} +temporal_cnv1_k7 {"epoch": 39, "loss": 0.773597754930195, "val_miou": 0.3088481437831046, "best_val_miou": 0.3217281105485076, "seconds": 5.995924345217645, "peak_allocated_gb": 1.029193728} +temporal_cnv1_k7 {"epoch": 40, "loss": 0.7484327335106699, "val_miou": 0.3038628959255696, "best_val_miou": 0.3217281105485076, "seconds": 6.087922852952033, "peak_allocated_gb": 1.029193728} +temporal_cnv1_k7 {"epoch": 41, "loss": 0.7455220238158577, "val_miou": 0.2980073856165362, "best_val_miou": 0.3217281105485076, "seconds": 5.663589669391513, "peak_allocated_gb": 1.029193728} +temporal_cnv1_k7 {"epoch": 42, "loss": 0.7366128042340279, "val_miou": 0.2967940036112935, "best_val_miou": 0.3217281105485076, "seconds": 5.528809000272304, "peak_allocated_gb": 1.029193728} +temporal_cnv1_k7 {"epoch": 43, "loss": 0.7630161003846871, "val_miou": 0.30800907775721975, "best_val_miou": 0.3217281105485076, "seconds": 5.725358158815652, "peak_allocated_gb": 1.029193728} +temporal_cnv1_k7 {"epoch": 44, "loss": 0.7652457340767509, "val_miou": 0.316370557401123, "best_val_miou": 0.3217281105485076, "seconds": 5.638738323003054, "peak_allocated_gb": 1.029193728} +temporal_cnv1_k7 {"epoch": 45, "loss": 0.7031033690038481, "val_miou": 0.3034958186058055, "best_val_miou": 0.3217281105485076, "seconds": 5.684355876874179, "peak_allocated_gb": 1.029193728} +temporal_cnv1_k7 {"epoch": 46, "loss": 0.6951283467443365, "val_miou": 0.30047906998663954, "best_val_miou": 0.3217281105485076, "seconds": 5.452695413026959, "peak_allocated_gb": 1.029193728} +temporal_cnv1_k7 {"epoch": 47, "loss": 0.6705677819095159, "val_miou": 0.30763137527439993, "best_val_miou": 0.3217281105485076, "seconds": 5.583064288366586, "peak_allocated_gb": 1.029193728} +temporal_cnv1_k7 {"epoch": 48, "loss": 0.6803509691043904, "val_miou": 0.2986903982447425, "best_val_miou": 0.3217281105485076, "seconds": 5.390266575850546, "peak_allocated_gb": 1.029193728} +temporal_cnv1_k7 {"epoch": 49, "loss": 0.6603903146950822, "val_miou": 0.31215562450537493, "best_val_miou": 0.3217281105485076, "seconds": 5.784865617752075, "peak_allocated_gb": 1.029193728} +temporal_cnv1_k7 {"epoch": 50, "loss": 0.625560718539514, "val_miou": 0.3024540630034325, "best_val_miou": 0.3217281105485076, "seconds": 5.9167285286821425, "peak_allocated_gb": 1.029193728} +temporal_cnv1_k7 {"epoch": 51, "loss": 0.6332406374184709, "val_miou": 0.32455532032994955, "best_val_miou": 0.32455532032994955, "seconds": 5.499330778606236, "peak_allocated_gb": 1.029193728} +temporal_cnv1_k7 {"epoch": 52, "loss": 0.6295477669490012, "val_miou": 0.3059832930343958, "best_val_miou": 0.32455532032994955, "seconds": 5.523109805770218, "peak_allocated_gb": 1.029193728} +temporal_cnv1_k7 {"epoch": 53, "loss": 0.6022601068804139, "val_miou": 0.32027371218321304, "best_val_miou": 0.32455532032994955, "seconds": 5.582238442730159, "peak_allocated_gb": 1.029193728} +temporal_cnv1_k7 {"epoch": 54, "loss": 0.6136277298394003, "val_miou": 0.3008813365913447, "best_val_miou": 0.32455532032994955, "seconds": 5.422120419330895, "peak_allocated_gb": 1.029193728} +temporal_cnv1_k7 {"epoch": 55, "loss": 0.6981254278829223, "val_miou": 0.3243490255536061, "best_val_miou": 0.32455532032994955, "seconds": 5.472150534391403, "peak_allocated_gb": 1.029193728} +temporal_cnv1_k7 {"epoch": 56, "loss": 0.5701986868914805, "val_miou": 0.3253830098616237, "best_val_miou": 0.3253830098616237, "seconds": 5.633913038298488, "peak_allocated_gb": 1.029193728} +temporal_cnv1_k7 {"epoch": 57, "loss": 0.5756007695668622, "val_miou": 0.31225860963943364, "best_val_miou": 0.3253830098616237, "seconds": 6.01936933491379, "peak_allocated_gb": 1.029193728} +temporal_cnv1_k7 {"epoch": 58, "loss": 0.5989345265062231, "val_miou": 0.3168095287863751, "best_val_miou": 0.3253830098616237, "seconds": 6.081909529399127, "peak_allocated_gb": 1.029193728} +temporal_cnv1_k7 {"epoch": 59, "loss": 0.5682670207400071, "val_miou": 0.3166749363329541, "best_val_miou": 0.3253830098616237, "seconds": 6.1541907847858965, "peak_allocated_gb": 1.029193728} +temporal_cnv1_k7 {"epoch": 60, "loss": 0.5666742258166012, "val_miou": 0.30891117656560296, "best_val_miou": 0.3253830098616237, "seconds": 6.175050679128617, "peak_allocated_gb": 1.029193728} +temporal_cnv1_k7 {"epoch": 61, "loss": 0.5729721114039421, "val_miou": 0.3326937702538733, "best_val_miou": 0.3326937702538733, "seconds": 5.966985277365893, "peak_allocated_gb": 1.029193728} +temporal_cnv1_k7 {"epoch": 62, "loss": 0.5562774621342358, "val_miou": 0.31539692634034366, "best_val_miou": 0.3326937702538733, "seconds": 5.9974093567579985, "peak_allocated_gb": 1.029193728} +temporal_cnv1_k7 {"epoch": 63, "loss": 0.5361600596653787, "val_miou": 0.33065316185879495, "best_val_miou": 0.3326937702538733, "seconds": 5.718310351949185, "peak_allocated_gb": 1.029193728} +temporal_cnv1_k7 {"epoch": 64, "loss": 0.5182299766885606, "val_miou": 0.3218773594022139, "best_val_miou": 0.3326937702538733, "seconds": 6.24209926603362, "peak_allocated_gb": 1.029193728} +temporal_cnv1_k7 {"epoch": 65, "loss": 0.5460996541537737, "val_miou": 0.32667140949040563, "best_val_miou": 0.3326937702538733, "seconds": 6.354729675222188, "peak_allocated_gb": 1.029193728} +temporal_cnv1_k7 {"epoch": 66, "loss": 0.5593837091797277, "val_miou": 0.3299667538116606, "best_val_miou": 0.3326937702538733, "seconds": 5.861267289146781, "peak_allocated_gb": 1.029193728} +temporal_cnv1_k7 {"epoch": 67, "loss": 0.5304667647731932, "val_miou": 0.3123977817788245, "best_val_miou": 0.3326937702538733, "seconds": 6.154120103921741, "peak_allocated_gb": 1.029193728} +temporal_cnv1_k7 {"epoch": 68, "loss": 0.5398432479092949, "val_miou": 0.3290412801952578, "best_val_miou": 0.3326937702538733, "seconds": 5.916968300007284, "peak_allocated_gb": 1.029193728} +temporal_cnv1_k7 {"epoch": 69, "loss": 0.5174268299811765, "val_miou": 0.320060988510208, "best_val_miou": 0.3326937702538733, "seconds": 5.796796482056379, "peak_allocated_gb": 1.029193728} +temporal_cnv1_k7 {"epoch": 70, "loss": 0.5197323105837169, "val_miou": 0.33342797337465435, "best_val_miou": 0.33342797337465435, "seconds": 6.039705154020339, "peak_allocated_gb": 1.029193728} +temporal_cnv1_k7 {"epoch": 71, "loss": 0.4980160401839959, "val_miou": 0.3221056874344883, "best_val_miou": 0.33342797337465435, "seconds": 5.9776320229284465, "peak_allocated_gb": 1.029193728} +temporal_cnv1_k7 {"epoch": 72, "loss": 0.5136376172304153, "val_miou": 0.3386682038637725, "best_val_miou": 0.3386682038637725, "seconds": 5.55938356090337, "peak_allocated_gb": 1.029193728} +temporal_cnv1_k7 {"epoch": 73, "loss": 0.49739923563442734, "val_miou": 0.3361359443738339, "best_val_miou": 0.3386682038637725, "seconds": 5.8363074492663145, "peak_allocated_gb": 1.029193728} +temporal_cnv1_k7 {"epoch": 74, "loss": 0.5195316409594134, "val_miou": 0.32486600132251126, "best_val_miou": 0.3386682038637725, "seconds": 6.189505300950259, "peak_allocated_gb": 1.029193728} +temporal_cnv1_k7 {"epoch": 75, "loss": 0.5131108823575472, "val_miou": 0.3388080549779667, "best_val_miou": 0.3388080549779667, "seconds": 5.688599595800042, "peak_allocated_gb": 1.029193728} +temporal_cnv1_k7 {"epoch": 76, "loss": 0.5102362640594181, "val_miou": 0.3293543790986248, "best_val_miou": 0.3388080549779667, "seconds": 5.706185537856072, "peak_allocated_gb": 1.029193728} +temporal_cnv1_k7 {"epoch": 77, "loss": 0.548653661028335, "val_miou": 0.3259785825670445, "best_val_miou": 0.3388080549779667, "seconds": 5.775709820911288, "peak_allocated_gb": 1.029193728} +temporal_cnv1_k7 {"epoch": 78, "loss": 0.5299078080999223, "val_miou": 0.3273282316281209, "best_val_miou": 0.3388080549779667, "seconds": 5.509329445194453, "peak_allocated_gb": 1.029193728} +temporal_cnv1_k7 {"epoch": 79, "loss": 0.49609410566718953, "val_miou": 0.3285277105465245, "best_val_miou": 0.3388080549779667, "seconds": 5.601387799251825, "peak_allocated_gb": 1.029193728} +temporal_cnv1_k7 {"epoch": 80, "loss": 0.5089446635622727, "val_miou": 0.3266110625110671, "best_val_miou": 0.3388080549779667, "seconds": 5.653241158928722, "peak_allocated_gb": 1.029193728} +temporal_cnv1_k7 {"epoch": 81, "loss": 0.5101890665920157, "val_miou": 0.3254962803846353, "best_val_miou": 0.3388080549779667, "seconds": 5.729505903087556, "peak_allocated_gb": 1.029193728} +temporal_cnv1_k7 {"epoch": 82, "loss": 0.5009253691685828, "val_miou": 0.3222238424002069, "best_val_miou": 0.3388080549779667, "seconds": 5.6668116808868945, "peak_allocated_gb": 1.029193728} +temporal_cnv1_k7 {"epoch": 83, "loss": 0.4827628112153003, "val_miou": 0.3193702002612835, "best_val_miou": 0.3388080549779667, "seconds": 5.81733178300783, "peak_allocated_gb": 1.029193728} +temporal_cnv1_k7 {"epoch": 84, "loss": 0.4879945536193095, "val_miou": 0.324089933629019, "best_val_miou": 0.3388080549779667, "seconds": 6.1139739928767085, "peak_allocated_gb": 1.029193728} +temporal_cnv1_k7 {"epoch": 85, "loss": 0.5144722120542276, "val_miou": 0.3283965218429233, "best_val_miou": 0.3388080549779667, "seconds": 5.871283568907529, "peak_allocated_gb": 1.029193728} +temporal_cnv1_k7 {"epoch": 86, "loss": 0.5328587991626639, "val_miou": 0.33232485384844623, "best_val_miou": 0.3388080549779667, "seconds": 5.940876632928848, "peak_allocated_gb": 1.029193728} +temporal_cnv1_k7 {"epoch": 87, "loss": 0.49803481643137176, "val_miou": 0.3302993189293413, "best_val_miou": 0.3388080549779667, "seconds": 5.875326768029481, "peak_allocated_gb": 1.029193728} +temporal_cnv1_k7 {"epoch": 88, "loss": 0.4769865866554411, "val_miou": 0.3269902594004186, "best_val_miou": 0.3388080549779667, "seconds": 5.421178989112377, "peak_allocated_gb": 1.029193728} +temporal_cnv1_k7 {"epoch": 89, "loss": 0.5001126982663807, "val_miou": 0.3286266903043421, "best_val_miou": 0.3388080549779667, "seconds": 6.160638828761876, "peak_allocated_gb": 1.029193728} +temporal_cnv1_k7 {"epoch": 90, "loss": 0.4915260805895454, "val_miou": 0.32465526813166706, "best_val_miou": 0.3388080549779667, "seconds": 5.4948103511705995, "peak_allocated_gb": 1.029193728} +temporal_cnv1_k7 {"epoch": 91, "loss": 0.46257821235217544, "val_miou": 0.3253127694239418, "best_val_miou": 0.3388080549779667, "seconds": 5.746287212241441, "peak_allocated_gb": 1.029193728} +temporal_cnv1_k7 {"epoch": 92, "loss": 0.48569604872088684, "val_miou": 0.32466911394008513, "best_val_miou": 0.3388080549779667, "seconds": 5.367556652054191, "peak_allocated_gb": 1.029193728} +temporal_cnv1_k7 {"epoch": 93, "loss": 0.5017735189513156, "val_miou": 0.3242947392022793, "best_val_miou": 0.3388080549779667, "seconds": 5.424810678232461, "peak_allocated_gb": 1.029193728} +temporal_cnv1_k7 {"epoch": 94, "loss": 0.49234442138358164, "val_miou": 0.3256792344307437, "best_val_miou": 0.3388080549779667, "seconds": 5.933720878325403, "peak_allocated_gb": 1.029193728} +temporal_cnv1_k7 {"epoch": 95, "loss": 0.5019444905613598, "val_miou": 0.32351750367929694, "best_val_miou": 0.3388080549779667, "seconds": 5.928541994187981, "peak_allocated_gb": 1.029193728} +temporal_cnv1_k7 {"epoch": 96, "loss": 0.4941197672956868, "val_miou": 0.32387175695351145, "best_val_miou": 0.3388080549779667, "seconds": 5.80602764710784, "peak_allocated_gb": 1.029193728} +temporal_cnv1_k7 {"epoch": 97, "loss": 0.4744369658200364, "val_miou": 0.32283305471740076, "best_val_miou": 0.3388080549779667, "seconds": 5.77688150992617, "peak_allocated_gb": 1.029193728} +temporal_cnv1_k7 {"epoch": 98, "loss": 0.46880191133210536, "val_miou": 0.32381176238207643, "best_val_miou": 0.3388080549779667, "seconds": 5.816561516840011, "peak_allocated_gb": 1.029193728} +temporal_cnv1_k7 {"epoch": 99, "loss": 0.45996176843580444, "val_miou": 0.3241203278163719, "best_val_miou": 0.3388080549779667, "seconds": 6.104224272072315, "peak_allocated_gb": 1.029193728} +temporal_cnv1_k7 {"epoch": 100, "loss": 0.470976863644625, "val_miou": 0.32409944195203483, "best_val_miou": 0.3388080549779667, "seconds": 5.93206904316321, "peak_allocated_gb": 1.029193728} diff --git a/ablations/10_plateau_breakthrough/workspace/convnext_research_20261010/temporal_cnv2_k15_select.log b/ablations/10_plateau_breakthrough/workspace/convnext_research_20261010/temporal_cnv2_k15_select.log new file mode 100644 index 0000000000000000000000000000000000000000..b6721811f089d3d1b679750ccd976e86a332946c --- /dev/null +++ b/ablations/10_plateau_breakthrough/workspace/convnext_research_20261010/temporal_cnv2_k15_select.log @@ -0,0 +1,3 @@ +/usr/lib/python3/dist-packages/scipy/__init__.py:146: UserWarning: A NumPy version >=1.17.3 and <1.25.0 is required for this version of SciPy (detected version 1.26.4 + warnings.warn(f"A NumPy version >={np_minversion} and <{np_maxversion}" +SELECT temporal_cnv2_k15 0.03126935319385238 add 0.1 diff --git a/ablations/10_plateau_breakthrough/workspace/convnext_research_20261010/temporal_cnv2_k15_train.log b/ablations/10_plateau_breakthrough/workspace/convnext_research_20261010/temporal_cnv2_k15_train.log new file mode 100644 index 0000000000000000000000000000000000000000..70167da546049d667ba185fa861711882ae00297 --- /dev/null +++ b/ablations/10_plateau_breakthrough/workspace/convnext_research_20261010/temporal_cnv2_k15_train.log @@ -0,0 +1,102 @@ +/usr/lib/python3/dist-packages/scipy/__init__.py:146: UserWarning: A NumPy version >=1.17.3 and <1.25.0 is required for this version of SciPy (detected version 1.26.4 + warnings.warn(f"A NumPy version >={np_minversion} and <{np_maxversion}" +temporal_cnv2_k15 {"epoch": 1, "loss": 2.8153660077797737, "val_miou": 0.02258522129318621, "best_val_miou": 0.02258522129318621, "seconds": 14.904657275881618, "peak_allocated_gb": 2.380299264} +temporal_cnv2_k15 {"epoch": 2, "loss": 2.483669053567083, "val_miou": 0.03711366984397993, "best_val_miou": 0.03711366984397993, "seconds": 13.440215015783906, "peak_allocated_gb": 2.380299264} +temporal_cnv2_k15 {"epoch": 3, "loss": 2.3789838489733244, "val_miou": 0.0702170126827178, "best_val_miou": 0.0702170126827178, "seconds": 13.354794779326767, "peak_allocated_gb": 2.380299264} +temporal_cnv2_k15 {"epoch": 4, "loss": 2.2061137572715155, "val_miou": 0.0898530341297285, "best_val_miou": 0.0898530341297285, "seconds": 13.121917462907732, "peak_allocated_gb": 2.380299264} +temporal_cnv2_k15 {"epoch": 5, "loss": 2.132760986685753, "val_miou": 0.13522677751435344, "best_val_miou": 0.13522677751435344, "seconds": 13.523022273089737, "peak_allocated_gb": 2.380299264} +temporal_cnv2_k15 {"epoch": 6, "loss": 1.843221396992081, "val_miou": 0.13795841917788743, "best_val_miou": 0.13795841917788743, "seconds": 13.449820163659751, "peak_allocated_gb": 2.380299264} +temporal_cnv2_k15 {"epoch": 7, "loss": 1.754245809818569, "val_miou": 0.2373752604636958, "best_val_miou": 0.2373752604636958, "seconds": 13.672347519081086, "peak_allocated_gb": 2.380299264} +temporal_cnv2_k15 {"epoch": 8, "loss": 1.5612426419791423, "val_miou": 0.25881146941570843, "best_val_miou": 0.25881146941570843, "seconds": 13.394962299149483, "peak_allocated_gb": 2.380299264} +temporal_cnv2_k15 {"epoch": 9, "loss": 1.4783280742795843, "val_miou": 0.17707967343533018, "best_val_miou": 0.25881146941570843, "seconds": 13.26864765305072, "peak_allocated_gb": 2.380299264} +temporal_cnv2_k15 {"epoch": 10, "loss": 1.4195182778333362, "val_miou": 0.2718065390584175, "best_val_miou": 0.2718065390584175, "seconds": 13.22995234420523, "peak_allocated_gb": 2.380299264} +temporal_cnv2_k15 {"epoch": 11, "loss": 1.2379730171278904, "val_miou": 0.2376600039104961, "best_val_miou": 0.2718065390584175, "seconds": 13.518364326562732, "peak_allocated_gb": 2.380299264} +temporal_cnv2_k15 {"epoch": 12, "loss": 1.3735458246971433, "val_miou": 0.27091193654467616, "best_val_miou": 0.2718065390584175, "seconds": 13.401493387296796, "peak_allocated_gb": 2.380299264} +temporal_cnv2_k15 {"epoch": 13, "loss": 1.1846577678071826, "val_miou": 0.2691136846827493, "best_val_miou": 0.2718065390584175, "seconds": 13.72201768308878, "peak_allocated_gb": 2.380299264} +temporal_cnv2_k15 {"epoch": 14, "loss": 1.1195850787978423, "val_miou": 0.2911678039735388, "best_val_miou": 0.2911678039735388, "seconds": 13.768722329754382, "peak_allocated_gb": 2.380299264} +temporal_cnv2_k15 {"epoch": 15, "loss": 1.0043240789520114, "val_miou": 0.32457155319737535, "best_val_miou": 0.32457155319737535, "seconds": 13.54806619277224, "peak_allocated_gb": 2.380299264} +temporal_cnv2_k15 {"epoch": 16, "loss": 0.9554395001185568, "val_miou": 0.34113119015652854, "best_val_miou": 0.34113119015652854, "seconds": 13.592889732681215, "peak_allocated_gb": 2.380299264} +temporal_cnv2_k15 {"epoch": 17, "loss": 0.9589369332319811, "val_miou": 0.3478037993378089, "best_val_miou": 0.3478037993378089, "seconds": 13.435715411789715, "peak_allocated_gb": 2.380299264} +temporal_cnv2_k15 {"epoch": 18, "loss": 0.9091115276280203, "val_miou": 0.27443236698848206, "best_val_miou": 0.3478037993378089, "seconds": 13.463145186658949, "peak_allocated_gb": 2.380299264} +temporal_cnv2_k15 {"epoch": 19, "loss": 0.9122227187219419, "val_miou": 0.32397407702675945, "best_val_miou": 0.3478037993378089, "seconds": 13.571171347051859, "peak_allocated_gb": 2.380299264} +temporal_cnv2_k15 {"epoch": 20, "loss": 0.8159581454176652, "val_miou": 0.2997674726663574, "best_val_miou": 0.3478037993378089, "seconds": 13.682745140977204, "peak_allocated_gb": 2.380299264} +temporal_cnv2_k15 {"epoch": 21, "loss": 0.8918833246356562, "val_miou": 0.31426130901505656, "best_val_miou": 0.3478037993378089, "seconds": 13.42570458073169, "peak_allocated_gb": 2.380299264} +temporal_cnv2_k15 {"epoch": 22, "loss": 0.7663469683182867, "val_miou": 0.32062376059944503, "best_val_miou": 0.3478037993378089, "seconds": 13.40329392394051, "peak_allocated_gb": 2.380299264} +temporal_cnv2_k15 {"epoch": 23, "loss": 0.7591793811634967, "val_miou": 0.3251628596693987, "best_val_miou": 0.3478037993378089, "seconds": 13.266605283133686, "peak_allocated_gb": 2.380299264} +temporal_cnv2_k15 {"epoch": 24, "loss": 0.6999928041508323, "val_miou": 0.3464909675825952, "best_val_miou": 0.3478037993378089, "seconds": 13.784867338836193, "peak_allocated_gb": 2.380299264} +temporal_cnv2_k15 {"epoch": 25, "loss": 0.6837734917276784, "val_miou": 0.355281891070961, "best_val_miou": 0.355281891070961, "seconds": 13.737471902742982, "peak_allocated_gb": 2.380299264} +temporal_cnv2_k15 {"epoch": 26, "loss": 0.7041824840401348, "val_miou": 0.3385647593198617, "best_val_miou": 0.355281891070961, "seconds": 13.421103707049042, "peak_allocated_gb": 2.380299264} +temporal_cnv2_k15 {"epoch": 27, "loss": 0.6147390235411493, "val_miou": 0.3557103363021264, "best_val_miou": 0.3557103363021264, "seconds": 13.460014183074236, "peak_allocated_gb": 2.380299264} +temporal_cnv2_k15 {"epoch": 28, "loss": 0.5957952922112063, "val_miou": 0.3636887214178109, "best_val_miou": 0.3636887214178109, "seconds": 13.808253148104995, "peak_allocated_gb": 2.380299264} +temporal_cnv2_k15 {"epoch": 29, "loss": 0.6143260151147842, "val_miou": 0.3554105494813238, "best_val_miou": 0.3636887214178109, "seconds": 13.896796493791044, "peak_allocated_gb": 2.380299264} +temporal_cnv2_k15 {"epoch": 30, "loss": 0.63715340040232, "val_miou": 0.33244603943269424, "best_val_miou": 0.3636887214178109, "seconds": 13.496294331271201, "peak_allocated_gb": 2.380299264} +temporal_cnv2_k15 {"epoch": 31, "loss": 0.5910815306399998, "val_miou": 0.3364069306546021, "best_val_miou": 0.3636887214178109, "seconds": 13.54855339601636, "peak_allocated_gb": 2.380299264} +temporal_cnv2_k15 {"epoch": 32, "loss": 0.5894613042473793, "val_miou": 0.3332941545176964, "best_val_miou": 0.3636887214178109, "seconds": 13.738263197708875, "peak_allocated_gb": 2.380299264} +temporal_cnv2_k15 {"epoch": 33, "loss": 0.5942099917876092, "val_miou": 0.3097462087128109, "best_val_miou": 0.3636887214178109, "seconds": 13.480893058236688, "peak_allocated_gb": 2.380299264} +temporal_cnv2_k15 {"epoch": 34, "loss": 0.537210248018566, "val_miou": 0.3504029399308695, "best_val_miou": 0.3636887214178109, "seconds": 13.680055906996131, "peak_allocated_gb": 2.380299264} +temporal_cnv2_k15 {"epoch": 35, "loss": 0.5320557399015677, "val_miou": 0.3685214435968305, "best_val_miou": 0.3685214435968305, "seconds": 13.394304508809, "peak_allocated_gb": 2.380299264} +temporal_cnv2_k15 {"epoch": 36, "loss": 0.504530140443852, "val_miou": 0.3321547460455028, "best_val_miou": 0.3685214435968305, "seconds": 13.807785930112004, "peak_allocated_gb": 2.380299264} +temporal_cnv2_k15 {"epoch": 37, "loss": 0.5117940675271185, "val_miou": 0.35503995129810845, "best_val_miou": 0.3685214435968305, "seconds": 13.802551227156073, "peak_allocated_gb": 2.380299264} +temporal_cnv2_k15 {"epoch": 38, "loss": 0.49285261568270233, "val_miou": 0.38772576227431155, "best_val_miou": 0.38772576227431155, "seconds": 13.76472912589088, "peak_allocated_gb": 2.380299264} +temporal_cnv2_k15 {"epoch": 39, "loss": 0.5309431247021023, "val_miou": 0.3904789990905776, "best_val_miou": 0.3904789990905776, "seconds": 13.490491030272096, "peak_allocated_gb": 2.380299264} +temporal_cnv2_k15 {"epoch": 40, "loss": 0.4937930707084505, "val_miou": 0.36337356866025305, "best_val_miou": 0.3904789990905776, "seconds": 13.699826906900853, "peak_allocated_gb": 2.380299264} +temporal_cnv2_k15 {"epoch": 41, "loss": 0.4785242523801954, "val_miou": 0.37150433722704457, "best_val_miou": 0.3904789990905776, "seconds": 13.569665648043156, "peak_allocated_gb": 2.380299264} +temporal_cnv2_k15 {"epoch": 42, "loss": 0.48850055940841375, "val_miou": 0.36611515436965447, "best_val_miou": 0.3904789990905776, "seconds": 13.46619728486985, "peak_allocated_gb": 2.380299264} +temporal_cnv2_k15 {"epoch": 43, "loss": 0.4895680115411156, "val_miou": 0.3571103078902586, "best_val_miou": 0.3904789990905776, "seconds": 13.455441081896424, "peak_allocated_gb": 2.380299264} +temporal_cnv2_k15 {"epoch": 44, "loss": 0.49032218009233475, "val_miou": 0.38684605271037786, "best_val_miou": 0.3904789990905776, "seconds": 13.295657174661756, "peak_allocated_gb": 2.380299264} +temporal_cnv2_k15 {"epoch": 45, "loss": 0.4704850621913609, "val_miou": 0.35839675687195277, "best_val_miou": 0.3904789990905776, "seconds": 13.614564565010369, "peak_allocated_gb": 2.380299264} +temporal_cnv2_k15 {"epoch": 46, "loss": 0.4760184864464559, "val_miou": 0.371228982071415, "best_val_miou": 0.3904789990905776, "seconds": 13.199948779772967, "peak_allocated_gb": 2.380299264} +temporal_cnv2_k15 {"epoch": 47, "loss": 0.44469925839650004, "val_miou": 0.3567365328779044, "best_val_miou": 0.3904789990905776, "seconds": 13.426290418021381, "peak_allocated_gb": 2.380299264} +temporal_cnv2_k15 {"epoch": 48, "loss": 0.45134695854626206, "val_miou": 0.33764877879576666, "best_val_miou": 0.3904789990905776, "seconds": 13.041311986744404, "peak_allocated_gb": 2.380299264} +temporal_cnv2_k15 {"epoch": 49, "loss": 0.4474145679881698, "val_miou": 0.37232050829954827, "best_val_miou": 0.3904789990905776, "seconds": 13.647323960904032, "peak_allocated_gb": 2.380299264} +temporal_cnv2_k15 {"epoch": 50, "loss": 0.41787440329790115, "val_miou": 0.35020018866166885, "best_val_miou": 0.3904789990905776, "seconds": 13.509458124171942, "peak_allocated_gb": 2.380299264} +temporal_cnv2_k15 {"epoch": 51, "loss": 0.45511565828009654, "val_miou": 0.38212668694696794, "best_val_miou": 0.3904789990905776, "seconds": 13.721136487089097, "peak_allocated_gb": 2.380299264} +temporal_cnv2_k15 {"epoch": 52, "loss": 0.43188565263622686, "val_miou": 0.3791734349540457, "best_val_miou": 0.3904789990905776, "seconds": 13.55337383178994, "peak_allocated_gb": 2.380299264} +temporal_cnv2_k15 {"epoch": 53, "loss": 0.42459109190263244, "val_miou": 0.36354234650448125, "best_val_miou": 0.3904789990905776, "seconds": 13.869508224073797, "peak_allocated_gb": 2.380299264} +temporal_cnv2_k15 {"epoch": 54, "loss": 0.43840744032671575, "val_miou": 0.373501582895148, "best_val_miou": 0.3904789990905776, "seconds": 13.082489009015262, "peak_allocated_gb": 2.380299264} +temporal_cnv2_k15 {"epoch": 55, "loss": 0.45804720254320846, "val_miou": 0.361828981756612, "best_val_miou": 0.3904789990905776, "seconds": 13.237542775925249, "peak_allocated_gb": 2.380299264} +temporal_cnv2_k15 {"epoch": 56, "loss": 0.40997366685616343, "val_miou": 0.3627262333577352, "best_val_miou": 0.3904789990905776, "seconds": 13.458268593996763, "peak_allocated_gb": 2.380299264} +temporal_cnv2_k15 {"epoch": 57, "loss": 0.4213717854336688, "val_miou": 0.3721418660714853, "best_val_miou": 0.3904789990905776, "seconds": 13.453416449017823, "peak_allocated_gb": 2.380299264} +temporal_cnv2_k15 {"epoch": 58, "loss": 0.4321957418793126, "val_miou": 0.35570328656487793, "best_val_miou": 0.3904789990905776, "seconds": 13.488824413158, "peak_allocated_gb": 2.380299264} +temporal_cnv2_k15 {"epoch": 59, "loss": 0.4161441749648044, "val_miou": 0.38901076832492265, "best_val_miou": 0.3904789990905776, "seconds": 13.731253016274422, "peak_allocated_gb": 2.380299264} +temporal_cnv2_k15 {"epoch": 60, "loss": 0.4116339479622088, "val_miou": 0.3669369274361097, "best_val_miou": 0.3904789990905776, "seconds": 13.633178167976439, "peak_allocated_gb": 2.380299264} +temporal_cnv2_k15 {"epoch": 61, "loss": 0.42189853599196986, "val_miou": 0.36931324188933773, "best_val_miou": 0.3904789990905776, "seconds": 13.263497231062502, "peak_allocated_gb": 2.380299264} +temporal_cnv2_k15 {"epoch": 62, "loss": 0.39733493563375977, "val_miou": 0.37813676362668663, "best_val_miou": 0.3904789990905776, "seconds": 13.410797784104943, "peak_allocated_gb": 2.380299264} +temporal_cnv2_k15 {"epoch": 63, "loss": 0.3981922484542194, "val_miou": 0.377168287996325, "best_val_miou": 0.3904789990905776, "seconds": 13.692010988947004, "peak_allocated_gb": 2.380299264} +temporal_cnv2_k15 {"epoch": 64, "loss": 0.3889436537497922, "val_miou": 0.37298377749190215, "best_val_miou": 0.3904789990905776, "seconds": 13.712437664158642, "peak_allocated_gb": 2.380299264} +temporal_cnv2_k15 {"epoch": 65, "loss": 0.39861742171802017, "val_miou": 0.36828312217926495, "best_val_miou": 0.3904789990905776, "seconds": 13.56138227507472, "peak_allocated_gb": 2.380299264} +temporal_cnv2_k15 {"epoch": 66, "loss": 0.4068991530098413, "val_miou": 0.3746344726368832, "best_val_miou": 0.3904789990905776, "seconds": 13.324922156054527, "peak_allocated_gb": 2.380299264} +temporal_cnv2_k15 {"epoch": 67, "loss": 0.39717778328217956, "val_miou": 0.3807232749175299, "best_val_miou": 0.3904789990905776, "seconds": 13.54477806808427, "peak_allocated_gb": 2.380299264} +temporal_cnv2_k15 {"epoch": 68, "loss": 0.39698566966935206, "val_miou": 0.38139357687347364, "best_val_miou": 0.3904789990905776, "seconds": 13.517519264947623, "peak_allocated_gb": 2.380299264} +temporal_cnv2_k15 {"epoch": 69, "loss": 0.3937823490092629, "val_miou": 0.3677975456270326, "best_val_miou": 0.3904789990905776, "seconds": 13.700494152028114, "peak_allocated_gb": 2.380299264} +temporal_cnv2_k15 {"epoch": 70, "loss": 0.39668749468891246, "val_miou": 0.3781573691349325, "best_val_miou": 0.3904789990905776, "seconds": 13.231530914083123, "peak_allocated_gb": 2.380299264} +temporal_cnv2_k15 {"epoch": 71, "loss": 0.38498816090194804, "val_miou": 0.37586762570143684, "best_val_miou": 0.3904789990905776, "seconds": 13.436808289960027, "peak_allocated_gb": 2.380299264} +temporal_cnv2_k15 {"epoch": 72, "loss": 0.3998635540667333, "val_miou": 0.38812421033276023, "best_val_miou": 0.3904789990905776, "seconds": 13.471585048828274, "peak_allocated_gb": 2.380299264} +temporal_cnv2_k15 {"epoch": 73, "loss": 0.37507739074920354, "val_miou": 0.38925616435672356, "best_val_miou": 0.3904789990905776, "seconds": 13.69690961111337, "peak_allocated_gb": 2.380299264} +temporal_cnv2_k15 {"epoch": 74, "loss": 0.3839217291066521, "val_miou": 0.3847998418938976, "best_val_miou": 0.3904789990905776, "seconds": 13.739520943723619, "peak_allocated_gb": 2.380299264} +temporal_cnv2_k15 {"epoch": 75, "loss": 0.39123163842841197, "val_miou": 0.38126704899836, "best_val_miou": 0.3904789990905776, "seconds": 13.426217093598098, "peak_allocated_gb": 2.380299264} +temporal_cnv2_k15 {"epoch": 76, "loss": 0.4041018427202576, "val_miou": 0.3748426498323964, "best_val_miou": 0.3904789990905776, "seconds": 13.48181535396725, "peak_allocated_gb": 2.380299264} +temporal_cnv2_k15 {"epoch": 77, "loss": 0.4165370381976429, "val_miou": 0.3875007719778921, "best_val_miou": 0.3904789990905776, "seconds": 13.425363724119961, "peak_allocated_gb": 2.380299264} +temporal_cnv2_k15 {"epoch": 78, "loss": 0.3971339538693428, "val_miou": 0.3788202357098747, "best_val_miou": 0.3904789990905776, "seconds": 13.583844714332372, "peak_allocated_gb": 2.380299264} +temporal_cnv2_k15 {"epoch": 79, "loss": 0.37782529819952815, "val_miou": 0.3931897486511736, "best_val_miou": 0.3931897486511736, "seconds": 13.683531185146421, "peak_allocated_gb": 2.380299264} +temporal_cnv2_k15 {"epoch": 80, "loss": 0.40397434328731735, "val_miou": 0.38566244733819266, "best_val_miou": 0.3931897486511736, "seconds": 13.49851506203413, "peak_allocated_gb": 2.380299264} +temporal_cnv2_k15 {"epoch": 81, "loss": 0.3836075361622007, "val_miou": 0.3823281255646319, "best_val_miou": 0.3931897486511736, "seconds": 13.796386412344873, "peak_allocated_gb": 2.380299264} +temporal_cnv2_k15 {"epoch": 82, "loss": 0.38019135084591416, "val_miou": 0.3850056346227364, "best_val_miou": 0.3931897486511736, "seconds": 13.565624788869172, "peak_allocated_gb": 2.380299264} +temporal_cnv2_k15 {"epoch": 83, "loss": 0.3739825506743632, "val_miou": 0.3844031282658023, "best_val_miou": 0.3931897486511736, "seconds": 13.472486826125532, "peak_allocated_gb": 2.380299264} +temporal_cnv2_k15 {"epoch": 84, "loss": 0.3815853905520941, "val_miou": 0.383210547056508, "best_val_miou": 0.3931897486511736, "seconds": 13.385938701219857, "peak_allocated_gb": 2.380299264} +temporal_cnv2_k15 {"epoch": 85, "loss": 0.3990430914257702, "val_miou": 0.3823948073086344, "best_val_miou": 0.3931897486511736, "seconds": 13.313650181982666, "peak_allocated_gb": 2.380299264} +temporal_cnv2_k15 {"epoch": 86, "loss": 0.39540932641217585, "val_miou": 0.38725828191017, "best_val_miou": 0.3931897486511736, "seconds": 13.662261566147208, "peak_allocated_gb": 2.380299264} +temporal_cnv2_k15 {"epoch": 87, "loss": 0.38467154259744446, "val_miou": 0.3858316052856192, "best_val_miou": 0.3931897486511736, "seconds": 13.503503737971187, "peak_allocated_gb": 2.380299264} +temporal_cnv2_k15 {"epoch": 88, "loss": 0.37987179622838374, "val_miou": 0.38552097338965213, "best_val_miou": 0.3931897486511736, "seconds": 13.079137166030705, "peak_allocated_gb": 2.380299264} +temporal_cnv2_k15 {"epoch": 89, "loss": 0.3930589486109583, "val_miou": 0.38746097147777125, "best_val_miou": 0.3931897486511736, "seconds": 13.28481767931953, "peak_allocated_gb": 2.380299264} +temporal_cnv2_k15 {"epoch": 90, "loss": 0.3799683083044855, "val_miou": 0.3842392375588758, "best_val_miou": 0.3931897486511736, "seconds": 13.37459956901148, "peak_allocated_gb": 2.380299264} +temporal_cnv2_k15 {"epoch": 91, "loss": 0.3764655452809836, "val_miou": 0.38725850973236886, "best_val_miou": 0.3931897486511736, "seconds": 13.431813031900674, "peak_allocated_gb": 2.380299264} +temporal_cnv2_k15 {"epoch": 92, "loss": 0.3848059577377219, "val_miou": 0.38704604852032487, "best_val_miou": 0.3931897486511736, "seconds": 13.245288117788732, "peak_allocated_gb": 2.380299264} +temporal_cnv2_k15 {"epoch": 93, "loss": 0.3845237724875149, "val_miou": 0.3883717228378629, "best_val_miou": 0.3931897486511736, "seconds": 13.039657267741859, "peak_allocated_gb": 2.380299264} +temporal_cnv2_k15 {"epoch": 94, "loss": 0.3885929827627383, "val_miou": 0.39076033942341015, "best_val_miou": 0.3931897486511736, "seconds": 13.532367954961956, "peak_allocated_gb": 2.380299264} +temporal_cnv2_k15 {"epoch": 95, "loss": 0.3903474360704422, "val_miou": 0.3892590316062968, "best_val_miou": 0.3931897486511736, "seconds": 13.379086460918188, "peak_allocated_gb": 2.380299264} +temporal_cnv2_k15 {"epoch": 96, "loss": 0.3759121353688993, "val_miou": 0.3904534534394684, "best_val_miou": 0.3931897486511736, "seconds": 13.389318344183266, "peak_allocated_gb": 2.380299264} +temporal_cnv2_k15 {"epoch": 97, "loss": 0.3701847772064962, "val_miou": 0.3904292847608785, "best_val_miou": 0.3931897486511736, "seconds": 13.476439537014812, "peak_allocated_gb": 2.380299264} +temporal_cnv2_k15 {"epoch": 98, "loss": 0.36717589277970164, "val_miou": 0.3913449735773509, "best_val_miou": 0.3931897486511736, "seconds": 13.505879892967641, "peak_allocated_gb": 2.380299264} +temporal_cnv2_k15 {"epoch": 99, "loss": 0.36510542348811503, "val_miou": 0.3904532880780383, "best_val_miou": 0.3931897486511736, "seconds": 13.800404052715749, "peak_allocated_gb": 2.380299264} +temporal_cnv2_k15 {"epoch": 100, "loss": 0.3734886269820364, "val_miou": 0.3901915827608437, "best_val_miou": 0.3931897486511736, "seconds": 13.527518101967871, "peak_allocated_gb": 2.380299264} diff --git a/ablations/10_plateau_breakthrough/workspace/convnext_research_20261010/temporal_cnv2_k7_select.log b/ablations/10_plateau_breakthrough/workspace/convnext_research_20261010/temporal_cnv2_k7_select.log new file mode 100644 index 0000000000000000000000000000000000000000..dfc35933a9689e5344c7d8fca902137b469e1e85 --- /dev/null +++ b/ablations/10_plateau_breakthrough/workspace/convnext_research_20261010/temporal_cnv2_k7_select.log @@ -0,0 +1,3 @@ +/usr/lib/python3/dist-packages/scipy/__init__.py:146: UserWarning: A NumPy version >=1.17.3 and <1.25.0 is required for this version of SciPy (detected version 1.26.4 + warnings.warn(f"A NumPy version >={np_minversion} and <{np_maxversion}" +SELECT temporal_cnv2_k7 0.0 add 0.0 diff --git a/ablations/10_plateau_breakthrough/workspace/convnext_research_20261010/temporal_cnv2_k7_train.log b/ablations/10_plateau_breakthrough/workspace/convnext_research_20261010/temporal_cnv2_k7_train.log new file mode 100644 index 0000000000000000000000000000000000000000..abb439f1bc1d9f25832cbf70121ca031391d8213 --- /dev/null +++ b/ablations/10_plateau_breakthrough/workspace/convnext_research_20261010/temporal_cnv2_k7_train.log @@ -0,0 +1,102 @@ +/usr/lib/python3/dist-packages/scipy/__init__.py:146: UserWarning: A NumPy version >=1.17.3 and <1.25.0 is required for this version of SciPy (detected version 1.26.4 + warnings.warn(f"A NumPy version >={np_minversion} and <{np_maxversion}" +temporal_cnv2_k7 {"epoch": 1, "loss": 2.811934753468162, "val_miou": 0.03259105423044115, "best_val_miou": 0.03259105423044115, "seconds": 14.474717658013105, "peak_allocated_gb": 2.380270592} +temporal_cnv2_k7 {"epoch": 2, "loss": 2.4985978289654383, "val_miou": 0.03836354824542278, "best_val_miou": 0.03836354824542278, "seconds": 13.02526007592678, "peak_allocated_gb": 2.380270592} +temporal_cnv2_k7 {"epoch": 3, "loss": 2.412319867234481, "val_miou": 0.06412016511117703, "best_val_miou": 0.06412016511117703, "seconds": 12.925543594174087, "peak_allocated_gb": 2.380270592} +temporal_cnv2_k7 {"epoch": 4, "loss": 2.218131529657464, "val_miou": 0.06005287087615639, "best_val_miou": 0.06412016511117703, "seconds": 12.700602853205055, "peak_allocated_gb": 2.380270592} +temporal_cnv2_k7 {"epoch": 5, "loss": 2.1057063952872626, "val_miou": 0.13270095288895967, "best_val_miou": 0.13270095288895967, "seconds": 12.947387031745166, "peak_allocated_gb": 2.380270592} +temporal_cnv2_k7 {"epoch": 6, "loss": 1.920314045328843, "val_miou": 0.15139867042359587, "best_val_miou": 0.15139867042359587, "seconds": 13.033991601783782, "peak_allocated_gb": 2.380270592} +temporal_cnv2_k7 {"epoch": 7, "loss": 1.8385815126331229, "val_miou": 0.1610879423391421, "best_val_miou": 0.1610879423391421, "seconds": 13.008204936981201, "peak_allocated_gb": 2.380270592} +temporal_cnv2_k7 {"epoch": 8, "loss": 1.764160090763318, "val_miou": 0.21304830744143788, "best_val_miou": 0.21304830744143788, "seconds": 13.153133924119174, "peak_allocated_gb": 2.380270592} +temporal_cnv2_k7 {"epoch": 9, "loss": 1.6438933697186018, "val_miou": 0.1818941976013514, "best_val_miou": 0.21304830744143788, "seconds": 12.92294156178832, "peak_allocated_gb": 2.380270592} +temporal_cnv2_k7 {"epoch": 10, "loss": 1.566079598508383, "val_miou": 0.22303134048993714, "best_val_miou": 0.22303134048993714, "seconds": 12.907613144721836, "peak_allocated_gb": 2.380270592} +temporal_cnv2_k7 {"epoch": 11, "loss": 1.4630762385694605, "val_miou": 0.21355402993716527, "best_val_miou": 0.22303134048993714, "seconds": 13.295026268810034, "peak_allocated_gb": 2.380270592} +temporal_cnv2_k7 {"epoch": 12, "loss": 1.4688084925475873, "val_miou": 0.2533623385760338, "best_val_miou": 0.2533623385760338, "seconds": 13.041051134001464, "peak_allocated_gb": 2.380270592} +temporal_cnv2_k7 {"epoch": 13, "loss": 1.3785136781240765, "val_miou": 0.22672018019373302, "best_val_miou": 0.2533623385760338, "seconds": 13.297699768096209, "peak_allocated_gb": 2.380270592} +temporal_cnv2_k7 {"epoch": 14, "loss": 1.2727385261341144, "val_miou": 0.2627118380270966, "best_val_miou": 0.2627118380270966, "seconds": 13.346499328035861, "peak_allocated_gb": 2.380270592} +temporal_cnv2_k7 {"epoch": 15, "loss": 1.1604916563159542, "val_miou": 0.2824818061860801, "best_val_miou": 0.2824818061860801, "seconds": 12.983623693231493, "peak_allocated_gb": 2.380270592} +temporal_cnv2_k7 {"epoch": 16, "loss": 1.1432646889435618, "val_miou": 0.3179657493685947, "best_val_miou": 0.3179657493685947, "seconds": 13.016445821151137, "peak_allocated_gb": 2.380270592} +temporal_cnv2_k7 {"epoch": 17, "loss": 1.1277872378888882, "val_miou": 0.3161722908712876, "best_val_miou": 0.3179657493685947, "seconds": 13.04801623383537, "peak_allocated_gb": 2.380270592} +temporal_cnv2_k7 {"epoch": 18, "loss": 1.1008934586455947, "val_miou": 0.29025343666350045, "best_val_miou": 0.3179657493685947, "seconds": 13.084401647094637, "peak_allocated_gb": 2.380270592} +temporal_cnv2_k7 {"epoch": 19, "loss": 1.0625636114885932, "val_miou": 0.29979702665470437, "best_val_miou": 0.3179657493685947, "seconds": 13.109045467805117, "peak_allocated_gb": 2.380270592} +temporal_cnv2_k7 {"epoch": 20, "loss": 0.9545298865751216, "val_miou": 0.2987079470851361, "best_val_miou": 0.3179657493685947, "seconds": 13.13367805397138, "peak_allocated_gb": 2.380270592} +temporal_cnv2_k7 {"epoch": 21, "loss": 0.9269649382484587, "val_miou": 0.3024878296268606, "best_val_miou": 0.3179657493685947, "seconds": 12.825136893894523, "peak_allocated_gb": 2.380270592} +temporal_cnv2_k7 {"epoch": 22, "loss": 0.8964440606926617, "val_miou": 0.3268434182964518, "best_val_miou": 0.3268434182964518, "seconds": 12.97046902216971, "peak_allocated_gb": 2.380270592} +temporal_cnv2_k7 {"epoch": 23, "loss": 0.881178370039714, "val_miou": 0.30841985504402974, "best_val_miou": 0.3268434182964518, "seconds": 12.92986011877656, "peak_allocated_gb": 2.380270592} +temporal_cnv2_k7 {"epoch": 24, "loss": 0.7955590357121668, "val_miou": 0.3511430990443658, "best_val_miou": 0.3511430990443658, "seconds": 13.380660978145897, "peak_allocated_gb": 2.380270592} +temporal_cnv2_k7 {"epoch": 25, "loss": 0.7817149683833122, "val_miou": 0.34598661863526586, "best_val_miou": 0.3511430990443658, "seconds": 13.310976854059845, "peak_allocated_gb": 2.380270592} +temporal_cnv2_k7 {"epoch": 26, "loss": 0.7942119703481072, "val_miou": 0.33494262821424803, "best_val_miou": 0.3511430990443658, "seconds": 12.907561672851443, "peak_allocated_gb": 2.380270592} +temporal_cnv2_k7 {"epoch": 27, "loss": 0.7335837797114724, "val_miou": 0.35561069367024295, "best_val_miou": 0.35561069367024295, "seconds": 12.846101528033614, "peak_allocated_gb": 2.380270592} +temporal_cnv2_k7 {"epoch": 28, "loss": 0.7306551611737201, "val_miou": 0.3635431095033786, "best_val_miou": 0.3635431095033786, "seconds": 13.347974978387356, "peak_allocated_gb": 2.380270592} +temporal_cnv2_k7 {"epoch": 29, "loss": 0.7120941469543859, "val_miou": 0.35162180755062844, "best_val_miou": 0.3635431095033786, "seconds": 13.322966111823916, "peak_allocated_gb": 2.380270592} +temporal_cnv2_k7 {"epoch": 30, "loss": 0.6603872983863479, "val_miou": 0.30540276404854905, "best_val_miou": 0.3635431095033786, "seconds": 13.00875642709434, "peak_allocated_gb": 2.380270592} +temporal_cnv2_k7 {"epoch": 31, "loss": 0.6398538896127751, "val_miou": 0.30960296331967513, "best_val_miou": 0.3635431095033786, "seconds": 13.209418473299593, "peak_allocated_gb": 2.380270592} +temporal_cnv2_k7 {"epoch": 32, "loss": 0.6681993991920823, "val_miou": 0.3615607701918586, "best_val_miou": 0.3635431095033786, "seconds": 13.21136816777289, "peak_allocated_gb": 2.380270592} +temporal_cnv2_k7 {"epoch": 33, "loss": 0.6515845472091123, "val_miou": 0.3189017419768811, "best_val_miou": 0.3635431095033786, "seconds": 13.098433565814048, "peak_allocated_gb": 2.380270592} +temporal_cnv2_k7 {"epoch": 34, "loss": 0.6124912680763948, "val_miou": 0.3565458431313428, "best_val_miou": 0.3635431095033786, "seconds": 13.094387711025774, "peak_allocated_gb": 2.380270592} +temporal_cnv2_k7 {"epoch": 35, "loss": 0.6026314163678571, "val_miou": 0.3565655835025767, "best_val_miou": 0.3635431095033786, "seconds": 13.108337964862585, "peak_allocated_gb": 2.380270592} +temporal_cnv2_k7 {"epoch": 36, "loss": 0.568521254548901, "val_miou": 0.36182279748651897, "best_val_miou": 0.3635431095033786, "seconds": 13.318483429029584, "peak_allocated_gb": 2.380270592} +temporal_cnv2_k7 {"epoch": 37, "loss": 0.5620784924218529, "val_miou": 0.35550901580794175, "best_val_miou": 0.3635431095033786, "seconds": 13.374920389149338, "peak_allocated_gb": 2.380270592} +temporal_cnv2_k7 {"epoch": 38, "loss": 0.5404776609257648, "val_miou": 0.3726217000401475, "best_val_miou": 0.3726217000401475, "seconds": 12.965537350159138, "peak_allocated_gb": 2.380270592} +temporal_cnv2_k7 {"epoch": 39, "loss": 0.5555238421810301, "val_miou": 0.3605249101582727, "best_val_miou": 0.3726217000401475, "seconds": 12.925191367045045, "peak_allocated_gb": 2.380270592} +temporal_cnv2_k7 {"epoch": 40, "loss": 0.5191819954075312, "val_miou": 0.3612473661714574, "best_val_miou": 0.3726217000401475, "seconds": 13.20363571960479, "peak_allocated_gb": 2.380270592} +temporal_cnv2_k7 {"epoch": 41, "loss": 0.5532692811991039, "val_miou": 0.36419342698744356, "best_val_miou": 0.3726217000401475, "seconds": 13.045701694209129, "peak_allocated_gb": 2.380270592} +temporal_cnv2_k7 {"epoch": 42, "loss": 0.5037533276175198, "val_miou": 0.3641018668341712, "best_val_miou": 0.3726217000401475, "seconds": 13.027034720871598, "peak_allocated_gb": 2.380270592} +temporal_cnv2_k7 {"epoch": 43, "loss": 0.5119780011867222, "val_miou": 0.3493656245282797, "best_val_miou": 0.3726217000401475, "seconds": 12.927520007826388, "peak_allocated_gb": 2.380270592} +temporal_cnv2_k7 {"epoch": 44, "loss": 0.510971203838524, "val_miou": 0.37635924310145746, "best_val_miou": 0.37635924310145746, "seconds": 12.849299333058298, "peak_allocated_gb": 2.380270592} +temporal_cnv2_k7 {"epoch": 45, "loss": 0.4868154059115209, "val_miou": 0.3489932273805634, "best_val_miou": 0.37635924310145746, "seconds": 13.155061011202633, "peak_allocated_gb": 2.380270592} +temporal_cnv2_k7 {"epoch": 46, "loss": 0.5039452992771801, "val_miou": 0.3683302846746596, "best_val_miou": 0.37635924310145746, "seconds": 12.634750047698617, "peak_allocated_gb": 2.380270592} +temporal_cnv2_k7 {"epoch": 47, "loss": 0.45419341482614217, "val_miou": 0.365952460081049, "best_val_miou": 0.37635924310145746, "seconds": 12.901116816792637, "peak_allocated_gb": 2.380270592} +temporal_cnv2_k7 {"epoch": 48, "loss": 0.46907050123340205, "val_miou": 0.34394608747434813, "best_val_miou": 0.37635924310145746, "seconds": 12.783903228119016, "peak_allocated_gb": 2.380270592} +temporal_cnv2_k7 {"epoch": 49, "loss": 0.4663883902524647, "val_miou": 0.35985336488629344, "best_val_miou": 0.37635924310145746, "seconds": 13.104865628294647, "peak_allocated_gb": 2.380270592} +temporal_cnv2_k7 {"epoch": 50, "loss": 0.4325641225043096, "val_miou": 0.36032675709721834, "best_val_miou": 0.37635924310145746, "seconds": 12.862108546774834, "peak_allocated_gb": 2.380270592} +temporal_cnv2_k7 {"epoch": 51, "loss": 0.45935596172746856, "val_miou": 0.38626894713822096, "best_val_miou": 0.38626894713822096, "seconds": 13.153095779940486, "peak_allocated_gb": 2.380270592} +temporal_cnv2_k7 {"epoch": 52, "loss": 0.45962823927402496, "val_miou": 0.35536921374855945, "best_val_miou": 0.38626894713822096, "seconds": 13.164663249161094, "peak_allocated_gb": 2.380270592} +temporal_cnv2_k7 {"epoch": 53, "loss": 0.43639573180361796, "val_miou": 0.3763787962859115, "best_val_miou": 0.38626894713822096, "seconds": 13.367173319216818, "peak_allocated_gb": 2.380270592} +temporal_cnv2_k7 {"epoch": 54, "loss": 0.45197995399173935, "val_miou": 0.37545529644489983, "best_val_miou": 0.38626894713822096, "seconds": 12.828115368261933, "peak_allocated_gb": 2.380270592} +temporal_cnv2_k7 {"epoch": 55, "loss": 0.46425685482589824, "val_miou": 0.3766580509216111, "best_val_miou": 0.38626894713822096, "seconds": 12.685781407169998, "peak_allocated_gb": 2.380270592} +temporal_cnv2_k7 {"epoch": 56, "loss": 0.42391658103779745, "val_miou": 0.3817466536469246, "best_val_miou": 0.38626894713822096, "seconds": 12.939464775845408, "peak_allocated_gb": 2.380270592} +temporal_cnv2_k7 {"epoch": 57, "loss": 0.4360115030094197, "val_miou": 0.3859339142086895, "best_val_miou": 0.38626894713822096, "seconds": 12.778814789839089, "peak_allocated_gb": 2.380270592} +temporal_cnv2_k7 {"epoch": 58, "loss": 0.42805012158657374, "val_miou": 0.3830244623497736, "best_val_miou": 0.38626894713822096, "seconds": 12.788544923998415, "peak_allocated_gb": 2.380270592} +temporal_cnv2_k7 {"epoch": 59, "loss": 0.43026349222973775, "val_miou": 0.36708292212749416, "best_val_miou": 0.38626894713822096, "seconds": 13.295291475951672, "peak_allocated_gb": 2.380270592} +temporal_cnv2_k7 {"epoch": 60, "loss": 0.4228637191025834, "val_miou": 0.3834402334412626, "best_val_miou": 0.38626894713822096, "seconds": 13.08747905632481, "peak_allocated_gb": 2.380270592} +temporal_cnv2_k7 {"epoch": 61, "loss": 0.427839952864145, "val_miou": 0.37386212302038224, "best_val_miou": 0.38626894713822096, "seconds": 12.903076543007046, "peak_allocated_gb": 2.380270592} +temporal_cnv2_k7 {"epoch": 62, "loss": 0.40892163350393895, "val_miou": 0.37859213935248753, "best_val_miou": 0.38626894713822096, "seconds": 12.889184388332069, "peak_allocated_gb": 2.380270592} +temporal_cnv2_k7 {"epoch": 63, "loss": 0.4082036167383194, "val_miou": 0.3850458816331566, "best_val_miou": 0.38626894713822096, "seconds": 13.125948895234615, "peak_allocated_gb": 2.380270592} +temporal_cnv2_k7 {"epoch": 64, "loss": 0.4000321371774924, "val_miou": 0.3795685169560153, "best_val_miou": 0.38626894713822096, "seconds": 13.391910602338612, "peak_allocated_gb": 2.380270592} +temporal_cnv2_k7 {"epoch": 65, "loss": 0.41272674736223725, "val_miou": 0.3832169065700197, "best_val_miou": 0.38626894713822096, "seconds": 13.088619598653167, "peak_allocated_gb": 2.380270592} +temporal_cnv2_k7 {"epoch": 66, "loss": 0.41556491938076523, "val_miou": 0.3789174160614141, "best_val_miou": 0.38626894713822096, "seconds": 12.980451946612448, "peak_allocated_gb": 2.380270592} +temporal_cnv2_k7 {"epoch": 67, "loss": 0.408114151342919, "val_miou": 0.3825047266747244, "best_val_miou": 0.38626894713822096, "seconds": 13.02194728096947, "peak_allocated_gb": 2.380270592} +temporal_cnv2_k7 {"epoch": 68, "loss": 0.3988859124089542, "val_miou": 0.37722492636469146, "best_val_miou": 0.38626894713822096, "seconds": 13.03752631181851, "peak_allocated_gb": 2.380270592} +temporal_cnv2_k7 {"epoch": 69, "loss": 0.3956905866139813, "val_miou": 0.3806688642442269, "best_val_miou": 0.38626894713822096, "seconds": 12.996865841094404, "peak_allocated_gb": 2.380270592} +temporal_cnv2_k7 {"epoch": 70, "loss": 0.40450737115583923, "val_miou": 0.3812543800545847, "best_val_miou": 0.38626894713822096, "seconds": 12.564564633183181, "peak_allocated_gb": 2.380270592} +temporal_cnv2_k7 {"epoch": 71, "loss": 0.386772715731671, "val_miou": 0.3862321848662108, "best_val_miou": 0.38626894713822096, "seconds": 12.951855098828673, "peak_allocated_gb": 2.380270592} +temporal_cnv2_k7 {"epoch": 72, "loss": 0.39960124422060816, "val_miou": 0.39507662565226265, "best_val_miou": 0.39507662565226265, "seconds": 12.889916499145329, "peak_allocated_gb": 2.380270592} +temporal_cnv2_k7 {"epoch": 73, "loss": 0.3833079934120178, "val_miou": 0.40321619164025735, "best_val_miou": 0.40321619164025735, "seconds": 13.126093720085919, "peak_allocated_gb": 2.380270592} +temporal_cnv2_k7 {"epoch": 74, "loss": 0.40294508675211355, "val_miou": 0.3804039038921243, "best_val_miou": 0.40321619164025735, "seconds": 13.082349495962262, "peak_allocated_gb": 2.380270592} +temporal_cnv2_k7 {"epoch": 75, "loss": 0.3979687973072654, "val_miou": 0.3878300769219514, "best_val_miou": 0.40321619164025735, "seconds": 13.056732122320682, "peak_allocated_gb": 2.380270592} +temporal_cnv2_k7 {"epoch": 76, "loss": 0.4085945130178803, "val_miou": 0.3850276690114032, "best_val_miou": 0.40321619164025735, "seconds": 12.882775222416967, "peak_allocated_gb": 2.380270592} +temporal_cnv2_k7 {"epoch": 77, "loss": 0.41245612855020325, "val_miou": 0.392681329327788, "best_val_miou": 0.40321619164025735, "seconds": 13.06046897219494, "peak_allocated_gb": 2.380270592} +temporal_cnv2_k7 {"epoch": 78, "loss": 0.39333252098999527, "val_miou": 0.3879390787484447, "best_val_miou": 0.40321619164025735, "seconds": 13.179491528775543, "peak_allocated_gb": 2.380270592} +temporal_cnv2_k7 {"epoch": 79, "loss": 0.38490294743525355, "val_miou": 0.39989768295140027, "best_val_miou": 0.40321619164025735, "seconds": 13.241568802390248, "peak_allocated_gb": 2.380270592} +temporal_cnv2_k7 {"epoch": 80, "loss": 0.4023488481578074, "val_miou": 0.3837855131836521, "best_val_miou": 0.40321619164025735, "seconds": 13.007493528071791, "peak_allocated_gb": 2.380270592} +temporal_cnv2_k7 {"epoch": 81, "loss": 0.3902544775291493, "val_miou": 0.3899030659138898, "best_val_miou": 0.40321619164025735, "seconds": 13.362744816113263, "peak_allocated_gb": 2.380270592} +temporal_cnv2_k7 {"epoch": 82, "loss": 0.38771995745207133, "val_miou": 0.3878137224356105, "best_val_miou": 0.40321619164025735, "seconds": 13.078103974927217, "peak_allocated_gb": 2.380270592} +temporal_cnv2_k7 {"epoch": 83, "loss": 0.37977254625998047, "val_miou": 0.3866925111994541, "best_val_miou": 0.40321619164025735, "seconds": 12.980767128057778, "peak_allocated_gb": 2.380270592} +temporal_cnv2_k7 {"epoch": 84, "loss": 0.3840194944488375, "val_miou": 0.393895518632717, "best_val_miou": 0.40321619164025735, "seconds": 13.08129876665771, "peak_allocated_gb": 2.380270592} +temporal_cnv2_k7 {"epoch": 85, "loss": 0.41094198587693664, "val_miou": 0.3984539290738567, "best_val_miou": 0.40321619164025735, "seconds": 12.892282141838223, "peak_allocated_gb": 2.380270592} +temporal_cnv2_k7 {"epoch": 86, "loss": 0.3881188595765515, "val_miou": 0.39704293917588385, "best_val_miou": 0.40321619164025735, "seconds": 13.141969793941826, "peak_allocated_gb": 2.380270592} +temporal_cnv2_k7 {"epoch": 87, "loss": 0.3898242453211232, "val_miou": 0.3942595302166867, "best_val_miou": 0.40321619164025735, "seconds": 13.097094242926687, "peak_allocated_gb": 2.380270592} +temporal_cnv2_k7 {"epoch": 88, "loss": 0.3879254875998748, "val_miou": 0.3999026169392432, "best_val_miou": 0.40321619164025735, "seconds": 12.664102389942855, "peak_allocated_gb": 2.380270592} +temporal_cnv2_k7 {"epoch": 89, "loss": 0.38863624867640045, "val_miou": 0.3960628847839514, "best_val_miou": 0.40321619164025735, "seconds": 12.871159819886088, "peak_allocated_gb": 2.380270592} +temporal_cnv2_k7 {"epoch": 90, "loss": 0.38168902263829585, "val_miou": 0.39000550323909683, "best_val_miou": 0.40321619164025735, "seconds": 12.888265438843518, "peak_allocated_gb": 2.380270592} +temporal_cnv2_k7 {"epoch": 91, "loss": 0.3799481442884395, "val_miou": 0.3925137624276072, "best_val_miou": 0.40321619164025735, "seconds": 13.093043930828571, "peak_allocated_gb": 2.380270592} +temporal_cnv2_k7 {"epoch": 92, "loss": 0.3878365311967699, "val_miou": 0.3914085803643466, "best_val_miou": 0.40321619164025735, "seconds": 13.079036821611226, "peak_allocated_gb": 2.380270592} +temporal_cnv2_k7 {"epoch": 93, "loss": 0.38957263019524124, "val_miou": 0.3897295529552862, "best_val_miou": 0.40321619164025735, "seconds": 12.743321175221354, "peak_allocated_gb": 2.380270592} +temporal_cnv2_k7 {"epoch": 94, "loss": 0.38427816292172984, "val_miou": 0.3911465493686151, "best_val_miou": 0.40321619164025735, "seconds": 13.359041494317353, "peak_allocated_gb": 2.380270592} +temporal_cnv2_k7 {"epoch": 95, "loss": 0.3918049182546766, "val_miou": 0.3928260310319629, "best_val_miou": 0.40321619164025735, "seconds": 13.097550651058555, "peak_allocated_gb": 2.380270592} +temporal_cnv2_k7 {"epoch": 96, "loss": 0.38242390751838684, "val_miou": 0.3941546719560925, "best_val_miou": 0.40321619164025735, "seconds": 13.061964008957148, "peak_allocated_gb": 2.380270592} +temporal_cnv2_k7 {"epoch": 97, "loss": 0.37777920537873316, "val_miou": 0.39401673253625014, "best_val_miou": 0.40321619164025735, "seconds": 13.047699637711048, "peak_allocated_gb": 2.380270592} +temporal_cnv2_k7 {"epoch": 98, "loss": 0.3758382122767599, "val_miou": 0.39573824366479704, "best_val_miou": 0.40321619164025735, "seconds": 13.057694629300386, "peak_allocated_gb": 2.380270592} +temporal_cnv2_k7 {"epoch": 99, "loss": 0.3760234278283621, "val_miou": 0.3944061700885063, "best_val_miou": 0.40321619164025735, "seconds": 13.309580308850855, "peak_allocated_gb": 2.380270592} +temporal_cnv2_k7 {"epoch": 100, "loss": 0.3748102658673337, "val_miou": 0.3946397203529283, "best_val_miou": 0.40321619164025735, "seconds": 13.108439072035253, "peak_allocated_gb": 2.380270592} diff --git a/ablations/10_plateau_breakthrough/workspace/convnext_research_20261010/test_labels.npy b/ablations/10_plateau_breakthrough/workspace/convnext_research_20261010/test_labels.npy new file mode 100644 index 0000000000000000000000000000000000000000..80905c2309be6f80f806830d9e50b385d5115d45 --- /dev/null +++ b/ablations/10_plateau_breakthrough/workspace/convnext_research_20261010/test_labels.npy @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:27684b0b3a024a48f2863f40fec5771045e017fc879508be860099a25c9e507f +size 7897216 diff --git a/ablations/10_plateau_breakthrough/workspace/convnext_research_20261010/test_reference_cache.json b/ablations/10_plateau_breakthrough/workspace/convnext_research_20261010/test_reference_cache.json new file mode 100644 index 0000000000000000000000000000000000000000..06b573c46bff8b2088411b730cf20510522f6c91 --- /dev/null +++ b/ablations/10_plateau_breakthrough/workspace/convnext_research_20261010/test_reference_cache.json @@ -0,0 +1,476 @@ +{ + "created_at": "2026-10-10T14:30:22.482776+00:00", + "patches": 482, + "baseline": { + "miou": 0.49455547330691263, + "oa": 0.8109266736579659, + "macro_f1": 0.6234136021853756, + "kappa": 0.7642966739749818, + "per_class_iou": [ + 0.8061330522981268, + 0.7198486670090578, + 0.8757351877577422, + 0.46213693236161063, + 0.8703389461776095, + 0.38416520104311963, + 0.4490553274645572, + 0.6216216216216216, + 0.7901944411308601, + 0.07114146695276376, + 0.5587868716244287, + 0.3175281724644782, + 0.4373326486446833, + 0.2655897022970766, + 0.6168043633350977, + 0.28662647573048294, + 0.0918118400487935, + 0.27714760156231727 + ], + "confusion_matrix": [ + [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + [ + 0, + 1311069, + 6756, + 8420, + 815, + 744, + 883, + 2246, + 19285, + 602, + 381, + 3742, + 6998, + 405, + 29504, + 1126, + 71312, + 1029, + 686, + 0 + ], + [ + 0, + 12671, + 493367, + 5115, + 3930, + 1130, + 1764, + 172, + 746, + 546, + 21217, + 15339, + 437, + 131, + 1045, + 166, + 699, + 2161, + 44, + 0 + ], + [ + 0, + 17785, + 2752, + 641744, + 302, + 960, + 172, + 3539, + 862, + 3810, + 169, + 19, + 2132, + 202, + 3012, + 4846, + 607, + 129, + 5247, + 0 + ], + [ + 0, + 9412, + 46049, + 1786, + 82625, + 1310, + 4247, + 55, + 196, + 62, + 7994, + 4414, + 287, + 376, + 482, + 80, + 252, + 3761, + 4, + 0 + ], + [ + 0, + 2675, + 1166, + 868, + 380, + 120018, + 262, + 124, + 19, + 220, + 688, + 194, + 22, + 35, + 1476, + 29, + 106, + 837, + 0, + 0 + ], + [ + 0, + 4040, + 7283, + 711, + 3621, + 289, + 25338, + 175, + 883, + 118, + 2677, + 5012, + 146, + 454, + 1986, + 330, + 163, + 536, + 0, + 0 + ], + [ + 0, + 1538, + 141, + 3611, + 17, + 249, + 89, + 47797, + 7620, + 3775, + 49, + 378, + 1239, + 1298, + 2624, + 9685, + 632, + 168, + 1023, + 0 + ], + [ + 0, + 18456, + 124, + 4622, + 0, + 0, + 17, + 1317, + 151754, + 0, + 1, + 338, + 854, + 23, + 403, + 328, + 9076, + 0, + 164, + 0 + ], + [ + 0, + 482, + 193, + 1058, + 35, + 123, + 379, + 620, + 116, + 66242, + 0, + 28, + 795, + 26, + 446, + 416, + 71, + 2, + 15, + 0 + ], + [ + 0, + 3092, + 44739, + 412, + 1763, + 216, + 156, + 5, + 11, + 5, + 7062, + 21, + 6, + 0, + 299, + 8, + 83, + 484, + 0, + 0 + ], + [ + 0, + 1322, + 2401, + 20, + 0, + 0, + 1773, + 184, + 1235, + 0, + 143, + 60525, + 38, + 0, + 1508, + 0, + 693, + 4, + 114, + 0 + ], + [ + 0, + 3196, + 123, + 4634, + 46, + 7, + 910, + 9697, + 3978, + 1955, + 63, + 3941, + 25923, + 639, + 1593, + 517, + 2180, + 171, + 1142, + 0 + ], + [ + 0, + 589, + 140, + 1406, + 6, + 31, + 92, + 2996, + 519, + 719, + 7, + 314, + 2523, + 11923, + 406, + 408, + 473, + 9, + 52, + 0 + ], + [ + 0, + 57524, + 1032, + 1194, + 723, + 333, + 1050, + 1045, + 7046, + 405, + 646, + 1114, + 551, + 254, + 47497, + 318, + 6554, + 377, + 131, + 0 + ], + [ + 0, + 1525, + 170, + 6485, + 90, + 129, + 5, + 653, + 17, + 376, + 8, + 2255, + 478, + 3, + 400, + 53604, + 52, + 13, + 2053, + 0 + ], + [ + 0, + 12728, + 331, + 778, + 2, + 0, + 34, + 422, + 10506, + 48, + 33, + 1127, + 965, + 73, + 710, + 23, + 49018, + 5, + 56, + 0 + ], + [ + 0, + 8636, + 11253, + 1214, + 3447, + 3258, + 322, + 34, + 20, + 20, + 6827, + 1, + 610, + 689, + 1495, + 80, + 44, + 4817, + 2, + 0 + ], + [ + 0, + 4694, + 43, + 2183, + 220, + 0, + 39, + 1222, + 3590, + 122, + 2, + 118, + 2844, + 42, + 3653, + 230, + 1161, + 11, + 11850, + 0 + ], + [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ] + ] + }, + "spatial_chunk": 32, + "temporal_chunk": 4096, + "prediction_storage": "float32 recommended-system probabilities; labels uint8", + "baseline_assertion_passed": true +} \ No newline at end of file diff --git a/ablations/10_plateau_breakthrough/workspace/convnext_research_20261010/validation_reference.npz b/ablations/10_plateau_breakthrough/workspace/convnext_research_20261010/validation_reference.npz new file mode 100644 index 0000000000000000000000000000000000000000..07fe0fad8bf60dc6fe560680f98a3a2fc450b71e --- /dev/null +++ b/ablations/10_plateau_breakthrough/workspace/convnext_research_20261010/validation_reference.npz @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:eaa75d7664e2302dbde0030f189353e3da8ee8ff85b4c3672daec97a2f97cb50 +size 23037219 diff --git a/ablations/10_plateau_breakthrough/workspace/convnext_research_models.py b/ablations/10_plateau_breakthrough/workspace/convnext_research_models.py new file mode 100644 index 0000000000000000000000000000000000000000..7f531d0f44cbbe1c9420cc39ec60b4e169aca430 --- /dev/null +++ b/ablations/10_plateau_breakthrough/workspace/convnext_research_models.py @@ -0,0 +1,125 @@ +"""PASTIS adaptations of ConvNeXt blocks; not official ImageNet model reproductions. + +All models consume the unchanged ten-band index-position input. Temporal +adaptations keep every observation; spatial adaptations retain full resolution. +No external pretrained weights. Original pretrained model is used only in the +existing frozen reference ensemble by the evaluator. +Sources: ConvNeXt (CVPR2022), ConvNeXt V2 (CVPR2023), InceptionNeXt (CVPR2024). +""" +import torch +from torch import nn +from torch.nn import functional as F +from temporal_specialist import TemporalCNN +from top5_models import valid_from_index_positions + +KINDS = ['cnn_control', 'temporal_cnv1_k3', 'temporal_cnv1_k7', + 'temporal_cnv2_k7', 'temporal_cnv2_k15', + 'spatial_cnv1', 'spatial_cnv2', 'spatial_inception'] + + +class GRN(nn.Module): + """Channel-last response normalization; norm over valid temporal/spatial axes.""" + def __init__(self, dim): + super().__init__() + self.gamma = nn.Parameter(torch.zeros(dim)) + self.beta = nn.Parameter(torch.zeros(dim)) + + def forward(self, x, valid=None): + values = x.float() if valid is None else x.float() * valid + axes = tuple(range(1, x.ndim - 1)) + response = torch.linalg.vector_norm(values, dim=axes, keepdim=True) + relative = response / (response.mean(dim=-1, keepdim=True) + 1e-6) + out = x + self.gamma * x * relative.to(x.dtype) + self.beta + return out if valid is None else out * valid + + +class TemporalBlock(nn.Module): + def __init__(self, dim=64, kernel=7, version=2): + super().__init__() + self.dw = nn.Conv1d(dim, dim, kernel, padding=kernel//2, groups=dim) + self.norm = nn.LayerNorm(dim, eps=1e-6) + self.expand = nn.Linear(dim, 4*dim) + self.grn = GRN(4*dim) if version == 2 else None + self.project = nn.Linear(4*dim, dim) + self.scale = nn.Parameter(torch.full((dim,), 1e-6)) if version == 1 else None + + def forward(self, x, valid): + z = self.dw((x*valid).transpose(1,2)).transpose(1,2) + z = F.gelu(self.expand(self.norm(z))) * valid + if self.grn is not None: + z = self.grn(z, valid) + z = self.project(z) + if self.scale is not None: + z = z * self.scale + return (x + z) * valid + + +class InceptionDW(nn.Module): + """Identity plus square/horizontal/vertical channel branches, ratio1/8.""" + def __init__(self, dim): + super().__init__() + branch = dim//8 + self.splits = [dim-3*branch, branch, branch, branch] + self.square = nn.Conv2d(branch,branch,3,padding=1,groups=branch) + self.horizontal = nn.Conv2d(branch,branch,(1,11),padding=(0,5),groups=branch) + self.vertical = nn.Conv2d(branch,branch,(11,1),padding=(5,0),groups=branch) + + def forward(self,x): + identity,s,h,v=torch.split(x,self.splits,dim=1) + return torch.cat([identity,self.square(s),self.horizontal(h),self.vertical(v)],dim=1) + + +class SpatialBlock(nn.Module): + def __init__(self, dim=64, kind='spatial_cnv2'): + super().__init__() + self.dw = InceptionDW(dim) if kind=='spatial_inception' else nn.Conv2d(dim,dim,7,padding=3,groups=dim) + self.norm=nn.LayerNorm(dim,eps=1e-6) + self.expand=nn.Linear(dim,4*dim) + self.grn=GRN(4*dim) if kind=='spatial_cnv2' else None + self.project=nn.Linear(4*dim,dim) + self.scale=nn.Parameter(torch.full((dim,),1e-6)) if kind!='spatial_cnv2' else None + + def forward(self,x): + z=self.dw(x).permute(0,2,3,1) + z=F.gelu(self.expand(self.norm(z))) + if self.grn is not None:z=self.grn(z) + z=self.project(z) + if self.scale is not None:z=z*self.scale + return x+z.permute(0,3,1,2) + + +class TemporalConvNeXt(nn.Module): + def __init__(self, kind, classes=18): + super().__init__() + version=1 if 'cnv1' in kind and kind.startswith('temporal') else 2 + kernel=15 if kind.endswith('k15') else (3 if kind.endswith('k3') else 7) + self.input=nn.Linear(10,64) + self.blocks=nn.ModuleList([TemporalBlock(64,kernel,version) for _ in range(4)]) + self.spatial=kind.startswith('spatial') + if self.spatial: + self.project=nn.Conv2d(128,64,1) + self.spatial_blocks=nn.Sequential(*[SpatialBlock(64,kind) for _ in range(2)]) + self.head=nn.Conv2d(64,classes,1) + else: + self.head=nn.Sequential(nn.Linear(128,64),nn.GELU(),nn.Linear(64,classes)) + + def forward(self,x,pos): + b,t,c,h,w=x.shape + valid=valid_from_index_positions(pos)[:,None,None].expand(b,h,w,t).reshape(-1,t,1) + pixels=x.permute(0,3,4,1,2).reshape(-1,t,c) + parts=[] + for start in range(0,len(pixels),1024): + mask=valid[start:start+1024] + z=self.input(pixels[start:start+1024])*mask + for block in self.blocks:z=block(z,mask) + mean=z.sum(1)/mask.sum(1).clamp_min(1) + maximum=z.masked_fill(~mask,torch.finfo(z.dtype).min).amax(1) + pooled=torch.cat([mean,maximum],dim=-1) + parts.append(pooled if self.spatial else self.head(pooled)) + out=torch.cat(parts).reshape(b,h,w,-1).permute(0,3,1,2) + return self.head(self.spatial_blocks(self.project(out))) if self.spatial else out + + +def make_model(kind,classes=18): + if kind not in KINDS:raise ValueError(kind) + return TemporalCNN(classes) if kind=='cnn_control' else TemporalConvNeXt(kind,classes) diff --git a/ablations/10_plateau_breakthrough/workspace/covariance_research.py b/ablations/10_plateau_breakthrough/workspace/covariance_research.py new file mode 100644 index 0000000000000000000000000000000000000000..dfa2581e03676ecf5282e2e0624c7dc46cd3ae38 --- /dev/null +++ b/ablations/10_plateau_breakthrough/workspace/covariance_research.py @@ -0,0 +1,166 @@ +"""Follow up the validation-only diagonal-QDA signal with structured covariances. + +CPU fitting can overlap the CNN queue. GPU testing waits for that live service +to finish, and all statistical parameters use only the original training crops. +""" +import argparse +import fcntl +import json +import subprocess +import sys +import time +from pathlib import Path +import numpy as np +import torch +from sklearn.cluster import MiniBatchKMeans +import ceiling_research as E +from plateau_probes import metrics_cm, write_json + +ROOT=Path(__file__).resolve().parent +OUT=ROOT/'covariance_research_20261010' +KINDS=['lowrank_qda64','lowrank_qda128','cluster_gaussian_shared','cluster_gaussian_diagonal'] + + +def predict_scores(features,p): + x=(E.feature_rows(features,0)-p['mean'])/p['std'] + if str(p['type'])=='lowrank_qda': + x=(x-p['pca_center'])@p['projection'] + inv=p['inverse'];centers=p['centers'] + out=[] + for c in range(18): + d=x-centers[c] + out.append(-.5*((d@inv[c])*d).sum(1)+p['bias'][c]) + return np.stack(out,1) + # Three Gaussian components per crop class; use stable, equal-weight mixture. + scores=[] + for c in range(18): + inv=p['inverse'][c];centers=p['centers'][c] + z=-.5*(x*x)@inv.T+x@(centers*inv).T+p['bias'][c] + peak=z.max(1,keepdims=True) + scores.append(peak[:,0]+np.log(np.exp(z-peak).mean(1).clip(1e-30))) + return np.stack(scores,1) + + +def predict(features,params): + # Bounded temporary memory for whole-patch inference. + return np.concatenate([E.softmax(predict_scores(features[i:i+4096],params),float(params['temperature'])) + for i in range(0,len(features),4096)]) + + +def setup(): + E.OUT=OUT;E.READOUTS=KINDS;E.KINDS=[];E.readout_predict=predict;E.setup() + + +def fit(name): + dest=E.folder(name);dest.mkdir(exist_ok=True) + tf=np.load(E.FEATURES/'train/features.npy',mmap_mode='r') + vf=np.load(E.FEATURES/'val/features.npy',mmap_mode='r') + labels=np.load(E.FEATURES/'train/labels.npy');take=(labels>0)&(labels<19);y=labels[take].astype(np.int64)-1 + raw=E.feature_rows(tf,0)[take];mean=raw.mean(0);std=raw.std(0).clip(.01);x=(raw-mean)/std + base=np.load(OUT/'validation_reference.npz');v=(E.feature_rows(vf,0)-mean)/std + assert np.array_equal(base['labels'],np.load(E.FEATURES/'val/labels.npy')) + parameter_sets=[] + if name.startswith('lowrank'): + dim=int(name.rsplit('qda',1)[-1]);center=x.mean(0) + _,vectors=np.linalg.eigh(((x-center).T@(x-center)/len(x)).astype(np.float64)) + projection=vectors[:,-dim:].astype(np.float32);xp=(x-center)@projection + centers=np.stack([xp[y==c].mean(0) for c in range(18)]) + cov=np.stack([np.cov(xp[y==c],rowvar=False,bias=True) for c in range(18)]) + counts=np.bincount(y,minlength=18);pooled=(cov*counts[:,None,None]).sum(0)/len(x) + scale=np.trace(pooled)/dim + for shrink in [.5,.9]: + # Most covariance is pooled; ridge prevents singular rare-class matrices. + matrices=(1-shrink)*cov+shrink*pooled[None]+.05*scale*np.eye(dim)[None] + inverse=np.linalg.inv(matrices).astype(np.float32) + sign,logdet=np.linalg.slogdet(matrices);assert (sign>0).all() + p={'type':'lowrank_qda','mean':mean,'std':std,'pca_center':center,'projection':projection, + 'centers':centers,'inverse':inverse,'bias':(-.5*logdet).astype(np.float32)} + parameter_sets.append((p,{'components':dim,'covariance_shrinkage':shrink,'ridge_fraction':.05})) + else: + centers=[];variances=[] + pooled=np.stack([x[y==c].var(0) for c in range(18)]).mean(0) + for c in range(18): + xc=x[y==c] + km=MiniBatchKMeans(n_clusters=3,n_init=3,batch_size=2048,max_iter=100,random_state=3407).fit(xc) + z=km.predict(xc) + centers.append(np.stack([xc[z==k].mean(0) if (z==k).any() else km.cluster_centers_[k] for k in range(3)])) + variances.append(np.stack([xc[z==k].var(0) if (z==k).sum()>1 else pooled for k in range(3)])) + centers=np.array(centers);variances=np.array(variances) + for shrink in [.5,.9]: + var=((1-shrink)*variances+shrink*pooled[None,None]).clip(.05) + if name.endswith('_shared'):var=np.broadcast_to(pooled.clip(.05),var.shape).copy() + inverse=1/var;bias=-.5*((centers*centers*inverse).sum(-1)+np.log(var).sum(-1)) + p={'type':'cluster_gaussian','mean':mean,'std':std,'centers':centers,'inverse':inverse,'bias':bias} + parameter_sets.append((p,{'clusters_per_class':3,'variance_shrinkage':shrink,'class_prior':'uniform','mixture_prior':'uniform'})) + if name.endswith('_shared'):break + best=None;records=[] + for params,settings in parameter_sets: + # Scores computed once per covariance, calibration evaluated cheaply. + scores=np.concatenate([predict_scores(vf[i:i+4096],params) for i in range(0,len(vf),4096)]) + for temperature in [4.,16.,64.]: + candidate=E.softmax(scores,temperature) + for alpha in E.ALPHAS: + metric=metrics_cm(E.R.cm_for(base['labels'],((1-alpha)*base['recommended']+alpha*candidate).argmax(-1))) + row=dict(settings,temperature=temperature,alpha=alpha,miou=metric['miou']);records.append(row) + if best is None or row['miou']>best[0]: + best=(row['miou'],dict(params,temperature=temperature),candidate.copy(), + {'alpha':alpha,'mode':'add','metrics':metric},row) + _,params,candidate,chosen,settings=best + np.savez(dest/'readout.npz',**params);np.save(dest/'validation_probabilities.npy',candidate) + assert np.allclose(predict(vf[:128],params),candidate[:128],atol=3e-6) + write_json(dest/'selection.json',{'kind':name,'chosen':chosen,'settings':settings,'records':records, + 'standalone':metrics_cm(E.R.cm_for(base['labels'],candidate.argmax(-1))), + 'delta_val_pp':100*(chosen['metrics']['miou']-E.BASE_VAL),'seed':3407, + 'train_pixels':int(take.sum()),'selection_split':'validation','test_used_for_selection':False}) + print('COVARIANCE RESULT',name,chosen['metrics']['miou'],chosen['alpha'],flush=True) + + +def test_after_gpu_queue(): + promotion=json.loads((OUT/'promotion.json').read_text()) + if not promotion['selected']: + E.test() + write_json(OUT/'gpu_wait.json',{'status':'not_needed_no_validation_promotion','finished':E.R.now()}) + return + write_json(OUT/'gpu_wait.json',{'status':'waiting','unit':'tsr-ceiling-research.service','started':E.R.now()}) + while True: + result=subprocess.run(['systemctl','--user','show','tsr-ceiling-research.service', + '--property=ActiveState,SubState,MainPID'],capture_output=True,text=True) + if result.returncode: + raise RuntimeError('Cannot establish live GPU queue state: '+result.stderr) + status=dict(line.split('=',1) for line in result.stdout.splitlines() if '=' in line) + if status.get('ActiveState') not in ['active','activating','deactivating']: + break + write_json(OUT/'gpu_wait.json',{'status':'waiting','checked_at':E.R.now(),'live_unit':status}) + time.sleep(20) + write_json(OUT/'gpu_wait.json',{'status':'running_test','checked_at':E.R.now(),'prior_unit':status}) + E.test() + write_json(OUT/'gpu_wait.json',{'status':'completed','finished':E.R.now()}) + + +def queue(): + lock=(OUT/'queue.lock').open('w');fcntl.flock(lock,fcntl.LOCK_EX|fcntl.LOCK_NB) + manifest=OUT/'protected_hashes.json' + if not manifest.exists():write_json(manifest,E.R.protected_hashes()) + jobs=[(name,['fit','--kind',name]) for name in KINDS]+[('freeze_promotion',['promote']),('test_after_cnn_queue',['test'])] + path=OUT/'status.json';state=json.loads(path.read_text()) if path.exists() else {} + for n,args in jobs:state.setdefault(n,{'status':'queued','arguments':args}) + write_json(path,state) + for n,args in jobs: + if state[n]['status']=='completed':continue + assert E.R.protected_hashes()==json.loads(manifest.read_text()) + state[n].update(status='running',started=E.R.now());write_json(path,state);start=time.monotonic() + with (OUT/(n+'.log')).open('a') as log: + rc=subprocess.run([sys.executable,'-u',__file__,*args],cwd=ROOT,stdout=log,stderr=subprocess.STDOUT).returncode + state[n].update(status='completed' if rc==0 else 'failed',returncode=rc,ended=E.R.now(),seconds=time.monotonic()-start) + write_json(path,state);E.report();print('JOB END',n,rc,flush=True) + if rc:raise RuntimeError('Failed '+n) + write_json(OUT/'completion.json',{'finished':E.R.now(),'jobs':state}) + + +if __name__=='__main__': + parser=argparse.ArgumentParser();parser.add_argument('action',choices=['fit','promote','test','queue']);parser.add_argument('--kind',choices=KINDS) + args=parser.parse_args();setup() + if args.action=='fit':fit(args.kind) + elif args.action=='promote':E.promotion() + elif args.action=='test':test_after_gpu_queue() + else:queue() diff --git a/ablations/10_plateau_breakthrough/workspace/covariance_research_20261010/32X32_cluster_gaussian_diagonal_seed3407/readout.npz b/ablations/10_plateau_breakthrough/workspace/covariance_research_20261010/32X32_cluster_gaussian_diagonal_seed3407/readout.npz new file mode 100644 index 0000000000000000000000000000000000000000..5b5d8a44600a6f0eba1e583f742f9b5c725fde8c --- /dev/null +++ b/ablations/10_plateau_breakthrough/workspace/covariance_research_20261010/32X32_cluster_gaussian_diagonal_seed3407/readout.npz @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:97dac5f043b00924493e02820e9ab645c79c5fc443964f5b298ff1c262643149 +size 227294 diff --git a/ablations/10_plateau_breakthrough/workspace/covariance_research_20261010/32X32_cluster_gaussian_diagonal_seed3407/selection.json b/ablations/10_plateau_breakthrough/workspace/covariance_research_20261010/32X32_cluster_gaussian_diagonal_seed3407/selection.json new file mode 100644 index 0000000000000000000000000000000000000000..0a616bee483df8ed7c748ab00a587653feb2fa59 --- /dev/null +++ b/ablations/10_plateau_breakthrough/workspace/covariance_research_20261010/32X32_cluster_gaussian_diagonal_seed3407/selection.json @@ -0,0 +1,1175 @@ +{ + "kind": "cluster_gaussian_diagonal", + "chosen": { + "alpha": 0.0, + "mode": "add", + "metrics": { + "miou": 0.5332740800605796, + "oa": 0.7963389423849359, + "macro_f1": 0.6451293954553919, + "kappa": 0.7736132711613496, + "per_class_iou": [ + 0.7795474922208744, + 0.7925925925925926, + 0.8279766748033631, + 0.49319148936170215, + 0.8988162802010702, + 0.707221350078493, + 0.6434444610554642, + 0.7169173751907565, + 0.39274116523400193, + 0.19267399267399268, + 0.8740273678561846, + 0.16962166689934385, + 0.12701612903225806, + 0.34473789515806325, + 0.8297185048454084, + 0.525572195535462, + 0.00892325996430696, + 0.27419354838709675 + ], + "confusion_matrix": [ + [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + [ + 0, + 14781, + 111, + 37, + 16, + 9, + 38, + 2, + 458, + 0, + 0, + 171, + 83, + 3, + 771, + 22, + 274, + 2, + 2, + 0 + ], + [ + 0, + 133, + 11770, + 80, + 71, + 15, + 41, + 1, + 0, + 18, + 6, + 186, + 43, + 1, + 94, + 0, + 8, + 2, + 8, + 0 + ], + [ + 0, + 194, + 142, + 12211, + 56, + 8, + 3, + 173, + 0, + 35, + 0, + 0, + 1, + 3, + 147, + 168, + 21, + 2, + 704, + 0 + ], + [ + 0, + 34, + 577, + 16, + 1159, + 39, + 0, + 0, + 0, + 0, + 77, + 0, + 13, + 7, + 0, + 0, + 0, + 124, + 1, + 0 + ], + [ + 0, + 102, + 2, + 19, + 0, + 5543, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 19, + 1, + 0, + 103, + 0, + 0 + ], + [ + 0, + 76, + 77, + 3, + 23, + 0, + 1802, + 17, + 84, + 0, + 0, + 113, + 0, + 0, + 70, + 0, + 5, + 138, + 0, + 0 + ], + [ + 0, + 9, + 0, + 11, + 0, + 0, + 17, + 4304, + 333, + 15, + 0, + 11, + 657, + 0, + 16, + 0, + 2, + 0, + 4, + 0 + ], + [ + 0, + 7, + 0, + 0, + 0, + 0, + 1, + 0, + 6577, + 0, + 0, + 12, + 0, + 0, + 0, + 0, + 1, + 0, + 0, + 0 + ], + [ + 0, + 3, + 19, + 5, + 0, + 1, + 0, + 40, + 0, + 2056, + 0, + 0, + 32, + 7, + 3, + 0, + 0, + 0, + 0, + 0 + ], + [ + 0, + 40, + 862, + 0, + 7, + 0, + 0, + 0, + 0, + 5, + 263, + 0, + 0, + 0, + 5, + 0, + 14, + 6, + 0, + 0 + ], + [ + 0, + 7, + 0, + 0, + 88, + 0, + 25, + 6, + 7, + 0, + 0, + 6515, + 0, + 0, + 12, + 0, + 76, + 0, + 6, + 0 + ], + [ + 0, + 130, + 18, + 188, + 0, + 1, + 8, + 513, + 520, + 2903, + 1, + 98, + 1215, + 175, + 198, + 8, + 18, + 9, + 43, + 0 + ], + [ + 0, + 0, + 41, + 40, + 0, + 0, + 0, + 226, + 7, + 38, + 0, + 56, + 232, + 126, + 17, + 2, + 11, + 0, + 0, + 0 + ], + [ + 0, + 1077, + 17, + 38, + 0, + 0, + 7, + 49, + 327, + 0, + 0, + 50, + 0, + 0, + 1723, + 0, + 216, + 0, + 0, + 0 + ], + [ + 0, + 26, + 6, + 29, + 3, + 4, + 0, + 1, + 0, + 42, + 0, + 0, + 0, + 0, + 0, + 1798, + 0, + 0, + 0, + 0 + ], + [ + 0, + 50, + 0, + 6, + 0, + 0, + 0, + 23, + 839, + 0, + 0, + 9, + 2, + 0, + 40, + 0, + 1860, + 0, + 0, + 0 + ], + [ + 0, + 279, + 501, + 51, + 39, + 301, + 0, + 0, + 0, + 13, + 79, + 0, + 0, + 0, + 0, + 2, + 15, + 15, + 0, + 0 + ], + [ + 0, + 14, + 0, + 357, + 0, + 0, + 0, + 259, + 1, + 0, + 0, + 6, + 54, + 0, + 102, + 55, + 49, + 0, + 629, + 0 + ], + [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ] + ] + } + }, + "settings": { + "clusters_per_class": 3, + "variance_shrinkage": 0.5, + "class_prior": "uniform", + "mixture_prior": "uniform", + "temperature": 4.0, + "alpha": 0.0, + "miou": 0.5332740800605796 + }, + "records": [ + { + "clusters_per_class": 3, + "variance_shrinkage": 0.5, + "class_prior": "uniform", + "mixture_prior": "uniform", + "temperature": 4.0, + "alpha": 0.0, + "miou": 0.5332740800605796 + }, + { + "clusters_per_class": 3, + "variance_shrinkage": 0.5, + "class_prior": "uniform", + "mixture_prior": "uniform", + "temperature": 4.0, + "alpha": 0.1, + "miou": 0.5160646961228577 + }, + { + "clusters_per_class": 3, + "variance_shrinkage": 0.5, + "class_prior": "uniform", + "mixture_prior": "uniform", + "temperature": 4.0, + "alpha": 0.25, + "miou": 0.4625518682893001 + }, + { + "clusters_per_class": 3, + "variance_shrinkage": 0.5, + "class_prior": "uniform", + "mixture_prior": "uniform", + "temperature": 4.0, + "alpha": 0.5, + "miou": 0.35731388185834506 + }, + { + "clusters_per_class": 3, + "variance_shrinkage": 0.5, + "class_prior": "uniform", + "mixture_prior": "uniform", + "temperature": 16.0, + "alpha": 0.0, + "miou": 0.5332740800605796 + }, + { + "clusters_per_class": 3, + "variance_shrinkage": 0.5, + "class_prior": "uniform", + "mixture_prior": "uniform", + "temperature": 16.0, + "alpha": 0.1, + "miou": 0.5210946395280697 + }, + { + "clusters_per_class": 3, + "variance_shrinkage": 0.5, + "class_prior": "uniform", + "mixture_prior": "uniform", + "temperature": 16.0, + "alpha": 0.25, + "miou": 0.4837368134947629 + }, + { + "clusters_per_class": 3, + "variance_shrinkage": 0.5, + "class_prior": "uniform", + "mixture_prior": "uniform", + "temperature": 16.0, + "alpha": 0.5, + "miou": 0.3909790535143303 + }, + { + "clusters_per_class": 3, + "variance_shrinkage": 0.5, + "class_prior": "uniform", + "mixture_prior": "uniform", + "temperature": 64.0, + "alpha": 0.0, + "miou": 0.5332740800605796 + }, + { + "clusters_per_class": 3, + "variance_shrinkage": 0.5, + "class_prior": "uniform", + "mixture_prior": "uniform", + "temperature": 64.0, + "alpha": 0.1, + "miou": 0.5317491868642275 + }, + { + "clusters_per_class": 3, + "variance_shrinkage": 0.5, + "class_prior": "uniform", + "mixture_prior": "uniform", + "temperature": 64.0, + "alpha": 0.25, + "miou": 0.5228886306404008 + }, + { + "clusters_per_class": 3, + "variance_shrinkage": 0.5, + "class_prior": "uniform", + "mixture_prior": "uniform", + "temperature": 64.0, + "alpha": 0.5, + "miou": 0.4798208920390184 + }, + { + "clusters_per_class": 3, + "variance_shrinkage": 0.9, + "class_prior": "uniform", + "mixture_prior": "uniform", + "temperature": 4.0, + "alpha": 0.0, + "miou": 0.5332740800605796 + }, + { + "clusters_per_class": 3, + "variance_shrinkage": 0.9, + "class_prior": "uniform", + "mixture_prior": "uniform", + "temperature": 4.0, + "alpha": 0.1, + "miou": 0.5157972771128027 + }, + { + "clusters_per_class": 3, + "variance_shrinkage": 0.9, + "class_prior": "uniform", + "mixture_prior": "uniform", + "temperature": 4.0, + "alpha": 0.25, + "miou": 0.46591178192896326 + }, + { + "clusters_per_class": 3, + "variance_shrinkage": 0.9, + "class_prior": "uniform", + "mixture_prior": "uniform", + "temperature": 4.0, + "alpha": 0.5, + "miou": 0.3565076040082081 + }, + { + "clusters_per_class": 3, + "variance_shrinkage": 0.9, + "class_prior": "uniform", + "mixture_prior": "uniform", + "temperature": 16.0, + "alpha": 0.0, + "miou": 0.5332740800605796 + }, + { + "clusters_per_class": 3, + "variance_shrinkage": 0.9, + "class_prior": "uniform", + "mixture_prior": "uniform", + "temperature": 16.0, + "alpha": 0.1, + "miou": 0.5221889165000714 + }, + { + "clusters_per_class": 3, + "variance_shrinkage": 0.9, + "class_prior": "uniform", + "mixture_prior": "uniform", + "temperature": 16.0, + "alpha": 0.25, + "miou": 0.485916949546752 + }, + { + "clusters_per_class": 3, + "variance_shrinkage": 0.9, + "class_prior": "uniform", + "mixture_prior": "uniform", + "temperature": 16.0, + "alpha": 0.5, + "miou": 0.3980769415407408 + }, + { + "clusters_per_class": 3, + "variance_shrinkage": 0.9, + "class_prior": "uniform", + "mixture_prior": "uniform", + "temperature": 64.0, + "alpha": 0.0, + "miou": 0.5332740800605796 + }, + { + "clusters_per_class": 3, + "variance_shrinkage": 0.9, + "class_prior": "uniform", + "mixture_prior": "uniform", + "temperature": 64.0, + "alpha": 0.1, + "miou": 0.5319135235735302 + }, + { + "clusters_per_class": 3, + "variance_shrinkage": 0.9, + "class_prior": "uniform", + "mixture_prior": "uniform", + "temperature": 64.0, + "alpha": 0.25, + "miou": 0.525680880952407 + }, + { + "clusters_per_class": 3, + "variance_shrinkage": 0.9, + "class_prior": "uniform", + "mixture_prior": "uniform", + "temperature": 64.0, + "alpha": 0.5, + "miou": 0.48695744857028345 + } + ], + "standalone": { + "miou": 0.34841392672644234, + "oa": 0.623076016752177, + "macro_f1": 0.46040378814837774, + "kappa": 0.5848860258894053, + "per_class_iou": [ + 0.7129330633243939, + 0.5257424002811457, + 0.5838015540944411, + 0.05375674553756746, + 0.793664238522785, + 0.1048240841494378, + 0.4386175807663411, + 0.779910660388748, + 0.28539617739840417, + 0.03167115902964959, + 0.5527272727272727, + 0.05281207133058985, + 0.09564164648910412, + 0.24648112603966732, + 0.4137494727962885, + 0.43967944552739874, + 0.01214926236621348, + 0.1478927203065134 + ], + "confusion_matrix": [ + [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + [ + 0, + 13026, + 132, + 313, + 39, + 7, + 450, + 48, + 464, + 0, + 5, + 10, + 19, + 0, + 1343, + 25, + 565, + 333, + 1, + 0 + ], + [ + 0, + 106, + 8976, + 455, + 240, + 69, + 1556, + 0, + 0, + 17, + 90, + 137, + 29, + 2, + 86, + 0, + 71, + 643, + 0, + 0 + ], + [ + 0, + 180, + 1118, + 9767, + 605, + 5, + 15, + 186, + 0, + 21, + 0, + 0, + 115, + 88, + 345, + 382, + 27, + 186, + 828, + 0 + ], + [ + 0, + 28, + 1187, + 22, + 259, + 0, + 287, + 0, + 0, + 0, + 44, + 0, + 23, + 47, + 9, + 0, + 0, + 141, + 0, + 0 + ], + [ + 0, + 73, + 189, + 61, + 32, + 4685, + 3, + 1, + 0, + 534, + 37, + 5, + 0, + 6, + 10, + 0, + 3, + 150, + 0, + 0 + ], + [ + 0, + 47, + 150, + 26, + 815, + 0, + 867, + 1, + 1, + 0, + 7, + 18, + 1, + 0, + 38, + 34, + 22, + 377, + 4, + 0 + ], + [ + 0, + 1, + 81, + 120, + 639, + 0, + 46, + 2919, + 54, + 0, + 13, + 179, + 883, + 0, + 219, + 0, + 55, + 54, + 116, + 0 + ], + [ + 0, + 0, + 0, + 0, + 0, + 0, + 43, + 4, + 6460, + 0, + 0, + 1, + 0, + 0, + 61, + 0, + 26, + 0, + 3, + 0 + ], + [ + 0, + 1, + 9, + 215, + 6, + 22, + 30, + 0, + 0, + 1538, + 0, + 0, + 34, + 172, + 132, + 3, + 0, + 4, + 0, + 0 + ], + [ + 0, + 90, + 804, + 8, + 16, + 0, + 48, + 0, + 0, + 0, + 47, + 0, + 0, + 2, + 9, + 0, + 0, + 178, + 0, + 0 + ], + [ + 0, + 0, + 0, + 0, + 0, + 0, + 2380, + 44, + 7, + 0, + 0, + 4104, + 38, + 0, + 47, + 0, + 114, + 0, + 8, + 0 + ], + [ + 0, + 80, + 175, + 768, + 7, + 0, + 261, + 469, + 341, + 2535, + 10, + 296, + 385, + 381, + 146, + 0, + 76, + 12, + 104, + 0 + ], + [ + 0, + 0, + 67, + 71, + 4, + 4, + 110, + 142, + 0, + 32, + 0, + 0, + 66, + 158, + 95, + 18, + 4, + 5, + 20, + 0 + ], + [ + 0, + 584, + 21, + 58, + 0, + 4, + 495, + 46, + 161, + 5, + 0, + 21, + 0, + 0, + 1541, + 0, + 558, + 10, + 0, + 0 + ], + [ + 0, + 128, + 68, + 355, + 3, + 3, + 60, + 0, + 0, + 79, + 1, + 0, + 26, + 63, + 78, + 981, + 0, + 64, + 0, + 0 + ], + [ + 0, + 28, + 0, + 23, + 0, + 0, + 6, + 33, + 639, + 0, + 0, + 6, + 0, + 0, + 62, + 0, + 2030, + 2, + 0, + 0 + ], + [ + 0, + 32, + 556, + 127, + 365, + 0, + 0, + 0, + 0, + 0, + 75, + 0, + 3, + 95, + 0, + 0, + 0, + 42, + 0, + 0 + ], + [ + 0, + 113, + 39, + 240, + 0, + 0, + 73, + 302, + 18, + 0, + 0, + 10, + 7, + 0, + 68, + 0, + 267, + 3, + 386, + 0 + ], + [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ] + ] + }, + "delta_val_pp": 0.0, + "seed": 3407, + "train_pixels": 99345, + "selection_split": "validation", + "test_used_for_selection": false +} \ No newline at end of file diff --git a/ablations/10_plateau_breakthrough/workspace/covariance_research_20261010/32X32_cluster_gaussian_diagonal_seed3407/validation_probabilities.npy b/ablations/10_plateau_breakthrough/workspace/covariance_research_20261010/32X32_cluster_gaussian_diagonal_seed3407/validation_probabilities.npy new file mode 100644 index 0000000000000000000000000000000000000000..ac9729c3ad1b5e2986147415fe9c2077df3b7325 --- /dev/null +++ b/ablations/10_plateau_breakthrough/workspace/covariance_research_20261010/32X32_cluster_gaussian_diagonal_seed3407/validation_probabilities.npy @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:789957d161fce2bac62ff8aa210a48f94ec83ab7c0f379cf23a4e3f8043aae18 +size 12451968 diff --git a/ablations/10_plateau_breakthrough/workspace/covariance_research_20261010/32X32_cluster_gaussian_shared_seed3407/readout.npz b/ablations/10_plateau_breakthrough/workspace/covariance_research_20261010/32X32_cluster_gaussian_shared_seed3407/readout.npz new file mode 100644 index 0000000000000000000000000000000000000000..9ad7a601d3169275ac132c53eb0e84e53993a245 --- /dev/null +++ b/ablations/10_plateau_breakthrough/workspace/covariance_research_20261010/32X32_cluster_gaussian_shared_seed3407/readout.npz @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:0e22b7189ab7cf8f2a8874f1b5da5b5eabe94384d7de1b8d3465e2bb858c8bda +size 227294 diff --git a/ablations/10_plateau_breakthrough/workspace/covariance_research_20261010/32X32_cluster_gaussian_shared_seed3407/selection.json b/ablations/10_plateau_breakthrough/workspace/covariance_research_20261010/32X32_cluster_gaussian_shared_seed3407/selection.json new file mode 100644 index 0000000000000000000000000000000000000000..5d4596f6e6f680d991015bcff3a16bade0bd2530 --- /dev/null +++ b/ablations/10_plateau_breakthrough/workspace/covariance_research_20261010/32X32_cluster_gaussian_shared_seed3407/selection.json @@ -0,0 +1,1067 @@ +{ + "kind": "cluster_gaussian_shared", + "chosen": { + "alpha": 0.0, + "mode": "add", + "metrics": { + "miou": 0.5332740800605796, + "oa": 0.7963389423849359, + "macro_f1": 0.6451293954553919, + "kappa": 0.7736132711613496, + "per_class_iou": [ + 0.7795474922208744, + 0.7925925925925926, + 0.8279766748033631, + 0.49319148936170215, + 0.8988162802010702, + 0.707221350078493, + 0.6434444610554642, + 0.7169173751907565, + 0.39274116523400193, + 0.19267399267399268, + 0.8740273678561846, + 0.16962166689934385, + 0.12701612903225806, + 0.34473789515806325, + 0.8297185048454084, + 0.525572195535462, + 0.00892325996430696, + 0.27419354838709675 + ], + "confusion_matrix": [ + [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + [ + 0, + 14781, + 111, + 37, + 16, + 9, + 38, + 2, + 458, + 0, + 0, + 171, + 83, + 3, + 771, + 22, + 274, + 2, + 2, + 0 + ], + [ + 0, + 133, + 11770, + 80, + 71, + 15, + 41, + 1, + 0, + 18, + 6, + 186, + 43, + 1, + 94, + 0, + 8, + 2, + 8, + 0 + ], + [ + 0, + 194, + 142, + 12211, + 56, + 8, + 3, + 173, + 0, + 35, + 0, + 0, + 1, + 3, + 147, + 168, + 21, + 2, + 704, + 0 + ], + [ + 0, + 34, + 577, + 16, + 1159, + 39, + 0, + 0, + 0, + 0, + 77, + 0, + 13, + 7, + 0, + 0, + 0, + 124, + 1, + 0 + ], + [ + 0, + 102, + 2, + 19, + 0, + 5543, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 19, + 1, + 0, + 103, + 0, + 0 + ], + [ + 0, + 76, + 77, + 3, + 23, + 0, + 1802, + 17, + 84, + 0, + 0, + 113, + 0, + 0, + 70, + 0, + 5, + 138, + 0, + 0 + ], + [ + 0, + 9, + 0, + 11, + 0, + 0, + 17, + 4304, + 333, + 15, + 0, + 11, + 657, + 0, + 16, + 0, + 2, + 0, + 4, + 0 + ], + [ + 0, + 7, + 0, + 0, + 0, + 0, + 1, + 0, + 6577, + 0, + 0, + 12, + 0, + 0, + 0, + 0, + 1, + 0, + 0, + 0 + ], + [ + 0, + 3, + 19, + 5, + 0, + 1, + 0, + 40, + 0, + 2056, + 0, + 0, + 32, + 7, + 3, + 0, + 0, + 0, + 0, + 0 + ], + [ + 0, + 40, + 862, + 0, + 7, + 0, + 0, + 0, + 0, + 5, + 263, + 0, + 0, + 0, + 5, + 0, + 14, + 6, + 0, + 0 + ], + [ + 0, + 7, + 0, + 0, + 88, + 0, + 25, + 6, + 7, + 0, + 0, + 6515, + 0, + 0, + 12, + 0, + 76, + 0, + 6, + 0 + ], + [ + 0, + 130, + 18, + 188, + 0, + 1, + 8, + 513, + 520, + 2903, + 1, + 98, + 1215, + 175, + 198, + 8, + 18, + 9, + 43, + 0 + ], + [ + 0, + 0, + 41, + 40, + 0, + 0, + 0, + 226, + 7, + 38, + 0, + 56, + 232, + 126, + 17, + 2, + 11, + 0, + 0, + 0 + ], + [ + 0, + 1077, + 17, + 38, + 0, + 0, + 7, + 49, + 327, + 0, + 0, + 50, + 0, + 0, + 1723, + 0, + 216, + 0, + 0, + 0 + ], + [ + 0, + 26, + 6, + 29, + 3, + 4, + 0, + 1, + 0, + 42, + 0, + 0, + 0, + 0, + 0, + 1798, + 0, + 0, + 0, + 0 + ], + [ + 0, + 50, + 0, + 6, + 0, + 0, + 0, + 23, + 839, + 0, + 0, + 9, + 2, + 0, + 40, + 0, + 1860, + 0, + 0, + 0 + ], + [ + 0, + 279, + 501, + 51, + 39, + 301, + 0, + 0, + 0, + 13, + 79, + 0, + 0, + 0, + 0, + 2, + 15, + 15, + 0, + 0 + ], + [ + 0, + 14, + 0, + 357, + 0, + 0, + 0, + 259, + 1, + 0, + 0, + 6, + 54, + 0, + 102, + 55, + 49, + 0, + 629, + 0 + ], + [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ] + ] + } + }, + "settings": { + "clusters_per_class": 3, + "variance_shrinkage": 0.5, + "class_prior": "uniform", + "mixture_prior": "uniform", + "temperature": 4.0, + "alpha": 0.0, + "miou": 0.5332740800605796 + }, + "records": [ + { + "clusters_per_class": 3, + "variance_shrinkage": 0.5, + "class_prior": "uniform", + "mixture_prior": "uniform", + "temperature": 4.0, + "alpha": 0.0, + "miou": 0.5332740800605796 + }, + { + "clusters_per_class": 3, + "variance_shrinkage": 0.5, + "class_prior": "uniform", + "mixture_prior": "uniform", + "temperature": 4.0, + "alpha": 0.1, + "miou": 0.5156603228786236 + }, + { + "clusters_per_class": 3, + "variance_shrinkage": 0.5, + "class_prior": "uniform", + "mixture_prior": "uniform", + "temperature": 4.0, + "alpha": 0.25, + "miou": 0.46685200687277223 + }, + { + "clusters_per_class": 3, + "variance_shrinkage": 0.5, + "class_prior": "uniform", + "mixture_prior": "uniform", + "temperature": 4.0, + "alpha": 0.5, + "miou": 0.3564427454009229 + }, + { + "clusters_per_class": 3, + "variance_shrinkage": 0.5, + "class_prior": "uniform", + "mixture_prior": "uniform", + "temperature": 16.0, + "alpha": 0.0, + "miou": 0.5332740800605796 + }, + { + "clusters_per_class": 3, + "variance_shrinkage": 0.5, + "class_prior": "uniform", + "mixture_prior": "uniform", + "temperature": 16.0, + "alpha": 0.1, + "miou": 0.5225019691875299 + }, + { + "clusters_per_class": 3, + "variance_shrinkage": 0.5, + "class_prior": "uniform", + "mixture_prior": "uniform", + "temperature": 16.0, + "alpha": 0.25, + "miou": 0.48679607076290576 + }, + { + "clusters_per_class": 3, + "variance_shrinkage": 0.5, + "class_prior": "uniform", + "mixture_prior": "uniform", + "temperature": 16.0, + "alpha": 0.5, + "miou": 0.4006793003214649 + }, + { + "clusters_per_class": 3, + "variance_shrinkage": 0.5, + "class_prior": "uniform", + "mixture_prior": "uniform", + "temperature": 64.0, + "alpha": 0.0, + "miou": 0.5332740800605796 + }, + { + "clusters_per_class": 3, + "variance_shrinkage": 0.5, + "class_prior": "uniform", + "mixture_prior": "uniform", + "temperature": 64.0, + "alpha": 0.1, + "miou": 0.5319962880122914 + }, + { + "clusters_per_class": 3, + "variance_shrinkage": 0.5, + "class_prior": "uniform", + "mixture_prior": "uniform", + "temperature": 64.0, + "alpha": 0.25, + "miou": 0.5262262698744077 + }, + { + "clusters_per_class": 3, + "variance_shrinkage": 0.5, + "class_prior": "uniform", + "mixture_prior": "uniform", + "temperature": 64.0, + "alpha": 0.5, + "miou": 0.4882062058520542 + } + ], + "standalone": { + "miou": 0.3446305926423305, + "oa": 0.6110045950664624, + "macro_f1": 0.45537613727628823, + "kappa": 0.5728433297466041, + "per_class_iou": [ + 0.6989981283716834, + 0.5077517041684262, + 0.5764691568317314, + 0.04781395348837209, + 0.7961924188339282, + 0.10138972809667673, + 0.39519482519636534, + 0.7900960827790096, + 0.2920337738619677, + 0.018562874251497007, + 0.5837597629948829, + 0.06476484194294525, + 0.09350333940497875, + 0.24765030583320902, + 0.39708333333333334, + 0.44984802431610943, + 0.010481657100074869, + 0.13175675675675674 + ], + "confusion_matrix": [ + [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + [ + 0, + 12698, + 155, + 251, + 79, + 7, + 431, + 26, + 421, + 2, + 7, + 9, + 27, + 3, + 1500, + 25, + 572, + 549, + 18, + 0 + ], + [ + 0, + 96, + 8417, + 420, + 290, + 58, + 1824, + 0, + 0, + 17, + 209, + 134, + 48, + 2, + 109, + 0, + 79, + 774, + 0, + 0 + ], + [ + 0, + 171, + 968, + 9476, + 873, + 0, + 22, + 212, + 0, + 23, + 5, + 0, + 167, + 95, + 407, + 365, + 23, + 248, + 813, + 0 + ], + [ + 0, + 22, + 1141, + 21, + 257, + 0, + 356, + 0, + 0, + 0, + 42, + 0, + 29, + 32, + 9, + 0, + 0, + 138, + 0, + 0 + ], + [ + 0, + 63, + 186, + 57, + 34, + 4684, + 6, + 0, + 0, + 517, + 49, + 3, + 0, + 1, + 14, + 0, + 2, + 173, + 0, + 0 + ], + [ + 0, + 46, + 100, + 23, + 835, + 0, + 839, + 0, + 1, + 0, + 20, + 18, + 4, + 0, + 47, + 46, + 20, + 409, + 0, + 0 + ], + [ + 0, + 1, + 63, + 95, + 651, + 0, + 28, + 2566, + 44, + 0, + 23, + 191, + 1206, + 4, + 263, + 0, + 57, + 61, + 126, + 0 + ], + [ + 0, + 0, + 0, + 0, + 0, + 0, + 41, + 0, + 6414, + 0, + 0, + 1, + 0, + 0, + 106, + 0, + 33, + 0, + 3, + 0 + ], + [ + 0, + 1, + 5, + 182, + 7, + 10, + 34, + 0, + 0, + 1591, + 0, + 0, + 44, + 147, + 124, + 15, + 0, + 6, + 0, + 0 + ], + [ + 0, + 76, + 690, + 14, + 99, + 0, + 59, + 0, + 0, + 0, + 31, + 0, + 1, + 1, + 12, + 0, + 0, + 219, + 0, + 0 + ], + [ + 0, + 0, + 0, + 0, + 0, + 0, + 2139, + 40, + 8, + 0, + 0, + 4335, + 35, + 5, + 48, + 0, + 116, + 0, + 16, + 0 + ], + [ + 0, + 59, + 195, + 685, + 5, + 0, + 213, + 384, + 302, + 2607, + 3, + 285, + 504, + 356, + 215, + 10, + 95, + 20, + 108, + 0 + ], + [ + 0, + 0, + 56, + 44, + 0, + 1, + 107, + 81, + 0, + 33, + 0, + 1, + 109, + 154, + 119, + 30, + 4, + 5, + 52, + 0 + ], + [ + 0, + 575, + 18, + 47, + 0, + 13, + 436, + 48, + 143, + 5, + 0, + 27, + 0, + 0, + 1660, + 0, + 504, + 26, + 2, + 0 + ], + [ + 0, + 132, + 57, + 333, + 3, + 5, + 74, + 0, + 0, + 78, + 1, + 0, + 39, + 104, + 66, + 953, + 0, + 64, + 0, + 0 + ], + [ + 0, + 25, + 0, + 23, + 0, + 0, + 10, + 33, + 590, + 0, + 0, + 8, + 9, + 0, + 56, + 0, + 2072, + 3, + 0, + 0 + ], + [ + 0, + 29, + 428, + 129, + 452, + 0, + 0, + 0, + 0, + 0, + 109, + 0, + 5, + 101, + 0, + 0, + 0, + 42, + 0, + 0 + ], + [ + 0, + 90, + 38, + 246, + 0, + 0, + 87, + 290, + 11, + 0, + 0, + 7, + 13, + 0, + 104, + 0, + 272, + 17, + 351, + 0 + ], + [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ] + ] + }, + "delta_val_pp": 0.0, + "seed": 3407, + "train_pixels": 99345, + "selection_split": "validation", + "test_used_for_selection": false +} \ No newline at end of file diff --git a/ablations/10_plateau_breakthrough/workspace/covariance_research_20261010/32X32_cluster_gaussian_shared_seed3407/validation_probabilities.npy b/ablations/10_plateau_breakthrough/workspace/covariance_research_20261010/32X32_cluster_gaussian_shared_seed3407/validation_probabilities.npy new file mode 100644 index 0000000000000000000000000000000000000000..6862141ffed0cc97d3c19792f31830cce1732573 --- /dev/null +++ b/ablations/10_plateau_breakthrough/workspace/covariance_research_20261010/32X32_cluster_gaussian_shared_seed3407/validation_probabilities.npy @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:1a7b7e40b4f900eddefeec33698037f5be30841efaeaac6b17a7ac5875febe11 +size 12451968 diff --git a/ablations/10_plateau_breakthrough/workspace/covariance_research_20261010/32X32_lowrank_qda128_seed3407/readout.npz b/ablations/10_plateau_breakthrough/workspace/covariance_research_20261010/32X32_lowrank_qda128_seed3407/readout.npz new file mode 100644 index 0000000000000000000000000000000000000000..48de260826d7ecb49f4b154d1fb22939d560f619 --- /dev/null +++ b/ablations/10_plateau_breakthrough/workspace/covariance_research_20261010/32X32_lowrank_qda128_seed3407/readout.npz @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:0110ca98b7bdc9b574f0b73e990934cdaeeb2db152800c543a4b600dc65df295 +size 1459506 diff --git a/ablations/10_plateau_breakthrough/workspace/covariance_research_20261010/32X32_lowrank_qda128_seed3407/selection.json b/ablations/10_plateau_breakthrough/workspace/covariance_research_20261010/32X32_lowrank_qda128_seed3407/selection.json new file mode 100644 index 0000000000000000000000000000000000000000..84f091b4cf7ce65b082902f3a2aba1a89b9b4fb6 --- /dev/null +++ b/ablations/10_plateau_breakthrough/workspace/covariance_research_20261010/32X32_lowrank_qda128_seed3407/selection.json @@ -0,0 +1,1150 @@ +{ + "kind": "lowrank_qda128", + "chosen": { + "alpha": 0.25, + "mode": "add", + "metrics": { + "miou": 0.5333260774554529, + "oa": 0.7963603646062061, + "macro_f1": 0.6450843325959983, + "kappa": 0.7736354620658216, + "per_class_iou": [ + 0.7792248879514896, + 0.7920705438879914, + 0.827911074962722, + 0.4948936170212766, + 0.8989456609894566, + 0.7049628761234857, + 0.6433378196500673, + 0.7186407342657343, + 0.3924751718869366, + 0.1910688140556369, + 0.8755036261079774, + 0.16880580357142858, + 0.12727272727272726, + 0.3442492012779553, + 0.8304849884526558, + 0.5268361581920904, + 0.008949880668257757, + 0.274235807860262 + ], + "confusion_matrix": [ + [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + [ + 0, + 14778, + 111, + 37, + 16, + 9, + 44, + 2, + 457, + 0, + 0, + 165, + 85, + 2, + 774, + 22, + 275, + 1, + 2, + 0 + ], + [ + 0, + 135, + 11767, + 80, + 71, + 15, + 41, + 1, + 0, + 18, + 6, + 186, + 43, + 1, + 95, + 0, + 8, + 2, + 8, + 0 + ], + [ + 0, + 195, + 142, + 12215, + 57, + 8, + 3, + 174, + 0, + 35, + 0, + 0, + 1, + 3, + 146, + 166, + 21, + 1, + 701, + 0 + ], + [ + 0, + 34, + 580, + 15, + 1163, + 39, + 0, + 0, + 0, + 0, + 77, + 0, + 13, + 7, + 0, + 0, + 0, + 118, + 1, + 0 + ], + [ + 0, + 103, + 2, + 19, + 0, + 5542, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 19, + 1, + 0, + 103, + 0, + 0 + ], + [ + 0, + 76, + 78, + 3, + 24, + 0, + 1804, + 15, + 80, + 0, + 0, + 112, + 0, + 0, + 70, + 0, + 5, + 141, + 0, + 0 + ], + [ + 0, + 9, + 0, + 11, + 0, + 0, + 18, + 4302, + 330, + 15, + 0, + 10, + 661, + 0, + 18, + 0, + 2, + 0, + 3, + 0 + ], + [ + 0, + 7, + 0, + 0, + 0, + 0, + 1, + 0, + 6577, + 0, + 0, + 12, + 0, + 0, + 0, + 0, + 1, + 0, + 0, + 0 + ], + [ + 0, + 3, + 19, + 5, + 0, + 0, + 0, + 41, + 0, + 2055, + 0, + 0, + 32, + 6, + 5, + 0, + 0, + 0, + 0, + 0 + ], + [ + 0, + 40, + 864, + 0, + 8, + 0, + 0, + 0, + 0, + 4, + 261, + 0, + 0, + 0, + 5, + 0, + 14, + 6, + 0, + 0 + ], + [ + 0, + 7, + 0, + 0, + 85, + 0, + 25, + 6, + 7, + 0, + 0, + 6519, + 0, + 0, + 11, + 0, + 76, + 0, + 6, + 0 + ], + [ + 0, + 130, + 18, + 191, + 0, + 1, + 11, + 514, + 515, + 2903, + 1, + 99, + 1210, + 175, + 201, + 8, + 17, + 9, + 43, + 0 + ], + [ + 0, + 0, + 41, + 41, + 0, + 0, + 0, + 223, + 6, + 40, + 0, + 57, + 232, + 126, + 17, + 2, + 11, + 0, + 0, + 0 + ], + [ + 0, + 1078, + 17, + 38, + 0, + 0, + 8, + 49, + 325, + 0, + 0, + 49, + 0, + 0, + 1724, + 0, + 216, + 0, + 0, + 0 + ], + [ + 0, + 26, + 6, + 30, + 3, + 4, + 0, + 0, + 0, + 42, + 0, + 0, + 0, + 0, + 0, + 1798, + 0, + 0, + 0, + 0 + ], + [ + 0, + 50, + 0, + 6, + 0, + 0, + 0, + 23, + 833, + 0, + 0, + 9, + 3, + 0, + 40, + 0, + 1865, + 0, + 0, + 0 + ], + [ + 0, + 277, + 501, + 53, + 39, + 300, + 0, + 0, + 0, + 13, + 80, + 0, + 0, + 0, + 0, + 2, + 15, + 15, + 0, + 0 + ], + [ + 0, + 15, + 0, + 357, + 0, + 0, + 0, + 260, + 1, + 0, + 0, + 5, + 52, + 0, + 103, + 55, + 50, + 0, + 628, + 0 + ], + [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ] + ] + } + }, + "settings": { + "components": 128, + "covariance_shrinkage": 0.9, + "ridge_fraction": 0.05, + "temperature": 64.0, + "alpha": 0.25, + "miou": 0.5333260774554529 + }, + "records": [ + { + "components": 128, + "covariance_shrinkage": 0.5, + "ridge_fraction": 0.05, + "temperature": 4.0, + "alpha": 0.0, + "miou": 0.5332740800605796 + }, + { + "components": 128, + "covariance_shrinkage": 0.5, + "ridge_fraction": 0.05, + "temperature": 4.0, + "alpha": 0.1, + "miou": 0.5270899253419226 + }, + { + "components": 128, + "covariance_shrinkage": 0.5, + "ridge_fraction": 0.05, + "temperature": 4.0, + "alpha": 0.25, + "miou": 0.49811244555612927 + }, + { + "components": 128, + "covariance_shrinkage": 0.5, + "ridge_fraction": 0.05, + "temperature": 4.0, + "alpha": 0.5, + "miou": 0.4482008646168766 + }, + { + "components": 128, + "covariance_shrinkage": 0.5, + "ridge_fraction": 0.05, + "temperature": 16.0, + "alpha": 0.0, + "miou": 0.5332740800605796 + }, + { + "components": 128, + "covariance_shrinkage": 0.5, + "ridge_fraction": 0.05, + "temperature": 16.0, + "alpha": 0.1, + "miou": 0.5323688226032139 + }, + { + "components": 128, + "covariance_shrinkage": 0.5, + "ridge_fraction": 0.05, + "temperature": 16.0, + "alpha": 0.25, + "miou": 0.5293409142765836 + }, + { + "components": 128, + "covariance_shrinkage": 0.5, + "ridge_fraction": 0.05, + "temperature": 16.0, + "alpha": 0.5, + "miou": 0.518124233681093 + }, + { + "components": 128, + "covariance_shrinkage": 0.5, + "ridge_fraction": 0.05, + "temperature": 64.0, + "alpha": 0.0, + "miou": 0.5332740800605796 + }, + { + "components": 128, + "covariance_shrinkage": 0.5, + "ridge_fraction": 0.05, + "temperature": 64.0, + "alpha": 0.1, + "miou": 0.5332409290171355 + }, + { + "components": 128, + "covariance_shrinkage": 0.5, + "ridge_fraction": 0.05, + "temperature": 64.0, + "alpha": 0.25, + "miou": 0.532965981482746 + }, + { + "components": 128, + "covariance_shrinkage": 0.5, + "ridge_fraction": 0.05, + "temperature": 64.0, + "alpha": 0.5, + "miou": 0.5322072749290852 + }, + { + "components": 128, + "covariance_shrinkage": 0.9, + "ridge_fraction": 0.05, + "temperature": 4.0, + "alpha": 0.0, + "miou": 0.5332740800605796 + }, + { + "components": 128, + "covariance_shrinkage": 0.9, + "ridge_fraction": 0.05, + "temperature": 4.0, + "alpha": 0.1, + "miou": 0.5283699759530432 + }, + { + "components": 128, + "covariance_shrinkage": 0.9, + "ridge_fraction": 0.05, + "temperature": 4.0, + "alpha": 0.25, + "miou": 0.5038182250083825 + }, + { + "components": 128, + "covariance_shrinkage": 0.9, + "ridge_fraction": 0.05, + "temperature": 4.0, + "alpha": 0.5, + "miou": 0.45647228781234994 + }, + { + "components": 128, + "covariance_shrinkage": 0.9, + "ridge_fraction": 0.05, + "temperature": 16.0, + "alpha": 0.0, + "miou": 0.5332740800605796 + }, + { + "components": 128, + "covariance_shrinkage": 0.9, + "ridge_fraction": 0.05, + "temperature": 16.0, + "alpha": 0.1, + "miou": 0.5330353262121122 + }, + { + "components": 128, + "covariance_shrinkage": 0.9, + "ridge_fraction": 0.05, + "temperature": 16.0, + "alpha": 0.25, + "miou": 0.5315718508980521 + }, + { + "components": 128, + "covariance_shrinkage": 0.9, + "ridge_fraction": 0.05, + "temperature": 16.0, + "alpha": 0.5, + "miou": 0.5259081781890559 + }, + { + "components": 128, + "covariance_shrinkage": 0.9, + "ridge_fraction": 0.05, + "temperature": 64.0, + "alpha": 0.0, + "miou": 0.5332740800605796 + }, + { + "components": 128, + "covariance_shrinkage": 0.9, + "ridge_fraction": 0.05, + "temperature": 64.0, + "alpha": 0.1, + "miou": 0.5332182955283153 + }, + { + "components": 128, + "covariance_shrinkage": 0.9, + "ridge_fraction": 0.05, + "temperature": 64.0, + "alpha": 0.25, + "miou": 0.5333260774554529 + }, + { + "components": 128, + "covariance_shrinkage": 0.9, + "ridge_fraction": 0.05, + "temperature": 64.0, + "alpha": 0.5, + "miou": 0.532858923331979 + } + ], + "standalone": { + "miou": 0.4193583112158876, + "oa": 0.7076937907691648, + "macro_f1": 0.5281795027044938, + "kappa": 0.6767428662445997, + "per_class_iou": [ + 0.75656613505974, + 0.725585805228227, + 0.7370646930549131, + 0.11671497584541063, + 0.9224965706447188, + 0.1629485935984481, + 0.5045404512933407, + 0.7879523925188244, + 0.3310344827586207, + 0.05415713196033562, + 0.6476719944405838, + 0.11147766323024055, + 0.0986159169550173, + 0.2762124711316397, + 0.625, + 0.520359449592811, + 0.02492331288343558, + 0.1451275616896696 + ], + "confusion_matrix": [ + [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + [ + 0, + 14374, + 34, + 91, + 85, + 18, + 381, + 43, + 246, + 0, + 0, + 46, + 53, + 0, + 1082, + 34, + 259, + 28, + 6, + 0 + ], + [ + 0, + 200, + 10714, + 162, + 704, + 14, + 123, + 0, + 0, + 5, + 12, + 170, + 37, + 0, + 33, + 0, + 37, + 266, + 0, + 0 + ], + [ + 0, + 302, + 119, + 11154, + 573, + 7, + 28, + 324, + 0, + 34, + 3, + 0, + 89, + 18, + 198, + 162, + 31, + 26, + 800, + 0 + ], + [ + 0, + 51, + 1223, + 2, + 604, + 4, + 2, + 0, + 0, + 0, + 50, + 0, + 32, + 0, + 4, + 0, + 0, + 75, + 0, + 0 + ], + [ + 0, + 111, + 5, + 24, + 25, + 5380, + 3, + 0, + 0, + 0, + 31, + 0, + 0, + 0, + 57, + 0, + 0, + 153, + 0, + 0 + ], + [ + 0, + 65, + 133, + 1, + 639, + 0, + 1008, + 1, + 0, + 0, + 3, + 33, + 0, + 0, + 55, + 0, + 8, + 461, + 1, + 0 + ], + [ + 0, + 0, + 0, + 19, + 14, + 0, + 475, + 3667, + 40, + 1, + 0, + 40, + 698, + 32, + 329, + 0, + 7, + 40, + 17, + 0 + ], + [ + 0, + 0, + 0, + 0, + 0, + 0, + 41, + 0, + 6488, + 0, + 0, + 13, + 0, + 0, + 48, + 0, + 8, + 0, + 0, + 0 + ], + [ + 0, + 1, + 6, + 66, + 10, + 0, + 37, + 94, + 0, + 1632, + 0, + 0, + 69, + 95, + 154, + 0, + 0, + 2, + 0, + 0 + ], + [ + 0, + 109, + 668, + 2, + 128, + 0, + 6, + 0, + 0, + 0, + 71, + 0, + 6, + 0, + 2, + 0, + 0, + 210, + 0, + 0 + ], + [ + 0, + 0, + 0, + 0, + 0, + 0, + 1856, + 9, + 8, + 0, + 0, + 4660, + 0, + 0, + 113, + 0, + 94, + 0, + 2, + 0 + ], + [ + 0, + 125, + 10, + 298, + 17, + 0, + 169, + 627, + 399, + 2692, + 0, + 131, + 811, + 201, + 423, + 30, + 33, + 41, + 39, + 0 + ], + [ + 0, + 0, + 10, + 30, + 0, + 0, + 106, + 145, + 0, + 18, + 0, + 0, + 234, + 114, + 137, + 0, + 1, + 1, + 0, + 0 + ], + [ + 0, + 866, + 12, + 41, + 3, + 0, + 304, + 209, + 139, + 0, + 0, + 6, + 0, + 0, + 1794, + 0, + 125, + 5, + 0, + 0 + ], + [ + 0, + 116, + 2, + 114, + 118, + 0, + 66, + 0, + 0, + 14, + 0, + 0, + 0, + 0, + 140, + 1335, + 0, + 4, + 0, + 0 + ], + [ + 0, + 45, + 0, + 0, + 0, + 0, + 10, + 15, + 798, + 0, + 0, + 0, + 11, + 0, + 96, + 0, + 1853, + 1, + 0, + 0 + ], + [ + 0, + 92, + 67, + 88, + 812, + 0, + 144, + 0, + 0, + 0, + 10, + 0, + 0, + 14, + 0, + 0, + 3, + 65, + 0, + 0 + ], + [ + 0, + 136, + 0, + 327, + 0, + 0, + 27, + 422, + 6, + 0, + 0, + 14, + 0, + 0, + 120, + 1, + 126, + 0, + 347, + 0 + ], + [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ] + ] + }, + "delta_val_pp": 0.005199739487327104, + "seed": 3407, + "train_pixels": 99345, + "selection_split": "validation", + "test_used_for_selection": false +} \ No newline at end of file diff --git a/ablations/10_plateau_breakthrough/workspace/covariance_research_20261010/32X32_lowrank_qda128_seed3407/validation_probabilities.npy b/ablations/10_plateau_breakthrough/workspace/covariance_research_20261010/32X32_lowrank_qda128_seed3407/validation_probabilities.npy new file mode 100644 index 0000000000000000000000000000000000000000..588efefa9984a507565956271af18720e5612cd4 --- /dev/null +++ b/ablations/10_plateau_breakthrough/workspace/covariance_research_20261010/32X32_lowrank_qda128_seed3407/validation_probabilities.npy @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:825ed99fd6954dfae7386e9b66deb3953e7b96eaad8afd2553cd52be3d900e4d +size 12451968 diff --git a/ablations/10_plateau_breakthrough/workspace/covariance_research_20261010/32X32_lowrank_qda64_seed3407/readout.npz b/ablations/10_plateau_breakthrough/workspace/covariance_research_20261010/32X32_lowrank_qda64_seed3407/readout.npz new file mode 100644 index 0000000000000000000000000000000000000000..0286b303233259f3e851dac23a702504d975d04d --- /dev/null +++ b/ablations/10_plateau_breakthrough/workspace/covariance_research_20261010/32X32_lowrank_qda64_seed3407/readout.npz @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:dc532254a391763739dc2420fe216a600a70f5b7f6541edd8f86cb2ef062cda8 +size 439090 diff --git a/ablations/10_plateau_breakthrough/workspace/covariance_research_20261010/32X32_lowrank_qda64_seed3407/selection.json b/ablations/10_plateau_breakthrough/workspace/covariance_research_20261010/32X32_lowrank_qda64_seed3407/selection.json new file mode 100644 index 0000000000000000000000000000000000000000..d46ed4b9e2d3f5035d782d22c8bd546de5d03127 --- /dev/null +++ b/ablations/10_plateau_breakthrough/workspace/covariance_research_20261010/32X32_lowrank_qda64_seed3407/selection.json @@ -0,0 +1,1150 @@ +{ + "kind": "lowrank_qda64", + "chosen": { + "alpha": 0.0, + "mode": "add", + "metrics": { + "miou": 0.5332740800605796, + "oa": 0.7963389423849359, + "macro_f1": 0.6451293954553919, + "kappa": 0.7736132711613496, + "per_class_iou": [ + 0.7795474922208744, + 0.7925925925925926, + 0.8279766748033631, + 0.49319148936170215, + 0.8988162802010702, + 0.707221350078493, + 0.6434444610554642, + 0.7169173751907565, + 0.39274116523400193, + 0.19267399267399268, + 0.8740273678561846, + 0.16962166689934385, + 0.12701612903225806, + 0.34473789515806325, + 0.8297185048454084, + 0.525572195535462, + 0.00892325996430696, + 0.27419354838709675 + ], + "confusion_matrix": [ + [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + [ + 0, + 14781, + 111, + 37, + 16, + 9, + 38, + 2, + 458, + 0, + 0, + 171, + 83, + 3, + 771, + 22, + 274, + 2, + 2, + 0 + ], + [ + 0, + 133, + 11770, + 80, + 71, + 15, + 41, + 1, + 0, + 18, + 6, + 186, + 43, + 1, + 94, + 0, + 8, + 2, + 8, + 0 + ], + [ + 0, + 194, + 142, + 12211, + 56, + 8, + 3, + 173, + 0, + 35, + 0, + 0, + 1, + 3, + 147, + 168, + 21, + 2, + 704, + 0 + ], + [ + 0, + 34, + 577, + 16, + 1159, + 39, + 0, + 0, + 0, + 0, + 77, + 0, + 13, + 7, + 0, + 0, + 0, + 124, + 1, + 0 + ], + [ + 0, + 102, + 2, + 19, + 0, + 5543, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 19, + 1, + 0, + 103, + 0, + 0 + ], + [ + 0, + 76, + 77, + 3, + 23, + 0, + 1802, + 17, + 84, + 0, + 0, + 113, + 0, + 0, + 70, + 0, + 5, + 138, + 0, + 0 + ], + [ + 0, + 9, + 0, + 11, + 0, + 0, + 17, + 4304, + 333, + 15, + 0, + 11, + 657, + 0, + 16, + 0, + 2, + 0, + 4, + 0 + ], + [ + 0, + 7, + 0, + 0, + 0, + 0, + 1, + 0, + 6577, + 0, + 0, + 12, + 0, + 0, + 0, + 0, + 1, + 0, + 0, + 0 + ], + [ + 0, + 3, + 19, + 5, + 0, + 1, + 0, + 40, + 0, + 2056, + 0, + 0, + 32, + 7, + 3, + 0, + 0, + 0, + 0, + 0 + ], + [ + 0, + 40, + 862, + 0, + 7, + 0, + 0, + 0, + 0, + 5, + 263, + 0, + 0, + 0, + 5, + 0, + 14, + 6, + 0, + 0 + ], + [ + 0, + 7, + 0, + 0, + 88, + 0, + 25, + 6, + 7, + 0, + 0, + 6515, + 0, + 0, + 12, + 0, + 76, + 0, + 6, + 0 + ], + [ + 0, + 130, + 18, + 188, + 0, + 1, + 8, + 513, + 520, + 2903, + 1, + 98, + 1215, + 175, + 198, + 8, + 18, + 9, + 43, + 0 + ], + [ + 0, + 0, + 41, + 40, + 0, + 0, + 0, + 226, + 7, + 38, + 0, + 56, + 232, + 126, + 17, + 2, + 11, + 0, + 0, + 0 + ], + [ + 0, + 1077, + 17, + 38, + 0, + 0, + 7, + 49, + 327, + 0, + 0, + 50, + 0, + 0, + 1723, + 0, + 216, + 0, + 0, + 0 + ], + [ + 0, + 26, + 6, + 29, + 3, + 4, + 0, + 1, + 0, + 42, + 0, + 0, + 0, + 0, + 0, + 1798, + 0, + 0, + 0, + 0 + ], + [ + 0, + 50, + 0, + 6, + 0, + 0, + 0, + 23, + 839, + 0, + 0, + 9, + 2, + 0, + 40, + 0, + 1860, + 0, + 0, + 0 + ], + [ + 0, + 279, + 501, + 51, + 39, + 301, + 0, + 0, + 0, + 13, + 79, + 0, + 0, + 0, + 0, + 2, + 15, + 15, + 0, + 0 + ], + [ + 0, + 14, + 0, + 357, + 0, + 0, + 0, + 259, + 1, + 0, + 0, + 6, + 54, + 0, + 102, + 55, + 49, + 0, + 629, + 0 + ], + [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ] + ] + } + }, + "settings": { + "components": 64, + "covariance_shrinkage": 0.5, + "ridge_fraction": 0.05, + "temperature": 4.0, + "alpha": 0.0, + "miou": 0.5332740800605796 + }, + "records": [ + { + "components": 64, + "covariance_shrinkage": 0.5, + "ridge_fraction": 0.05, + "temperature": 4.0, + "alpha": 0.0, + "miou": 0.5332740800605796 + }, + { + "components": 64, + "covariance_shrinkage": 0.5, + "ridge_fraction": 0.05, + "temperature": 4.0, + "alpha": 0.1, + "miou": 0.5292384368311267 + }, + { + "components": 64, + "covariance_shrinkage": 0.5, + "ridge_fraction": 0.05, + "temperature": 4.0, + "alpha": 0.25, + "miou": 0.514171616299828 + }, + { + "components": 64, + "covariance_shrinkage": 0.5, + "ridge_fraction": 0.05, + "temperature": 4.0, + "alpha": 0.5, + "miou": 0.4642315616247034 + }, + { + "components": 64, + "covariance_shrinkage": 0.5, + "ridge_fraction": 0.05, + "temperature": 16.0, + "alpha": 0.0, + "miou": 0.5332740800605796 + }, + { + "components": 64, + "covariance_shrinkage": 0.5, + "ridge_fraction": 0.05, + "temperature": 16.0, + "alpha": 0.1, + "miou": 0.5330870873808793 + }, + { + "components": 64, + "covariance_shrinkage": 0.5, + "ridge_fraction": 0.05, + "temperature": 16.0, + "alpha": 0.25, + "miou": 0.5320399532528703 + }, + { + "components": 64, + "covariance_shrinkage": 0.5, + "ridge_fraction": 0.05, + "temperature": 16.0, + "alpha": 0.5, + "miou": 0.5273059623097018 + }, + { + "components": 64, + "covariance_shrinkage": 0.5, + "ridge_fraction": 0.05, + "temperature": 64.0, + "alpha": 0.0, + "miou": 0.5332740800605796 + }, + { + "components": 64, + "covariance_shrinkage": 0.5, + "ridge_fraction": 0.05, + "temperature": 64.0, + "alpha": 0.1, + "miou": 0.533192960956132 + }, + { + "components": 64, + "covariance_shrinkage": 0.5, + "ridge_fraction": 0.05, + "temperature": 64.0, + "alpha": 0.25, + "miou": 0.533071434426022 + }, + { + "components": 64, + "covariance_shrinkage": 0.5, + "ridge_fraction": 0.05, + "temperature": 64.0, + "alpha": 0.5, + "miou": 0.533079125258556 + }, + { + "components": 64, + "covariance_shrinkage": 0.9, + "ridge_fraction": 0.05, + "temperature": 4.0, + "alpha": 0.0, + "miou": 0.5332740800605796 + }, + { + "components": 64, + "covariance_shrinkage": 0.9, + "ridge_fraction": 0.05, + "temperature": 4.0, + "alpha": 0.1, + "miou": 0.5302696192188286 + }, + { + "components": 64, + "covariance_shrinkage": 0.9, + "ridge_fraction": 0.05, + "temperature": 4.0, + "alpha": 0.25, + "miou": 0.5184791491273396 + }, + { + "components": 64, + "covariance_shrinkage": 0.9, + "ridge_fraction": 0.05, + "temperature": 4.0, + "alpha": 0.5, + "miou": 0.47293235792906935 + }, + { + "components": 64, + "covariance_shrinkage": 0.9, + "ridge_fraction": 0.05, + "temperature": 16.0, + "alpha": 0.0, + "miou": 0.5332740800605796 + }, + { + "components": 64, + "covariance_shrinkage": 0.9, + "ridge_fraction": 0.05, + "temperature": 16.0, + "alpha": 0.1, + "miou": 0.5331319338364306 + }, + { + "components": 64, + "covariance_shrinkage": 0.9, + "ridge_fraction": 0.05, + "temperature": 16.0, + "alpha": 0.25, + "miou": 0.5327257191963977 + }, + { + "components": 64, + "covariance_shrinkage": 0.9, + "ridge_fraction": 0.05, + "temperature": 16.0, + "alpha": 0.5, + "miou": 0.5303220716525382 + }, + { + "components": 64, + "covariance_shrinkage": 0.9, + "ridge_fraction": 0.05, + "temperature": 64.0, + "alpha": 0.0, + "miou": 0.5332740800605796 + }, + { + "components": 64, + "covariance_shrinkage": 0.9, + "ridge_fraction": 0.05, + "temperature": 64.0, + "alpha": 0.1, + "miou": 0.5331403662293844 + }, + { + "components": 64, + "covariance_shrinkage": 0.9, + "ridge_fraction": 0.05, + "temperature": 64.0, + "alpha": 0.25, + "miou": 0.5332232049294849 + }, + { + "components": 64, + "covariance_shrinkage": 0.9, + "ridge_fraction": 0.05, + "temperature": 64.0, + "alpha": 0.5, + "miou": 0.5329850887851525 + } + ], + "standalone": { + "miou": 0.40337256716572056, + "oa": 0.693319480296912, + "macro_f1": 0.5146165447782369, + "kappa": 0.6609044772281488, + "per_class_iou": [ + 0.7365828364013483, + 0.6843743919050399, + 0.6930085165379283, + 0.11215718379042161, + 0.9216723549488055, + 0.14755244755244756, + 0.40633749045558665, + 0.7610225140712945, + 0.35180487804878047, + 0.06052801030264005, + 0.655336595688401, + 0.09248380780237987, + 0.09717607973421927, + 0.299333580155498, + 0.6063157894736843, + 0.4634024481638771, + 0.01728395061728395, + 0.15433333333333332 + ], + "confusion_matrix": [ + [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + [ + 0, + 14205, + 63, + 51, + 68, + 21, + 340, + 80, + 432, + 4, + 10, + 102, + 31, + 2, + 797, + 63, + 433, + 70, + 8, + 0 + ], + [ + 0, + 158, + 10551, + 161, + 547, + 32, + 357, + 8, + 0, + 7, + 90, + 115, + 7, + 0, + 10, + 2, + 58, + 373, + 1, + 0 + ], + [ + 0, + 472, + 158, + 10497, + 119, + 12, + 61, + 523, + 2, + 33, + 0, + 0, + 57, + 3, + 76, + 369, + 50, + 121, + 1315, + 0 + ], + [ + 0, + 63, + 1141, + 2, + 548, + 4, + 13, + 19, + 0, + 0, + 144, + 0, + 11, + 27, + 1, + 4, + 0, + 70, + 0, + 0 + ], + [ + 0, + 111, + 61, + 23, + 87, + 5401, + 3, + 0, + 1, + 0, + 35, + 0, + 1, + 0, + 28, + 9, + 0, + 29, + 0, + 0 + ], + [ + 0, + 68, + 317, + 2, + 797, + 0, + 844, + 23, + 1, + 0, + 11, + 47, + 0, + 0, + 47, + 0, + 32, + 219, + 0, + 0 + ], + [ + 0, + 7, + 0, + 67, + 510, + 0, + 164, + 3193, + 43, + 61, + 0, + 370, + 387, + 9, + 470, + 0, + 55, + 9, + 34, + 0 + ], + [ + 0, + 0, + 0, + 0, + 0, + 0, + 41, + 4, + 6490, + 0, + 0, + 15, + 0, + 0, + 16, + 0, + 32, + 0, + 0, + 0 + ], + [ + 0, + 8, + 21, + 59, + 1, + 0, + 102, + 74, + 0, + 1803, + 0, + 0, + 4, + 90, + 1, + 0, + 0, + 3, + 0, + 0 + ], + [ + 0, + 117, + 579, + 0, + 183, + 0, + 18, + 0, + 0, + 0, + 94, + 0, + 0, + 0, + 4, + 0, + 0, + 207, + 0, + 0 + ], + [ + 0, + 0, + 0, + 0, + 20, + 0, + 1582, + 14, + 5, + 0, + 0, + 4955, + 0, + 0, + 69, + 0, + 96, + 0, + 1, + 0 + ], + [ + 0, + 164, + 28, + 222, + 8, + 0, + 252, + 865, + 406, + 2778, + 14, + 108, + 614, + 189, + 217, + 13, + 43, + 15, + 110, + 0 + ], + [ + 0, + 1, + 48, + 88, + 1, + 0, + 97, + 244, + 1, + 38, + 6, + 7, + 90, + 117, + 33, + 0, + 16, + 4, + 5, + 0 + ], + [ + 0, + 940, + 16, + 60, + 3, + 0, + 239, + 153, + 200, + 0, + 0, + 38, + 0, + 0, + 1617, + 0, + 229, + 9, + 0, + 0 + ], + [ + 0, + 101, + 6, + 213, + 38, + 1, + 0, + 14, + 0, + 38, + 0, + 0, + 0, + 48, + 5, + 1440, + 0, + 5, + 0, + 0 + ], + [ + 0, + 38, + 0, + 7, + 0, + 0, + 12, + 22, + 834, + 0, + 0, + 3, + 1, + 0, + 56, + 0, + 1855, + 1, + 0, + 0 + ], + [ + 0, + 99, + 502, + 108, + 454, + 1, + 0, + 0, + 0, + 0, + 41, + 0, + 4, + 40, + 0, + 0, + 4, + 42, + 0, + 0 + ], + [ + 0, + 158, + 0, + 216, + 3, + 0, + 31, + 436, + 5, + 0, + 0, + 14, + 0, + 0, + 68, + 6, + 126, + 0, + 463, + 0 + ], + [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ] + ] + }, + "delta_val_pp": 0.0, + "seed": 3407, + "train_pixels": 99345, + "selection_split": "validation", + "test_used_for_selection": false +} \ No newline at end of file diff --git a/ablations/10_plateau_breakthrough/workspace/covariance_research_20261010/32X32_lowrank_qda64_seed3407/validation_probabilities.npy b/ablations/10_plateau_breakthrough/workspace/covariance_research_20261010/32X32_lowrank_qda64_seed3407/validation_probabilities.npy new file mode 100644 index 0000000000000000000000000000000000000000..427f2446e20f2d2977f942c1dab7f789d2e37040 --- /dev/null +++ b/ablations/10_plateau_breakthrough/workspace/covariance_research_20261010/32X32_lowrank_qda64_seed3407/validation_probabilities.npy @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:77b1f975fd1ff3169eef62c66e3563375fd3360a5769ea022145aa26a7452061 +size 12451968 diff --git a/ablations/10_plateau_breakthrough/workspace/covariance_research_20261010/README.md b/ablations/10_plateau_breakthrough/workspace/covariance_research_20261010/README.md new file mode 100644 index 0000000000000000000000000000000000000000..745a8ada059ea5f5b2c1f7a5ca3ee5cd3d6b5493 --- /dev/null +++ b/ablations/10_plateau_breakthrough/workspace/covariance_research_20261010/README.md @@ -0,0 +1,18 @@ +# Covariance follow-up driven by validation evidence + +Goal:52–53% full fold4 Test mIoU. Incumbent53.3274% validation /50.2463% test. The first CPU screen improved validation to53.5644% with class-specific diagonal covariance; deeper LDA and random nonlinear features did not help. These four follow-ups were chosen from validation evidence, before any new test scores from that screen. + +| Experiment | Exact hypothesis | Controlled change | +|---|---|---| +| lowrank_qda64 | Correlations between feature directions carry class-dependent information missing from diagonal QDA | Train-only PCA64; class covariance shrunk toward pooled covariance, shrinkage.5/.9 plus.05 pooled-scale ridge | +| lowrank_qda128 | Additional feature directions retain discriminative crop information | Same method, PCA128 instead of64 | +| cluster_gaussian_shared | Crop classes contain several growth/appearance modes; one Gaussian is too restrictive | Three train-fitted cluster centres per class, shared diagonal variance, equal mixture/class priors | +| cluster_gaussian_diagonal | Growth modes differ in feature variability as well as mean | Same three centres with cluster-specific diagonal variance shrunk.5/.9 toward equally class-weighted pooled variance | + +All fitting uses original labeled training pixels from the same ordered fixed32 crop cache; no sample removal, new labels, pseudo-labels, new seed, new folds or external checkpoint. PCA, feature normalization and Gaussian parameters use training only. Validation selects temperature4/16/64 and addweight0/.1/.25/.5 against the fixed50.2463% incumbent. Up to two candidates with>=.10percentage point validation gain are frozen for full482patch fold4 tests. A single additive combination is promoted only if it improves validation>=.10pp over the best individual. No test-label tuning. + +These are Gaussian classifier adaptations, not reproductions of published few-shot algorithms. Motivation: [CVPR2024 workshop covariance calibration](https://openaccess.thecvf.com/content/CVPR2024W/CLVISION/html/Goswami_Calibrating_Higher-Order_Statistics_for_Few-Shot_Class-Incremental_Learning_with_Pre-trained_Vision_CVPRW_2024_paper.html). The few effective independent patches and correlated training pixels make full covariance overfit a serious risk; PCA and pooling limit the degrees of freedom. Mixture clusters are statistical training-feature groups, not ground-truth field instances. + +The CNN queue runs concurrently with CPU fitting. This service waits on the live `tsr-ceiling-research.service` handle before taking the GPU for promoted tests. Waiting is documented in `gpu_wait.json`; job statuses in `status.json`; selections and full predictions are retained in individual32X32 folders. Run via `bash run_covariance_research.sh queue`. Each fitting job should take seconds to a few minutes; GPU inference adds approximately10–20minutes after the main queue, depending on contention. + +The repeatedly inspected test set remains exploratory. These experiments preserve dataset configuration but do not settle the previously recorded STCLN evaluator differences. See the first round's `validation_error_diagnosis.json`: about75% of validation errors are outside its two-pixel inter-class boundary band, supporting a classification investigation rather than relying only on boundary objectives. diff --git a/ablations/10_plateau_breakthrough/workspace/covariance_research_20261010/RESULTS.md b/ablations/10_plateau_breakthrough/workspace/covariance_research_20261010/RESULTS.md new file mode 100644 index 0000000000000000000000000000000000000000..ea33c48c600da708a135d215136d14d6fe87fd3c --- /dev/null +++ b/ablations/10_plateau_breakthrough/workspace/covariance_research_20261010/RESULTS.md @@ -0,0 +1,14 @@ +# Research toward 52–53% Test mIoU + +Incumbent: 53.3274080% validation / 50.2463326% test. Scores below are measured; missing tests were not run. + +| Method | Standalone val mIoU | Blended val mIoU | Test mIoU | +|---|---:|---:|---:| +| lowrank_qda64 | 40.3373% | 53.3274% | Not evaluated | +| lowrank_qda128 | 41.9358% | 53.3326% | Not evaluated | +| cluster_gaussian_shared | 34.4631% | 53.3274% | Not evaluated | +| cluster_gaussian_diagonal | 34.8414% | 53.3274% | Not evaluated | + +Training lists, duplicates, folds, seed 3407, two fixed32 crops and original pretrained files are preserved. +Settings and promotion were chosen on validation. The project test set has been inspected repeatedly; results remain exploratory. +Read `promotion.json`, `status.json` and individual selection/test JSONs for audit records. diff --git a/ablations/10_plateau_breakthrough/workspace/covariance_research_20261010/cluster_gaussian_diagonal.log b/ablations/10_plateau_breakthrough/workspace/covariance_research_20261010/cluster_gaussian_diagonal.log new file mode 100644 index 0000000000000000000000000000000000000000..fbbf3f4c2305b8cc8bec08ccf9357d2bf865e03d --- /dev/null +++ b/ablations/10_plateau_breakthrough/workspace/covariance_research_20261010/cluster_gaussian_diagonal.log @@ -0,0 +1,3 @@ +/usr/lib/python3/dist-packages/scipy/__init__.py:146: UserWarning: A NumPy version >=1.17.3 and <1.25.0 is required for this version of SciPy (detected version 1.26.4 + warnings.warn(f"A NumPy version >={np_minversion} and <{np_maxversion}" +COVARIANCE RESULT cluster_gaussian_diagonal 0.5332740800605796 0.0 diff --git a/ablations/10_plateau_breakthrough/workspace/covariance_research_20261010/cluster_gaussian_shared.log b/ablations/10_plateau_breakthrough/workspace/covariance_research_20261010/cluster_gaussian_shared.log new file mode 100644 index 0000000000000000000000000000000000000000..d3dd238151214314afeda756999b4471732ec331 --- /dev/null +++ b/ablations/10_plateau_breakthrough/workspace/covariance_research_20261010/cluster_gaussian_shared.log @@ -0,0 +1,3 @@ +/usr/lib/python3/dist-packages/scipy/__init__.py:146: UserWarning: A NumPy version >=1.17.3 and <1.25.0 is required for this version of SciPy (detected version 1.26.4 + warnings.warn(f"A NumPy version >={np_minversion} and <{np_maxversion}" +COVARIANCE RESULT cluster_gaussian_shared 0.5332740800605796 0.0 diff --git a/ablations/10_plateau_breakthrough/workspace/covariance_research_20261010/completion.json b/ablations/10_plateau_breakthrough/workspace/covariance_research_20261010/completion.json new file mode 100644 index 0000000000000000000000000000000000000000..adb6295a51d3fb3ff602bfd856ec92bc6e27b20a --- /dev/null +++ b/ablations/10_plateau_breakthrough/workspace/covariance_research_20261010/completion.json @@ -0,0 +1,73 @@ +{ + "finished": "2026-10-10T19:48:07.264805+00:00", + "jobs": { + "lowrank_qda64": { + "status": "completed", + "arguments": [ + "fit", + "--kind", + "lowrank_qda64" + ], + "started": "2026-10-10T19:46:20.406526+00:00", + "returncode": 0, + "ended": "2026-10-10T19:46:31.744622+00:00", + "seconds": 11.337737454101443 + }, + "lowrank_qda128": { + "status": "completed", + "arguments": [ + "fit", + "--kind", + "lowrank_qda128" + ], + "started": "2026-10-10T19:46:31.809294+00:00", + "returncode": 0, + "ended": "2026-10-10T19:46:44.529457+00:00", + "seconds": 12.719810588285327 + }, + "cluster_gaussian_shared": { + "status": "completed", + "arguments": [ + "fit", + "--kind", + "cluster_gaussian_shared" + ], + "started": "2026-10-10T19:46:44.571620+00:00", + "returncode": 0, + "ended": "2026-10-10T19:46:58.894879+00:00", + "seconds": 14.323053451720625 + }, + "cluster_gaussian_diagonal": { + "status": "completed", + "arguments": [ + "fit", + "--kind", + "cluster_gaussian_diagonal" + ], + "started": "2026-10-10T19:46:58.948980+00:00", + "returncode": 0, + "ended": "2026-10-10T19:47:17.245032+00:00", + "seconds": 18.295671520754695 + }, + "freeze_promotion": { + "status": "completed", + "arguments": [ + "promote" + ], + "started": "2026-10-10T19:47:17.300204+00:00", + "returncode": 0, + "ended": "2026-10-10T19:47:20.266575+00:00", + "seconds": 2.965991680044681 + }, + "test_after_cnn_queue": { + "status": "completed", + "arguments": [ + "test" + ], + "started": "2026-10-10T19:48:04.123510+00:00", + "returncode": 0, + "ended": "2026-10-10T19:48:07.263002+00:00", + "seconds": 3.139091200195253 + } + } +} \ No newline at end of file diff --git a/ablations/10_plateau_breakthrough/workspace/covariance_research_20261010/freeze_promotion.log b/ablations/10_plateau_breakthrough/workspace/covariance_research_20261010/freeze_promotion.log new file mode 100644 index 0000000000000000000000000000000000000000..f959eaf8e75f08054791917f454952babc4c9435 --- /dev/null +++ b/ablations/10_plateau_breakthrough/workspace/covariance_research_20261010/freeze_promotion.log @@ -0,0 +1,3 @@ +/usr/lib/python3/dist-packages/scipy/__init__.py:146: UserWarning: A NumPy version >=1.17.3 and <1.25.0 is required for this version of SciPy (detected version 1.26.4 + warnings.warn(f"A NumPy version >={np_minversion} and <{np_maxversion}" +PROMOTION [] combo False diff --git a/ablations/10_plateau_breakthrough/workspace/covariance_research_20261010/gpu_wait.json b/ablations/10_plateau_breakthrough/workspace/covariance_research_20261010/gpu_wait.json new file mode 100644 index 0000000000000000000000000000000000000000..300cbc911a86349c2bccd0cd7d73e0ecae99e024 --- /dev/null +++ b/ablations/10_plateau_breakthrough/workspace/covariance_research_20261010/gpu_wait.json @@ -0,0 +1,4 @@ +{ + "status": "not_needed_no_validation_promotion", + "finished": "2026-10-10T19:48:06.717607+00:00" +} \ No newline at end of file diff --git a/ablations/10_plateau_breakthrough/workspace/covariance_research_20261010/lowrank_qda128.log b/ablations/10_plateau_breakthrough/workspace/covariance_research_20261010/lowrank_qda128.log new file mode 100644 index 0000000000000000000000000000000000000000..0a2f1efb83889691ad7b95d921a557cb59a493cb --- /dev/null +++ b/ablations/10_plateau_breakthrough/workspace/covariance_research_20261010/lowrank_qda128.log @@ -0,0 +1,3 @@ +/usr/lib/python3/dist-packages/scipy/__init__.py:146: UserWarning: A NumPy version >=1.17.3 and <1.25.0 is required for this version of SciPy (detected version 1.26.4 + warnings.warn(f"A NumPy version >={np_minversion} and <{np_maxversion}" +COVARIANCE RESULT lowrank_qda128 0.5333260774554529 0.25 diff --git a/ablations/10_plateau_breakthrough/workspace/covariance_research_20261010/lowrank_qda64.log b/ablations/10_plateau_breakthrough/workspace/covariance_research_20261010/lowrank_qda64.log new file mode 100644 index 0000000000000000000000000000000000000000..4bc9c62d9a84861e794526a86d65d0f60dc1fa03 --- /dev/null +++ b/ablations/10_plateau_breakthrough/workspace/covariance_research_20261010/lowrank_qda64.log @@ -0,0 +1,3 @@ +/usr/lib/python3/dist-packages/scipy/__init__.py:146: UserWarning: A NumPy version >=1.17.3 and <1.25.0 is required for this version of SciPy (detected version 1.26.4 + warnings.warn(f"A NumPy version >={np_minversion} and <{np_maxversion}" +COVARIANCE RESULT lowrank_qda64 0.5332740800605796 0.0 diff --git a/ablations/10_plateau_breakthrough/workspace/covariance_research_20261010/promotion.json b/ablations/10_plateau_breakthrough/workspace/covariance_research_20261010/promotion.json new file mode 100644 index 0000000000000000000000000000000000000000..a2e1a9072e24a2bb0440b0252bf48c71f0cddad5 --- /dev/null +++ b/ablations/10_plateau_breakthrough/workspace/covariance_research_20261010/promotion.json @@ -0,0 +1,29 @@ +{ + "frozen_at": "2026-10-10T19:47:19.773186+00:00", + "selected": [], + "ranking": [ + [ + 0.5333260774554529, + "lowrank_qda128", + 0.25 + ], + [ + 0.5332740800605796, + "lowrank_qda64", + 0.0 + ], + [ + 0.5332740800605796, + "cluster_gaussian_shared", + 0.0 + ], + [ + 0.5332740800605796, + "cluster_gaussian_diagonal", + 0.0 + ] + ], + "combined": null, + "rule": "top two validation gains >=0.10pp; one additive combo only if >=0.10pp above best individual", + "test_used_for_selection": false +} \ No newline at end of file diff --git a/ablations/10_plateau_breakthrough/workspace/covariance_research_20261010/protected_hashes.json b/ablations/10_plateau_breakthrough/workspace/covariance_research_20261010/protected_hashes.json new file mode 100644 index 0000000000000000000000000000000000000000..1645cdd987d2be9e7b5b443b285e1392c725b86c --- /dev/null +++ b/ablations/10_plateau_breakthrough/workspace/covariance_research_20261010/protected_hashes.json @@ -0,0 +1,11 @@ +{ + "config.py": "919187bb4d7cf6ab6ef3748287a3b2720b5b1057bab35edefa0d7ef0fae60531", + "dataset.py": "710b78cb1459498fbf45732809b18e3d8676433e5f2e06c43da6a0b6358b94dc", + "latest.utae.tar": "550f799d8ee7493112aa1d156f22487e1e999ff62b653a456e7a0000047bfe4b", + "model.py": "81d0a5820168363e0775cd7bfc36535398ef42e78dae9422c35d9455c7793442", + "temporal_srda.py": "1b73f000ae44c8680b94b021a379d4815f95a553af611c8f885a295e5179468e", + "research_round/checkpoints/sam/model_best_raw.tar": "aa834986f0756f8bcf5646f3af63d0ccbd59ad46d33f6a64641e98fe14e679f1", + "plateau_experiments/probe_best.tar": "3a17469c8d41370e6808f00c24fc49f8801c88a9e4715b5a19802bba9ec3fb30", + "overnight_research/32X32_full_seed3407/best.tar": "08ba0ec1c2409596301504f299c40b8eb20346c12241903364d74179b23a1774", + "temporal_research/32X32_cnn_control_seed3407/best.tar": "a08c3485199d8b519bf1a9dad72c84545b7adee818798acdfe068135be3de833" +} \ No newline at end of file diff --git a/ablations/10_plateau_breakthrough/workspace/covariance_research_20261010/queue.log b/ablations/10_plateau_breakthrough/workspace/covariance_research_20261010/queue.log new file mode 100644 index 0000000000000000000000000000000000000000..00a3ed5d5fd42d3c169fbf796a042a5f1ce6b2ff --- /dev/null +++ b/ablations/10_plateau_breakthrough/workspace/covariance_research_20261010/queue.log @@ -0,0 +1,10 @@ +/usr/lib/python3/dist-packages/scipy/__init__.py:146: UserWarning: A NumPy version >=1.17.3 and <1.25.0 is required for this version of SciPy (detected version 1.26.4 + warnings.warn(f"A NumPy version >={np_minversion} and <{np_maxversion}" +JOB END lowrank_qda64 0 +JOB END lowrank_qda128 0 +JOB END cluster_gaussian_shared 0 +JOB END cluster_gaussian_diagonal 0 +JOB END freeze_promotion 0 +/usr/lib/python3/dist-packages/scipy/__init__.py:146: UserWarning: A NumPy version >=1.17.3 and <1.25.0 is required for this version of SciPy (detected version 1.26.4 + warnings.warn(f"A NumPy version >={np_minversion} and <{np_maxversion}" +JOB END test_after_cnn_queue 0 diff --git a/ablations/10_plateau_breakthrough/workspace/covariance_research_20261010/source/ceiling_research.py b/ablations/10_plateau_breakthrough/workspace/covariance_research_20261010/source/ceiling_research.py new file mode 100644 index 0000000000000000000000000000000000000000..dd034ffbdfc69f454dbc436762a49dcd3e4712da --- /dev/null +++ b/ablations/10_plateau_breakthrough/workspace/covariance_research_20261010/source/ceiling_research.py @@ -0,0 +1,354 @@ +"""Validation-selected research toward 52–53% test mIoU; never test-tuned. + +Frozen statistical readouts and spatial refinement are deliberately separate +ablations. Existing patch lists, fixed crops, seed and protected files are reused. +""" +import argparse +import fcntl +import hashlib +import json +import subprocess +import sys +import time +from pathlib import Path +import numpy as np +import torch +from torch.nn import functional as F +import convnext_research as R +from plateau_probes import frozen_model, DepthCollector, metrics_cm, write_json +from ceiling_research_models import KINDS, make_model + +ROOT = Path(__file__).resolve().parent +OUT = ROOT/'ceiling_research_20261010' +PREVIOUS = ROOT/'score_breakthrough_20261010' +REFERENCE = ROOT/'convnext_research_20261010' +FEATURES = ROOT/'plateau_experiments/cache/sam' +BASE_VAL = .5332740800605796 +BASE_TEST = .5024633263506436 +ALPHAS = [0., .1, .25, .5] +READOUTS = ['lda_depth1', 'lda_depth2', 'lda_multidepth', 'lda_balanced', 'diagonal_qda', 'random_relu_ridge'] + + +def folder(name): + return OUT/f'32X32_{name}_seed3407' + + +def baseline_val(): + ref = np.load(REFERENCE/'validation_reference.npz') + g = np.load(PREVIOUS/'32X32_gaussian_readout_seed3407/validation_probabilities.npy') + s = np.load(PREVIOUS/'32X32_structured_ssl_blend_seed3407/validation_probabilities.npy') + p = .65*ref['recommended'] + .25*g + .1*s + assert abs(metrics_cm(R.cm_for(ref['labels'], p.argmax(-1)))['miou']-BASE_VAL) < 1e-9 + return ref, p + + +def setup(): + OUT.mkdir(exist_ok=True) + R.seed() + R.OUT = OUT + R.make_model = make_model + R.BASE_VAL = BASE_VAL + R.OPTIONS = [('add', a) for a in ALPHAS] + if not (OUT/'validation_reference.npz').exists(): + ref, p = baseline_val() + np.savez_compressed(OUT/'validation_reference.npz', labels=ref['labels'], + patch_ids=ref['patch_ids'], recommended=p, old_reference=p) + + +def feature_rows(features, depth): + return np.asarray(features[:, depth] if depth >= 0 else features.reshape(len(features), -1), dtype=np.float32) + + +def softmax(scores, temperature): + p = np.zeros((len(scores), 20), np.float32) + p[:, 1:19] = torch.from_numpy(np.asarray(scores/temperature, dtype=np.float32)).softmax(1).numpy() + return p + + +def readout_predict(features, params): + depth = int(params['depth']) + x = (feature_rows(features, depth)-params['mean'])/params['std'] + kind = str(params['type']) + if kind == 'linear': + scores = x @ params['weight'] + params['bias'] + elif kind == 'qda': + # Expanded diagonal quadratic avoids N x classes x features allocations. + inv = params['inverse_variance']; centers = params['centers'] + scores = -.5*(x*x) @ inv.T + x @ (centers*inv).T + params['bias'] + else: + z = np.maximum(x @ params['projection'], 0) + scores = np.concatenate([z, np.ones((len(z), 1), np.float32)], 1) @ params['weight'] + return softmax(scores, float(params['temperature'])) + + +def fit_readout(name): + dest = folder(name); dest.mkdir(exist_ok=True) + trainf = np.load(FEATURES/'train/features.npy', mmap_mode='r') + valf = np.load(FEATURES/'val/features.npy', mmap_mode='r') + y = np.load(FEATURES/'train/labels.npy'); take = (y > 0) & (y < 19) + y = y[take].astype(np.int64)-1 + depth = {'lda_depth1': 1, 'lda_depth2': 2, 'lda_multidepth': -1}.get(name, 0) + x = feature_rows(trainf, depth)[take] + mean = x.mean(0); std = x.std(0).clip(.01); x = (x-mean)/std + v = (feature_rows(valf, depth)-mean)/std + centers = np.stack([x[y == c].mean(0) for c in range(18)]) + count = np.bincount(y, minlength=18) + base = np.load(OUT/'validation_reference.npz'); labels = base['labels']; baseline = base['recommended'] + assert np.array_equal(labels, np.load(FEATURES/'val/labels.npy')) + params_base = dict(depth=depth, mean=mean, std=std) + configs = [] + if name.startswith('lda'): + residual = x-centers[y] + if name == 'lda_balanced': + covariance = sum((residual[y == c].T @ residual[y == c])/count[c] for c in range(18))/18 + else: + covariance = residual.T @ residual / len(x) + values, vectors = np.linalg.eigh(covariance.astype(np.float64)) + for shrinkage in [.1, .5]: + inverse = (vectors / ((1-shrinkage)*values+shrinkage*values.mean()).clip(1e-6)) @ vectors.T + weight = (inverse @ centers.T).astype(np.float32) + bias = -.5*(centers*weight.T).sum(1) + scores = v @ weight + bias + for temp in [4., 16., 64.]: + configs.append((dict(params_base, type='linear', weight=weight, bias=bias, temperature=temp), + scores, {'shrinkage':shrinkage,'temperature':temp})) + elif name == 'diagonal_qda': + variance = np.stack([x[y == c].var(0) for c in range(18)]) + pooled = (variance*count[:, None]).sum(0)/count.sum() + for shrinkage in [.5, .9]: + variance_s = ((1-shrinkage)*variance+shrinkage*pooled).clip(.05) + inverse = 1/variance_s + bias = -.5*((centers*centers*inverse).sum(1)+np.log(variance_s).sum(1)) + scores = -.5*(v*v) @ inverse.T + v @ (centers*inverse).T + bias + for temp in [16., 64., 256.]: + configs.append((dict(params_base, type='qda', inverse_variance=inverse, centers=centers, + bias=bias, temperature=temp), scores, {'shrinkage':shrinkage,'temperature':temp})) + else: + rng = np.random.default_rng(3407) + projection = (rng.standard_normal((x.shape[1], 1024))/np.sqrt(x.shape[1])).astype(np.float32) + z = np.concatenate([np.maximum(x @ projection, 0), np.ones((len(x),1), np.float32)],1) + zv = np.concatenate([np.maximum(v @ projection, 0), np.ones((len(v),1), np.float32)],1) + sample_weight = (count[y].astype(np.float32)/count.mean())**-.5 + target = np.eye(18,dtype=np.float32)[y] + gram = z.T @ (sample_weight[:,None]*z)/len(z) + rhs = z.T @ (sample_weight[:,None]*target)/len(z) + for ridge in [.001, .1, 10.]: + weight = np.linalg.solve(gram + ridge*np.eye(len(gram)), rhs).astype(np.float32) + scores = zv @ weight + for temp in [.1, .25, 1.]: + configs.append((dict(params_base, type='random_relu', projection=projection, weight=weight, temperature=temp), + scores, {'ridge':ridge,'temperature':temp})) + best = None; records = [] + for params, scores, settings in configs: + p = softmax(scores, float(params['temperature'])) + for alpha in ALPHAS: + metric = metrics_cm(R.cm_for(labels, ((1-alpha)*baseline+alpha*p).argmax(-1))) + row = dict(settings, alpha=alpha, miou=metric['miou']); records.append(row) + if best is None or row['miou'] > best[0]: + best = row['miou'], params, p.copy(), dict(alpha=alpha, mode='add', metrics=metric), settings + _, params, p, chosen, settings = best + np.savez(dest/'readout.npz', **params) + np.save(dest/'validation_probabilities.npy', p) + # Assert saved inference reproduces selection on a small slice. + assert np.allclose(readout_predict(valf[:128],params),p[:128],atol=2e-6) + write_json(dest/'selection.json', {'kind':name,'seed':3407,'chosen':chosen,'settings':settings, + 'standalone':metrics_cm(R.cm_for(labels,p.argmax(-1))), 'records':records, + 'delta_val_pp':100*(chosen['metrics']['miou']-BASE_VAL), + 'train_pixels':int(take.sum()),'selection_split':'validation','test_used_for_selection':False}) + print('READOUT', name, chosen['metrics']['miou'],chosen['alpha'],flush=True) + + +def select_cnn(name): + R.select(name) + model, _ = R.load_candidate(name) + _, (p, y) = R.validate(model,R.loader(R.val_patch_ids(),2),True) + assert np.array_equal(y,np.load(OUT/'validation_reference.npz')['labels']) + np.save(folder(name)/'validation_probabilities.npy',p) + + +def promotion(): + records = [] + for name in READOUTS+KINDS: + path = folder(name)/'selection.json' + if path.exists(): + s = json.loads(path.read_text()) + records.append((s['chosen']['metrics']['miou'],name,s['chosen']['alpha'])) + ranked = sorted(records,reverse=True) + selected = [n for score,n,a in ranked if 100*(score-BASE_VAL)>=.1 and a>0][:2] + baseline = np.load(OUT/'validation_reference.npz'); combo = None + if len(selected) == 2: + # One predetermined additive combination, using independently chosen weights. + weights = {n:json.loads((folder(n)/'selection.json').read_text())['chosen']['alpha'] for n in selected} + weights['incumbent'] = 1-sum(weights.values()) + p = weights['incumbent']*baseline['recommended'] + for name in selected:p = p + weights[name]*np.load(folder(name)/'validation_probabilities.npy') + metric = metrics_cm(R.cm_for(baseline['labels'],p.argmax(-1))) + if metric['miou'] >= ranked[0][0]+.001: + combo = {'weights':weights,'metrics':metric} + write_json(OUT/'promotion.json',{'frozen_at':R.now(),'selected':selected,'ranking':ranked,'combined':combo, + 'rule':'top two validation gains >=0.10pp; one additive combo only if >=0.10pp above best individual', + 'test_used_for_selection':False}) + print('PROMOTION',selected,'combo',combo is not None,flush=True) + + +def baseline_test(): + arrays = [np.load(path,mmap_mode='r') for path in [REFERENCE/'recommended_test_probabilities.npy', + PREVIOUS/'gaussian_test_probabilities.npy', PREVIOUS/'structured_test_probabilities.npy']] + return arrays + + +def test(): + promotion_record = json.loads((OUT/'promotion.json').read_text()) + selected = promotion_record['selected'] + if not selected: + write_json(OUT/'test_summary.json',{'status':'no_validation_promotion','baseline_test_miou':BASE_TEST}) + return + import model as original_model + original_model.SPATIAL_CHUNK=32;original_model.EVAL_TEMPORAL_CHUNK=4096 + base_arrays = baseline_test() + labels = np.load(REFERENCE/'test_labels.npy',mmap_mode='r') + caches = {n:np.lib.format.open_memmap(folder(n)/'test_probabilities.npy',mode='w+',dtype=np.float32, + shape=base_arrays[0].shape) for n in selected} + cms = {n:np.zeros((20,20),np.int64) for n in selected};single = {n:np.zeros((20,20),np.int64) for n in selected} + base_cm=np.zeros((20,20),np.int64);combo_cm=base_cm.copy();start=time.monotonic() + analytic=[n for n in selected if n in READOUTS];cnn=[n for n in selected if n in KINDS] + net=frozen_model('sam','cpu') if analytic else None + collector=DepthCollector(net.utae) if net else None + params={n:dict(np.load(folder(n)/'readout.npz')) for n in analytic} + models={n:make_model(n).eval() for n in cnn} + for n,m in models.items():m.load_state_dict(torch.load(folder(n)/'best.tar',map_location='cpu',weights_only=False)['state']) + alphas={n:json.loads((folder(n)/'selection.json').read_text())['chosen']['alpha'] for n in selected} + with torch.inference_mode(): + for bi,((x,pos,_),y) in enumerate(R.loader(R.test_patch_ids(),1)): + assert np.array_equal(y[0].numpy(),labels[bi]) + base=.65*base_arrays[0][bi]+.25*base_arrays[1][bi]+.1*base_arrays[2][bi] + base_cm+=R.cm_for(labels[bi],base.argmax(-1)) + x,pos=x.cuda(),pos.cuda();preds={} + if analytic: + net.cuda();collector.begin(x,pos) + with torch.autocast('cuda',dtype=torch.float16):out=net.utae(x,pos) + del out + f=collector.end();net.cpu();torch.cuda.empty_cache() + for n in analytic:preds[n]=readout_predict(f,params[n]).reshape(128,128,20) + for n,m in models.items(): + m.cuda() + with torch.autocast('cuda',dtype=torch.float16):p=R.probabilities(m(x,pos)) + preds[n]=p[0].permute(1,2,0).cpu().numpy();del p + m.cpu();torch.cuda.empty_cache() + for n,p in preds.items(): + caches[n][bi]=p;single[n]+=R.cm_for(labels[bi],p.argmax(-1)) + cms[n]+=R.cm_for(labels[bi],((1-alphas[n])*base+alphas[n]*p).argmax(-1)) + if promotion_record['combined']: + w=promotion_record['combined']['weights'];p=w['incumbent']*base + for n in selected:p=p+w[n]*preds[n] + combo_cm+=R.cm_for(labels[bi],p.argmax(-1)) + if bi%25==0:print('TEST',bi,482,selected,flush=True) + if collector:collector.close() + assert bi+1==482 and abs(metrics_cm(base_cm)['miou']-BASE_TEST)<1e-9 + result={'finished':R.now(),'patches':482,'seconds':time.monotonic()-start,'baseline':metrics_cm(base_cm), + 'promotion':promotion_record,'results':{},'test_used_for_selection':False} + for n in selected: + caches[n].flush();metric=metrics_cm(cms[n]) + row={'metrics':metric,'standalone':metrics_cm(single[n]),'delta_test_pp':100*(metric['miou']-BASE_TEST), + 'patches':482,'selection':json.loads((folder(n)/'selection.json').read_text()),'test_used_for_selection':False} + result['results'][n]=row;write_json(folder(n)/'test_results.json',row) + if promotion_record['combined']:result['combined']={'metrics':metrics_cm(combo_cm),'recipe':promotion_record['combined']} + write_json(OUT/'test_summary.json',result) + report() + + +def report(): + text=['# Research toward 52–53% Test mIoU','', + 'Incumbent: 53.3274080% validation / 50.2463326% test. Scores below are measured; missing tests were not run.', + '', '| Method | Standalone val mIoU | Blended val mIoU | Test mIoU |', '|---|---:|---:|---:|'] + for n in READOUTS+KINDS: + f=folder(n)/'selection.json' + if not f.exists():continue + s=json.loads(f.read_text());t=folder(n)/'test_results.json' + score=f"{100*json.loads(t.read_text())['metrics']['miou']:.4f}%" if t.exists() else 'Not evaluated' + text.append(f"| {n} | {100*s['standalone']['miou']:.4f}% | {100*s['chosen']['metrics']['miou']:.4f}% | {score} |") + t=OUT/'test_summary.json' + if t.exists(): + result=json.loads(t.read_text()) + if result.get('combined'): + text.extend(['',f"Frozen additive combination test mIoU: **{100*result['combined']['metrics']['miou']:.4f}%**."]) + text.extend(['','Training lists, duplicates, folds, seed 3407, two fixed32 crops and original pretrained files are preserved.', + 'Settings and promotion were chosen on validation. The project test set has been inspected repeatedly; results remain exploratory.', + 'Read `promotion.json`, `status.json` and individual selection/test JSONs for audit records.']) + (OUT/'RESULTS.md').write_text('\n'.join(text)+'\n') + + +def smoke(): + from temporal_specialist import TemporalCNN + x=torch.randn(2,9,10,8,8);pos=torch.tensor([[0,1,2,3,4,5,6,7,8],[0,1,2,3,4,0,0,0,0]]) + ck=torch.load(ROOT/'temporal_research/32X32_cnn_control_seed3407/best.tar',map_location='cpu',weights_only=False) + original=TemporalCNN();original.load_state_dict(ck['state']);original.eval() + records=[] + inherited_padding_error=float((original(x,pos)-original(F.pad(x,(0,0,0,0,0,0,0,3)),F.pad(pos,(0,3)))).abs().max()) + for name in KINDS: + m=make_model(name);out=m(x,pos) + if 'padding_safe' not in name:assert torch.allclose(out,original(x,pos),atol=2e-6) + out.square().mean().backward() + gradients=[p.grad for p in m.parameters() if p.requires_grad and p.grad is not None] + assert gradients and all(torch.isfinite(g).all() for g in gradients) + with torch.no_grad():m.spatial[-1].weight.normal_(0,.01) + out=m(x,pos) + padded=m(F.pad(x,(0,0,0,0,0,0,0,3)),F.pad(pos,(0,3))) + error=float((out-padded).abs().max()) + if 'padding_safe' in name:assert error<1e-5 + else:assert error=.52, + 'best_observed_test_miou':max(scores),'stretch_goal_reached':max(scores)>=.53, + 'note':'Queue completion alone does not mean the research goal was achieved.'}) + + +def train_cnn(name): + R.train(name,150) + path=folder(name)/'config.json';config=json.loads(path.read_text()) + config.update(pretrained=True,pretrained_source='existing seed3407 supervised temporal CNN; no external pretraining', + initial_checkpoint=str(ROOT/'temporal_research/32X32_cnn_control_seed3407/best.tar'), + architecture_scope='temporal CNN spatial residual refinement or isolated padding correction', + padding_safe='padding_safe' in name, frozen_backbone=name.endswith('_frozen')) + write_json(path,config) + + +if __name__=='__main__': + parser=argparse.ArgumentParser();parser.add_argument('action',choices=['smoke','readout','train','select','promote','test','queue','report']) + parser.add_argument('--kind',choices=READOUTS+KINDS);args=parser.parse_args();setup() + if args.action=='smoke':smoke() + elif args.action=='readout':fit_readout(args.kind) + elif args.action=='train':train_cnn(args.kind) + elif args.action=='select':select_cnn(args.kind) + elif args.action=='promote':promotion() + elif args.action=='test':test() + elif args.action=='report':report() + else:queue() diff --git a/ablations/10_plateau_breakthrough/workspace/covariance_research_20261010/source/ceiling_research_models.py b/ablations/10_plateau_breakthrough/workspace/covariance_research_20261010/source/ceiling_research_models.py new file mode 100644 index 0000000000000000000000000000000000000000..c90f80bb4316d70dd79f79a5fe8291ed0e8f1f06 --- /dev/null +++ b/ablations/10_plateau_breakthrough/workspace/covariance_research_20261010/source/ceiling_research_models.py @@ -0,0 +1,59 @@ +"""Spatial refinements of the successful temporal CNN, with unchanged inputs.""" +import torch +from torch import nn +from torch.nn import functional as F +from temporal_specialist import TemporalCNN +from top5_models import valid_from_index_positions + +KINDS = ['padding_safe_control', 'pointwise_refine', 'spatial3_refine', 'spatial7_refine', + 'spatial7_frozen', 'spatial7_padding_safe'] + + +class SpatialTemporalCNN(TemporalCNN): + def __init__(self, kind): + super().__init__(18) + self.kind = kind + k = 1 if kind == 'pointwise_refine' else 3 if kind == 'spatial3_refine' else 7 + self.spatial = nn.Sequential(nn.Conv2d(128, 64, 1), nn.GELU(), + nn.Conv2d(64, 64, k, padding=k//2, groups=64), + nn.GELU(), nn.Conv2d(64, 18, 1)) + nn.init.zeros_(self.spatial[-1].weight) + nn.init.zeros_(self.spatial[-1].bias) + + def forward(self, x, pos): + b, t, c, h, w = x.shape + valid = valid_from_index_positions(pos)[:, None, None].expand(b, h, w, t).reshape(-1, t, 1) + flat = x.permute(0, 3, 4, 1, 2).reshape(-1, t, c) + pooled = [] + for start in range(0, len(flat), 1024): + mask = valid[start:start+1024] + z = self.input(flat[start:start+1024]) * mask + for norm, conv, mix in zip(self.norms, self.convs, self.mix): + normalized = norm(z) + if 'padding_safe' in self.kind: + normalized = normalized * mask + z = (z + mix(F.gelu(conv(normalized.transpose(1, 2)).transpose(1, 2)))) * mask + pooled.append(torch.cat([z.sum(1)/mask.sum(1).clamp_min(1), + z.masked_fill(~mask, torch.finfo(z.dtype).min).amax(1)], -1)) + features = torch.cat(pooled) + logits = self.head(features).reshape(b, h, w, 18).permute(0, 3, 1, 2) + features = features.reshape(b, h, w, 128).permute(0, 3, 1, 2) + return logits if self.kind == 'padding_safe_control' else logits + self.spatial(features) + + +def make_model(kind, classes=18): + if kind not in KINDS or classes != 18: + raise ValueError(kind) + from pathlib import Path + model = SpatialTemporalCNN(kind) + checkpoint = Path(__file__).parent/'temporal_research/32X32_cnn_control_seed3407/best.tar' + ck = torch.load(checkpoint, map_location='cpu', weights_only=False) + missing, unexpected = model.load_state_dict(ck['state'], strict=False) + assert not unexpected and all(k.startswith('spatial.') for k in missing) + if kind.endswith('_frozen'): + for name, p in model.named_parameters(): + p.requires_grad_(name.startswith('spatial.')) + if kind == 'padding_safe_control': + for p in model.spatial.parameters(): + p.requires_grad_(False) + return model diff --git a/ablations/10_plateau_breakthrough/workspace/covariance_research_20261010/source/covariance_research.py b/ablations/10_plateau_breakthrough/workspace/covariance_research_20261010/source/covariance_research.py new file mode 100644 index 0000000000000000000000000000000000000000..dfa2581e03676ecf5282e2e0624c7dc46cd3ae38 --- /dev/null +++ b/ablations/10_plateau_breakthrough/workspace/covariance_research_20261010/source/covariance_research.py @@ -0,0 +1,166 @@ +"""Follow up the validation-only diagonal-QDA signal with structured covariances. + +CPU fitting can overlap the CNN queue. GPU testing waits for that live service +to finish, and all statistical parameters use only the original training crops. +""" +import argparse +import fcntl +import json +import subprocess +import sys +import time +from pathlib import Path +import numpy as np +import torch +from sklearn.cluster import MiniBatchKMeans +import ceiling_research as E +from plateau_probes import metrics_cm, write_json + +ROOT=Path(__file__).resolve().parent +OUT=ROOT/'covariance_research_20261010' +KINDS=['lowrank_qda64','lowrank_qda128','cluster_gaussian_shared','cluster_gaussian_diagonal'] + + +def predict_scores(features,p): + x=(E.feature_rows(features,0)-p['mean'])/p['std'] + if str(p['type'])=='lowrank_qda': + x=(x-p['pca_center'])@p['projection'] + inv=p['inverse'];centers=p['centers'] + out=[] + for c in range(18): + d=x-centers[c] + out.append(-.5*((d@inv[c])*d).sum(1)+p['bias'][c]) + return np.stack(out,1) + # Three Gaussian components per crop class; use stable, equal-weight mixture. + scores=[] + for c in range(18): + inv=p['inverse'][c];centers=p['centers'][c] + z=-.5*(x*x)@inv.T+x@(centers*inv).T+p['bias'][c] + peak=z.max(1,keepdims=True) + scores.append(peak[:,0]+np.log(np.exp(z-peak).mean(1).clip(1e-30))) + return np.stack(scores,1) + + +def predict(features,params): + # Bounded temporary memory for whole-patch inference. + return np.concatenate([E.softmax(predict_scores(features[i:i+4096],params),float(params['temperature'])) + for i in range(0,len(features),4096)]) + + +def setup(): + E.OUT=OUT;E.READOUTS=KINDS;E.KINDS=[];E.readout_predict=predict;E.setup() + + +def fit(name): + dest=E.folder(name);dest.mkdir(exist_ok=True) + tf=np.load(E.FEATURES/'train/features.npy',mmap_mode='r') + vf=np.load(E.FEATURES/'val/features.npy',mmap_mode='r') + labels=np.load(E.FEATURES/'train/labels.npy');take=(labels>0)&(labels<19);y=labels[take].astype(np.int64)-1 + raw=E.feature_rows(tf,0)[take];mean=raw.mean(0);std=raw.std(0).clip(.01);x=(raw-mean)/std + base=np.load(OUT/'validation_reference.npz');v=(E.feature_rows(vf,0)-mean)/std + assert np.array_equal(base['labels'],np.load(E.FEATURES/'val/labels.npy')) + parameter_sets=[] + if name.startswith('lowrank'): + dim=int(name.rsplit('qda',1)[-1]);center=x.mean(0) + _,vectors=np.linalg.eigh(((x-center).T@(x-center)/len(x)).astype(np.float64)) + projection=vectors[:,-dim:].astype(np.float32);xp=(x-center)@projection + centers=np.stack([xp[y==c].mean(0) for c in range(18)]) + cov=np.stack([np.cov(xp[y==c],rowvar=False,bias=True) for c in range(18)]) + counts=np.bincount(y,minlength=18);pooled=(cov*counts[:,None,None]).sum(0)/len(x) + scale=np.trace(pooled)/dim + for shrink in [.5,.9]: + # Most covariance is pooled; ridge prevents singular rare-class matrices. + matrices=(1-shrink)*cov+shrink*pooled[None]+.05*scale*np.eye(dim)[None] + inverse=np.linalg.inv(matrices).astype(np.float32) + sign,logdet=np.linalg.slogdet(matrices);assert (sign>0).all() + p={'type':'lowrank_qda','mean':mean,'std':std,'pca_center':center,'projection':projection, + 'centers':centers,'inverse':inverse,'bias':(-.5*logdet).astype(np.float32)} + parameter_sets.append((p,{'components':dim,'covariance_shrinkage':shrink,'ridge_fraction':.05})) + else: + centers=[];variances=[] + pooled=np.stack([x[y==c].var(0) for c in range(18)]).mean(0) + for c in range(18): + xc=x[y==c] + km=MiniBatchKMeans(n_clusters=3,n_init=3,batch_size=2048,max_iter=100,random_state=3407).fit(xc) + z=km.predict(xc) + centers.append(np.stack([xc[z==k].mean(0) if (z==k).any() else km.cluster_centers_[k] for k in range(3)])) + variances.append(np.stack([xc[z==k].var(0) if (z==k).sum()>1 else pooled for k in range(3)])) + centers=np.array(centers);variances=np.array(variances) + for shrink in [.5,.9]: + var=((1-shrink)*variances+shrink*pooled[None,None]).clip(.05) + if name.endswith('_shared'):var=np.broadcast_to(pooled.clip(.05),var.shape).copy() + inverse=1/var;bias=-.5*((centers*centers*inverse).sum(-1)+np.log(var).sum(-1)) + p={'type':'cluster_gaussian','mean':mean,'std':std,'centers':centers,'inverse':inverse,'bias':bias} + parameter_sets.append((p,{'clusters_per_class':3,'variance_shrinkage':shrink,'class_prior':'uniform','mixture_prior':'uniform'})) + if name.endswith('_shared'):break + best=None;records=[] + for params,settings in parameter_sets: + # Scores computed once per covariance, calibration evaluated cheaply. + scores=np.concatenate([predict_scores(vf[i:i+4096],params) for i in range(0,len(vf),4096)]) + for temperature in [4.,16.,64.]: + candidate=E.softmax(scores,temperature) + for alpha in E.ALPHAS: + metric=metrics_cm(E.R.cm_for(base['labels'],((1-alpha)*base['recommended']+alpha*candidate).argmax(-1))) + row=dict(settings,temperature=temperature,alpha=alpha,miou=metric['miou']);records.append(row) + if best is None or row['miou']>best[0]: + best=(row['miou'],dict(params,temperature=temperature),candidate.copy(), + {'alpha':alpha,'mode':'add','metrics':metric},row) + _,params,candidate,chosen,settings=best + np.savez(dest/'readout.npz',**params);np.save(dest/'validation_probabilities.npy',candidate) + assert np.allclose(predict(vf[:128],params),candidate[:128],atol=3e-6) + write_json(dest/'selection.json',{'kind':name,'chosen':chosen,'settings':settings,'records':records, + 'standalone':metrics_cm(E.R.cm_for(base['labels'],candidate.argmax(-1))), + 'delta_val_pp':100*(chosen['metrics']['miou']-E.BASE_VAL),'seed':3407, + 'train_pixels':int(take.sum()),'selection_split':'validation','test_used_for_selection':False}) + print('COVARIANCE RESULT',name,chosen['metrics']['miou'],chosen['alpha'],flush=True) + + +def test_after_gpu_queue(): + promotion=json.loads((OUT/'promotion.json').read_text()) + if not promotion['selected']: + E.test() + write_json(OUT/'gpu_wait.json',{'status':'not_needed_no_validation_promotion','finished':E.R.now()}) + return + write_json(OUT/'gpu_wait.json',{'status':'waiting','unit':'tsr-ceiling-research.service','started':E.R.now()}) + while True: + result=subprocess.run(['systemctl','--user','show','tsr-ceiling-research.service', + '--property=ActiveState,SubState,MainPID'],capture_output=True,text=True) + if result.returncode: + raise RuntimeError('Cannot establish live GPU queue state: '+result.stderr) + status=dict(line.split('=',1) for line in result.stdout.splitlines() if '=' in line) + if status.get('ActiveState') not in ['active','activating','deactivating']: + break + write_json(OUT/'gpu_wait.json',{'status':'waiting','checked_at':E.R.now(),'live_unit':status}) + time.sleep(20) + write_json(OUT/'gpu_wait.json',{'status':'running_test','checked_at':E.R.now(),'prior_unit':status}) + E.test() + write_json(OUT/'gpu_wait.json',{'status':'completed','finished':E.R.now()}) + + +def queue(): + lock=(OUT/'queue.lock').open('w');fcntl.flock(lock,fcntl.LOCK_EX|fcntl.LOCK_NB) + manifest=OUT/'protected_hashes.json' + if not manifest.exists():write_json(manifest,E.R.protected_hashes()) + jobs=[(name,['fit','--kind',name]) for name in KINDS]+[('freeze_promotion',['promote']),('test_after_cnn_queue',['test'])] + path=OUT/'status.json';state=json.loads(path.read_text()) if path.exists() else {} + for n,args in jobs:state.setdefault(n,{'status':'queued','arguments':args}) + write_json(path,state) + for n,args in jobs: + if state[n]['status']=='completed':continue + assert E.R.protected_hashes()==json.loads(manifest.read_text()) + state[n].update(status='running',started=E.R.now());write_json(path,state);start=time.monotonic() + with (OUT/(n+'.log')).open('a') as log: + rc=subprocess.run([sys.executable,'-u',__file__,*args],cwd=ROOT,stdout=log,stderr=subprocess.STDOUT).returncode + state[n].update(status='completed' if rc==0 else 'failed',returncode=rc,ended=E.R.now(),seconds=time.monotonic()-start) + write_json(path,state);E.report();print('JOB END',n,rc,flush=True) + if rc:raise RuntimeError('Failed '+n) + write_json(OUT/'completion.json',{'finished':E.R.now(),'jobs':state}) + + +if __name__=='__main__': + parser=argparse.ArgumentParser();parser.add_argument('action',choices=['fit','promote','test','queue']);parser.add_argument('--kind',choices=KINDS) + args=parser.parse_args();setup() + if args.action=='fit':fit(args.kind) + elif args.action=='promote':E.promotion() + elif args.action=='test':test_after_gpu_queue() + else:queue() diff --git a/ablations/10_plateau_breakthrough/workspace/covariance_research_20261010/source/run_covariance_research.sh b/ablations/10_plateau_breakthrough/workspace/covariance_research_20261010/source/run_covariance_research.sh new file mode 100644 index 0000000000000000000000000000000000000000..296d045ac5b5c8e590ec55e3d7fc8457545a016e --- /dev/null +++ b/ablations/10_plateau_breakthrough/workspace/covariance_research_20261010/source/run_covariance_research.sh @@ -0,0 +1,10 @@ +#!/usr/bin/env bash +set -euo pipefail +cd /home/ubuntu/tsr +export PASTIS_ROOT=/home/ubuntu/PASTIS +export LD_LIBRARY_PATH=/home/ubuntu/tsr/cuda12_libs/nvidia/cudnn/lib:/home/ubuntu/tsr/cuda12_libs/nvidia/cublas/lib +export LD_PRELOAD=/home/ubuntu/tsr/cuda12_libs/nvidia/cudnn/lib/libcudnn.so.9:/home/ubuntu/tsr/cuda12_libs/nvidia/cublas/lib/libcublas.so.12:/home/ubuntu/tsr/cuda12_libs/nvidia/cublas/lib/libcublasLt.so.12 +export PYTORCH_CUDA_ALLOC_CONF=expandable_segments:True +export OPENBLAS_NUM_THREADS=4 +export OMP_NUM_THREADS=4 +exec python3 -u covariance_research.py "$@" diff --git a/ablations/10_plateau_breakthrough/workspace/covariance_research_20261010/source_hashes.json b/ablations/10_plateau_breakthrough/workspace/covariance_research_20261010/source_hashes.json new file mode 100644 index 0000000000000000000000000000000000000000..8243f49c6395c5d288d3e1d68224c0ae49e0cbb7 --- /dev/null +++ b/ablations/10_plateau_breakthrough/workspace/covariance_research_20261010/source_hashes.json @@ -0,0 +1,6 @@ +{ + "covariance_research.py": "d3e3df529157007cd2b099932750a35e2d5dd117b767c74c3e3d730a5e2facd0", + "run_covariance_research.sh": "4c39ca9540ed2fb6396ed99e075af176eec9f832d772c2bd1cf2411a431e316b", + "ceiling_research.py": "707b6d79c8ee2ac108f7868bf2b4c1a346184cc8490784844ac143c80a98da05", + "ceiling_research_models.py": "20261e4c70cc0a1e90946f543a41e6519d8c95435f4c901016bdefd312edd5d5" +} \ No newline at end of file diff --git a/ablations/10_plateau_breakthrough/workspace/covariance_research_20261010/status.json b/ablations/10_plateau_breakthrough/workspace/covariance_research_20261010/status.json new file mode 100644 index 0000000000000000000000000000000000000000..957c3bcd4e4481acce87dd92fd4aa376965f39cc --- /dev/null +++ b/ablations/10_plateau_breakthrough/workspace/covariance_research_20261010/status.json @@ -0,0 +1,70 @@ +{ + "lowrank_qda64": { + "status": "completed", + "arguments": [ + "fit", + "--kind", + "lowrank_qda64" + ], + "started": "2026-10-10T19:46:20.406526+00:00", + "returncode": 0, + "ended": "2026-10-10T19:46:31.744622+00:00", + "seconds": 11.337737454101443 + }, + "lowrank_qda128": { + "status": "completed", + "arguments": [ + "fit", + "--kind", + "lowrank_qda128" + ], + "started": "2026-10-10T19:46:31.809294+00:00", + "returncode": 0, + "ended": "2026-10-10T19:46:44.529457+00:00", + "seconds": 12.719810588285327 + }, + "cluster_gaussian_shared": { + "status": "completed", + "arguments": [ + "fit", + "--kind", + "cluster_gaussian_shared" + ], + "started": "2026-10-10T19:46:44.571620+00:00", + "returncode": 0, + "ended": "2026-10-10T19:46:58.894879+00:00", + "seconds": 14.323053451720625 + }, + "cluster_gaussian_diagonal": { + "status": "completed", + "arguments": [ + "fit", + "--kind", + "cluster_gaussian_diagonal" + ], + "started": "2026-10-10T19:46:58.948980+00:00", + "returncode": 0, + "ended": "2026-10-10T19:47:17.245032+00:00", + "seconds": 18.295671520754695 + }, + "freeze_promotion": { + "status": "completed", + "arguments": [ + "promote" + ], + "started": "2026-10-10T19:47:17.300204+00:00", + "returncode": 0, + "ended": "2026-10-10T19:47:20.266575+00:00", + "seconds": 2.965991680044681 + }, + "test_after_cnn_queue": { + "status": "completed", + "arguments": [ + "test" + ], + "started": "2026-10-10T19:48:04.123510+00:00", + "returncode": 0, + "ended": "2026-10-10T19:48:07.263002+00:00", + "seconds": 3.139091200195253 + } +} \ No newline at end of file diff --git a/ablations/10_plateau_breakthrough/workspace/covariance_research_20261010/test_after_cnn_queue.log b/ablations/10_plateau_breakthrough/workspace/covariance_research_20261010/test_after_cnn_queue.log new file mode 100644 index 0000000000000000000000000000000000000000..55e6bf455a3c8f5dfd84b124e8853ead1b8fdfe7 --- /dev/null +++ b/ablations/10_plateau_breakthrough/workspace/covariance_research_20261010/test_after_cnn_queue.log @@ -0,0 +1,4 @@ +/usr/lib/python3/dist-packages/scipy/__init__.py:146: UserWarning: A NumPy version >=1.17.3 and <1.25.0 is required for this version of SciPy (detected version 1.26.4 + warnings.warn(f"A NumPy version >={np_minversion} and <{np_maxversion}" +/usr/lib/python3/dist-packages/scipy/__init__.py:146: UserWarning: A NumPy version >=1.17.3 and <1.25.0 is required for this version of SciPy (detected version 1.26.4 + warnings.warn(f"A NumPy version >={np_minversion} and <{np_maxversion}" diff --git a/ablations/10_plateau_breakthrough/workspace/covariance_research_20261010/test_summary.json b/ablations/10_plateau_breakthrough/workspace/covariance_research_20261010/test_summary.json new file mode 100644 index 0000000000000000000000000000000000000000..b335c7aecd676f4a98ea933a0d30a5d2522028c1 --- /dev/null +++ b/ablations/10_plateau_breakthrough/workspace/covariance_research_20261010/test_summary.json @@ -0,0 +1,4 @@ +{ + "status": "no_validation_promotion", + "baseline_test_miou": 0.5024633263506436 +} \ No newline at end of file diff --git a/ablations/10_plateau_breakthrough/workspace/covariance_research_20261010/validation_reference.npz b/ablations/10_plateau_breakthrough/workspace/covariance_research_20261010/validation_reference.npz new file mode 100644 index 0000000000000000000000000000000000000000..c19a885b3da3b126c742e8b0e7e7a75523a74d54 --- /dev/null +++ b/ablations/10_plateau_breakthrough/workspace/covariance_research_20261010/validation_reference.npz @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:2238ce09571f24bec174bed01c454c332dc5e1771aff28abebdf51709cf93325 +size 22977949 diff --git a/ablations/10_plateau_breakthrough/workspace/dataset.py b/ablations/10_plateau_breakthrough/workspace/dataset.py new file mode 100644 index 0000000000000000000000000000000000000000..c95dd912c5f1bdb679875cffad567d48cb095a5d --- /dev/null +++ b/ablations/10_plateau_breakthrough/workspace/dataset.py @@ -0,0 +1,203 @@ +""" +PASTIS dataset loader for T-SRDA — OFFICIAL STCLN protocol. + +Each dataset item is ONE FULL 128x128 patch. Sub-cropping happens in the +training loop, not here, exactly as the reference implementation does it: + + pretrain (pretraining_STCLN.py:123) for i in range(4): for j in range(4) + finetune (finetuning_STCLN.py:185) for i,j in [[0,0],[1,1]] + test (test_STCLN.py:52) for i in range(1) -> full patch + +Keeping the crop schedule in the loop is what makes the step counts line up +with the paper: each (i, j) is a SEPARATE optimizer step, so pretrain does +124 batches x 16 crops = 1,984 steps/epoch, not 496 steps. + +Split builders: + patches_in_folds([5]) -> 496 pretrain patch IDs + train_patch_ids() -> 76 IDs (fold 1, duplicates kept) + val_patch_ids() -> 76 IDs (fold 2, duplicates kept) + test_patch_ids() -> 482 IDs (fold 4) +""" +import json +from datetime import datetime +import numpy as np +import torch +from torch.utils.data import Dataset + +import config as C + +REF_DATE = datetime(*map(int, C.REF_DATE_STR.split("-"))) + + +# --------------------------------------------------------------------------- +# Metadata + normalisation loaders (cached at module level) +# --------------------------------------------------------------------------- +def _date_to_days(date_int): + s = str(int(date_int)) + y, m, d = int(s[:4]), int(s[4:6]), int(s[6:8]) + return (datetime(y, m, d) - REF_DATE).days + + +def _load_meta(): + raw = json.load(open(C.META_PATH)) + info = {} + for feat in raw["features"]: + p = feat["properties"] + pid = int(p.get("ID_PATCH", p.get("id_patch", -1))) + fold = int(p.get("Fold", p.get("fold", 0))) + dates_dict = p.get("dates-S2", {}) + sorted_dates = sorted(dates_dict.items(), key=lambda x: int(x[0])) + days = [_date_to_days(v) for _, v in sorted_dates] + info[pid] = {"fold": fold, "dates": days} + return info + + +def _load_norm(): + """Per-fold mean/std averaged — matches PASTIS_Dataset(norm=True).""" + raw = json.load(open(C.NORM_PATH)) + if "mean" in raw: + return (np.array(raw["mean"], dtype=np.float32), + np.array(raw["std"], dtype=np.float32)) + fold_keys = [k for k in raw if k.startswith("Fold_")] + means = np.array([raw[k]["mean"] for k in fold_keys], dtype=np.float32) + stds = np.array([raw[k]["std"] for k in fold_keys], dtype=np.float32) + return means.mean(axis=0), stds.mean(axis=0) + + +_META = None +_NORM = None + + +def get_meta(): + global _META + if _META is None: + _META = _load_meta() + return _META + + +def get_norm(): + global _NORM + if _NORM is None: + _NORM = _load_norm() + return _NORM + + +# --------------------------------------------------------------------------- +# Split builders (official protocol) +# --------------------------------------------------------------------------- +def patches_in_folds(folds): + """Sorted patch IDs belonging to the given folds.""" + meta = get_meta() + return sorted(p for p in meta if meta[p]["fold"] in folds) + + +def pretrain_patch_ids(): + """496 fold-5 patch IDs — the unlabelled pretraining pool.""" + return patches_in_folds(C.PRETRAIN_FOLDS) + + +def train_patch_ids(): + """76 hardcoded fold-1 IDs. Duplicates are intentional and preserved.""" + return list(C.TRAIN_PATCH_IDS) + + +def val_patch_ids(): + """76 hardcoded fold-2 IDs. Duplicates are intentional and preserved.""" + return list(C.VAL_PATCH_IDS) + + +def test_patch_ids(): + """482 fold-4 patch IDs — evaluated as full 128x128 patches.""" + return patches_in_folds(C.TEST_FOLDS) + + +# --------------------------------------------------------------------------- +# Patch-level Dataset +# --------------------------------------------------------------------------- +class PASTISPatchDataset(Dataset): + """Returns ONE full 128x128 patch per __getitem__. + + __getitem__ -> (x, pos, days), y + x (T, 10, 128, 128) float32, per-band normalised + pos (T,) what the model is fed: arange(T) if USE_INDEX_POSITIONS + else real day offsets + days (T,) real day offsets from REF_DATE, always — for analysis + y (128, 128) int64 semantic labels + """ + + def __init__(self, patch_ids, load_target=True): + self.ids = list(patch_ids) # duplicates preserved on purpose + self.meta = get_meta() + self.norm_mean, self.norm_std = get_norm() + self.load_target = load_target + + def __len__(self): + return len(self.ids) + + def __getitem__(self, idx): + pid = self.ids[idx] + + x = np.load(C.DATA_S2_DIR / f"S2_{pid}.npy").astype(np.float32) + x = (x - self.norm_mean[None, :, None, None]) \ + / (self.norm_std[None, :, None, None] + 1e-8) + + T = x.shape[0] + days = np.asarray(self.meta[pid]["dates"][:T], dtype=np.float32) + if days.shape[0] < T: + days = np.pad(days, (0, T - days.shape[0])) + + pos = np.arange(T, dtype=np.float32) if C.USE_INDEX_POSITIONS else days + + if self.load_target: + target = np.load(C.ANNOT_DIR / f"TARGET_{pid}.npy") + y = torch.from_numpy(target[0].astype(np.int64)) + else: + y = torch.zeros(C.PATCH_SIZE, C.PATCH_SIZE, dtype=torch.long) + + return (torch.from_numpy(x), + torch.from_numpy(pos), + torch.from_numpy(days)), y + + +# --------------------------------------------------------------------------- +# Collate (pads variable T to the batch max — official pad_collate behaviour) +# --------------------------------------------------------------------------- +def pad_collate(batch, pad_value=0.0): + xs, ps, ds, ys = [], [], [], [] + for (x, p, d), y in batch: + xs.append(x); ps.append(p); ds.append(d); ys.append(y) + + max_T = max(x.shape[0] for x in xs) + + def pad(t, v=0.0): + if t.shape[0] == max_T: + return t + z = torch.full((max_T - t.shape[0], *t.shape[1:]), v, dtype=t.dtype) + return torch.cat([t, z], dim=0) + + return ((torch.stack([pad(x, pad_value) for x in xs]), + torch.stack([pad(p) for p in ps]), + torch.stack([pad(d) for d in ds])), + torch.stack(ys)) + + +# Backwards-compatible alias — the train scripts pass collate_fn=collate_fn. +collate_fn = pad_collate + + +# --------------------------------------------------------------------------- +# Crop helper — the inner (i, j) loop of the official training scripts +# --------------------------------------------------------------------------- +def crop_ij(x, y, i, j, grid=None): + """Slice crop (i, j) out of a batch of full patches. + + x: (B, T, C, H, W) y: (B, H, W) or None + grid: 4 -> 32x32 crops (train/finetune); 1 -> the whole patch (test) + + Mirrors `split = input.shape[-1] // grid` in the reference scripts. + """ + grid = C.PRETRAIN_CROP_GRID if grid is None else grid + s = x.shape[-1] // grid + xc = x[:, :, :, i * s:(i + 1) * s, j * s:(j + 1) * s] + yc = None if y is None else y[:, i * s:(i + 1) * s, j * s:(j + 1) * s] + return xc, yc diff --git a/ablations/10_plateau_breakthrough/workspace/evaluate_plateau.py b/ablations/10_plateau_breakthrough/workspace/evaluate_plateau.py new file mode 100644 index 0000000000000000000000000000000000000000..ff0af755d3dc7484b8b48c487e3a1a6cc631cbac --- /dev/null +++ b/ablations/10_plateau_breakthrough/workspace/evaluate_plateau.py @@ -0,0 +1,215 @@ +""" +T-SRDA evaluation v2 — OFFICIAL STCLN protocol + optional TTA + optional +multi-checkpoint ensemble. + +Test set: fold 4, 482 FULL 128x128 patches (no cropping), identical to v1 +evaluate.py. On top of the official number you can ask for: + + --tta 4-view test-time augmentation (orig + hflip + vflip + + 180 deg rotation), softmax-averaged + --ckpt a.tar,b.tar ensemble: softmax-averaged across several checkpoints + (e.g. the best-EMA checkpoints of two seeds). Combine with + --tta for the strongest number. + +Metrics: mIoU / OA / mF1 / Kappa on classes 1-18 + per-class table, +identical definitions to v1 (classes 0=background and 19=void ignored). +""" +import argparse +import json +import time +from pathlib import Path +import numpy as np +import torch +import torch.nn.functional as F +from torch.utils.data import DataLoader +from torch.cuda.amp import autocast +from sklearn.metrics import confusion_matrix, cohen_kappa_score + +import config as C +from dataset import PASTISPatchDataset, test_patch_ids, pad_collate, crop_ij +from model import UTAE_ASPP, UTAEClassificationDual +from top5_models import MaskedUTAE_ASPP, MaskedUTAEClassificationDual, SeasonalUTAEClassificationDual + +NAMES = C.PASTIS_CLASSES # single source of truth — see config.py + +VIEWS = [ + ("orig", lambda t: t, lambda t: t), + ("hflip", lambda t: t.flip(-1), lambda t: t.flip(-1)), + ("vflip", lambda t: t.flip(-2), lambda t: t.flip(-2)), + ("hv", lambda t: t.flip(-1).flip(-2), lambda t: t.flip(-1).flip(-2)), +] + + +def build_model(device, variant): + from plateau_models import architecture + encoder_type, network_type = architecture(variant) + encoder = encoder_type( + n_channels=C.N_CHANNELS, d_model=C.D_MODEL, n_heads=C.N_HEADS, + T_pad=C.T_PAD, windows=C.TSE_WINDOWS, shifts=C.TSE_SHIFTS) + return network_type( + encoder, d_model=C.D_MODEL, num_classes=C.N_CLASSES).to(device) + + +def main(): + parser = argparse.ArgumentParser() + parser.add_argument("--ckpt", required=True, + help="one checkpoint, or comma-separated list to " + "ensemble (softmax-averaged)") + parser.add_argument("--batch_size", type=int, default=C.EVAL_BATCH, + help="Use batch1 for the full-patch benchmark; legacy models are padding-sensitive") + parser.add_argument("--tta", action="store_true", + help="4-view TTA (official protocol has none)") + parser.add_argument("--seed", type=int, default=C.SEED) + parser.add_argument("--variant", choices=['plain','mask_corrected','class_queries','shared_pool_mask'], default='plain') + parser.add_argument("--output", default="test_exp3/results.json") + args = parser.parse_args() + started = time.time() + + torch.manual_seed(args.seed) + torch.cuda.manual_seed_all(args.seed) + device = torch.device("cuda:0") + + ckpt_paths = [p.strip() for p in args.ckpt.split(",") if p.strip()] + + # -- Test split: fold 4, full patches ------------------------------------ + test_ids = test_patch_ids() + grid = 1 if C.TEST_FULL_PATCH else C.PRETRAIN_CROP_GRID + px = C.PATCH_SIZE // grid + + test_ds = PASTISPatchDataset(test_ids) + test_dl = DataLoader( + test_ds, batch_size=args.batch_size, shuffle=False, + num_workers=2, pin_memory=True, collate_fn=pad_collate) + + print(f"[EVAL] fold {C.TEST_FOLDS}: {len(test_ids)} patches " + f"({len(test_ids) * C.PRETRAIN_CROP_GRID ** 2:,} crop-equiv)", + flush=True) + print(f"[EVAL] window={px}x{px} batch={args.batch_size} -> " + f"{len(test_dl)} batches TTA={'4-view' if args.tta else 'off'} " + f"ensemble={len(ckpt_paths)} ckpt(s)", flush=True) + + # -- Models --------------------------------------------------------------- + models = [] + for p in ckpt_paths: + m = build_model(device, args.variant) + ck = torch.load(p, map_location=device, weights_only=False) + m.load_state_dict(ck["model_state_dict"]) + m.eval() + models.append(m) + print(f"[EVAL] {p}\n epoch={ck.get('epoch', '?')} " + f"val_mIoU={ck.get('val_miou', '?')} " + f"which={ck.get('which', '?')}", flush=True) + + views = VIEWS if args.tta else VIEWS[:1] + + # -- Inference ------------------------------------------------------------ + all_preds, all_labels = [], [] + with torch.no_grad(): + for it, ((x, pos, _days), y) in enumerate(test_dl): + x = x.to(device, non_blocking=True) + pos = pos.to(device, non_blocking=True) + y = y.to(device, non_blocking=True) + + for i in range(grid): + for j in range(grid): + xc, yc = crop_ij(x, y, i, j, grid) + probs_sum = None + for m in models: + for _name, aug_fn, inv_fn in views: + with autocast(): + out = m(aug_fn(xc), pos) + probs = F.softmax( + inv_fn(out["refined_logits"].float()), dim=1) + probs_sum = (probs if probs_sum is None + else probs_sum + probs) + pred = probs_sum.argmax(dim=1) + all_preds.append(pred.cpu().numpy().ravel()) + all_labels.append(yc.cpu().numpy().ravel()) + + if it % 50 == 0: + print(f" eval {it}/{len(test_dl)}", flush=True) + + all_preds = np.concatenate(all_preds) + all_labels = np.concatenate(all_labels) + + # -- Metrics (identical to v1) -------------------------------------------- + valid = (all_labels > 0) & (all_labels < C.N_CLASSES - 1) + pv = all_preds[valid] + lv = all_labels[valid] + + class_ids = list(range(1, C.N_CLASSES - 1)) + cm = confusion_matrix(lv, pv, labels=class_ids) + + diag = np.diag(cm).astype(np.float64) + sum0 = cm.sum(0).astype(np.float64) + sum1 = cm.sum(1).astype(np.float64) + + iou = diag / (sum0 + sum1 - diag + 1e-8) + f1 = (2 * diag) / (sum0 + sum1 + 1e-8) + miou = iou.mean() + mf1 = f1.mean() + oa = (pv == lv).mean() + kappa = cohen_kappa_score(lv, pv) + + print("\n" + "=" * 58) + print(" T-SRDA v2 evaluation — PASTIS fold-4 test set (official protocol)") + print(f" {len(test_ids)} full 128x128 patches · {len(lv):,} scored pixels") + print(f" TTA: {'4-view' if args.tta else 'OFF (official)'}" + f" checkpoints: {len(ckpt_paths)}") + print("=" * 58) + print(f" mIoU : {miou:.4f}") + print(f" OA : {oa:.4f}") + print(f" mF1 : {mf1:.4f}") + print(f" Kappa : {kappa:.4f}") + print(f"\n{'Cls':>4} {'Name':<28} {'IoU':>8} {'F1':>8} {'Support':>12}") + print("-" * 64) + for c, iv, fv in zip(class_ids, iou, f1): + support = int(sum1[c - 1]) + name = NAMES.get(c, f"class_{c}") + flag = " **DEAD**" if iv < 0.001 else (" *rare*" if iv < 0.10 else "") + print(f"{c:>4} {name:<28} {iv:>8.4f} {fv:>8.4f} {support:>12,}{flag}") + + full_cm = confusion_matrix(lv, pv, labels=list(range(C.N_CLASSES))) + tp = np.diag(full_cm)[1:-1].astype(np.float64) + gt = full_cm.sum(axis=1)[1:-1].astype(np.float64) + predicted = full_cm.sum(axis=0)[1:-1].astype(np.float64) + corrected_iou = tp / (gt + predicted - tp + 1e-8) + corrected_f1 = 2 * tp / (gt + predicted + 1e-8) + from sklearn.metrics import f1_score + result = { + "checkpoint": ckpt_paths, "architecture_variant": args.variant, + "fold": 4, "patches": len(test_ids), + "scored_pixels": len(lv), "batch_size": args.batch_size, + "full_patch": bool(C.TEST_FULL_PATCH), "tta": args.tta, + "seconds": time.time() - started, + "legacy": {"miou": float(miou), "macro_f1": float(mf1), + "oa": float(oa), "kappa": float(kappa)}, + "reference_sklearn_macro_f1": float(f1_score(lv, pv, average="macro", zero_division=0)), + "corrected": {"miou": float(corrected_iou.mean()), + "macro_f1": float(corrected_f1.mean()), + "oa": float(oa), "kappa": float(kappa)}, + "foreground_predicted_background_or_void": int(((pv == 0) | (pv == C.N_CLASSES - 1)).sum()), + "per_class": {str(c): {"name": NAMES[c], "support": int(gt[c-1]), + "legacy_iou": float(iou[c-1]), + "corrected_iou": float(corrected_iou[c-1]), + "corrected_f1": float(corrected_f1[c-1])} for c in class_ids}, + "confusion_matrix_20_classes": full_cm.tolist(), + } + output = Path(args.output) + output.parent.mkdir(parents=True, exist_ok=True) + output.write_text(json.dumps(result, indent=2) + "\n") + print("\nCorrected foreground mIoU:", result["corrected"]["miou"], flush=True) + print("Corrected foreground macro F1:", result["corrected"]["macro_f1"], flush=True) + print("Saved results:", output, flush=True) + + peak = torch.cuda.max_memory_allocated(device) / 1e9 + print(f"\npeak VRAM: {peak:.2f} GB at batch {args.batch_size}") + + print("\n--- reference points (v1, same protocol, no TTA) ---") + print(" v1 fixed epoch 99 : test mIoU 0.4124") + print(" v1 best-val ep37 : test mIoU 0.4433") + print(" A_linear baseline : test mIoU 0.4747 (seed 3407, best-val)") + + +if __name__ == "__main__": + main() diff --git a/ablations/10_plateau_breakthrough/workspace/evaluate_temporal_blend.py b/ablations/10_plateau_breakthrough/workspace/evaluate_temporal_blend.py new file mode 100644 index 0000000000000000000000000000000000000000..0fa29442fda17d435155916b066d9685bc789c95 --- /dev/null +++ b/ablations/10_plateau_breakthrough/workspace/evaluate_temporal_blend.py @@ -0,0 +1,42 @@ +"""Evaluate the complete published SAM + prototype + temporal CNN bundle.""" +import argparse,json,time +from pathlib import Path +import numpy as np +import torch +from torch.utils.data import DataLoader +import config as C +from dataset import PASTISPatchDataset,val_patch_ids,test_patch_ids,pad_collate,crop_ij +from model import UTAE_ASPP,UTAEClassificationDual +from plateau_probes import DepthCollector,probability,metrics_cm,write_json +from temporal_specialist import TemporalCNN + +def main(): + ap=argparse.ArgumentParser();ap.add_argument('--bundle',default='checkpoints/finetune/32X32_temporal_blend_seed3407');ap.add_argument('--split',choices=['val','test'],default='test');ap.add_argument('--output',default='temporal_blend_results.json');args=ap.parse_args() + torch.set_num_threads(4);torch.manual_seed(3407);torch.backends.cuda.matmul.allow_tf32=True;torch.backends.cudnn.allow_tf32=True + folder=Path(args.bundle);manifest=json.loads((folder/'manifest.json').read_text()) + sam=UTAEClassificationDual(UTAE_ASPP(n_channels=C.N_CHANNELS,d_model=C.D_MODEL,n_heads=C.N_HEADS),d_model=C.D_MODEL,num_classes=C.N_CLASSES).cuda().eval() + sam.load_state_dict(torch.load(folder/manifest['sam_checkpoint'],map_location='cpu',weights_only=False)['model_state_dict']) + proto=torch.load(folder/manifest['prototype_checkpoint'],map_location='cpu',weights_only=False) + temporal_ck=torch.load(folder/manifest['temporal_checkpoint'],map_location='cpu',weights_only=False) + assert temporal_ck['classes']==list(range(1,19)) + temporal=TemporalCNN(18).cuda().eval();temporal.load_state_dict(temporal_ck['state']) + collector=DepthCollector(sam.utae);mean,std=proto['mean'].cuda(),proto['std'].cuda() + state={k:v.cuda() for k,v in proto['state'].items()} if proto['kind']=='linear' else proto['state'].cuda() + ids=val_patch_ids() if args.split=='val' else test_patch_ids();batch=2 if args.split=='val' else 1 + dl=DataLoader(PASTISPatchDataset(ids),batch_size=batch,shuffle=False,num_workers=2,pin_memory=True,collate_fn=pad_collate) + cm=np.zeros((20,20),np.int64);started=time.monotonic() + with torch.inference_mode(): + for bi,((x,pos,_),y) in enumerate(dl): + x,pos=x.cuda(),pos.cuda() + for i,j in C.FT_CROP_IJ if args.split=='val' else [(0,0)]: + xc,yc=crop_ij(x,y,i,j,4 if args.split=='val' else 1);collector.begin(xc,pos) + with torch.autocast('cuda',dtype=torch.float16):out=sam(xc,pos);raw=temporal(xc,pos) + features=collector.end();bp=out['refined_logits'].float().softmax(1).permute(0,2,3,1).reshape(-1,20).cpu().numpy() + pp=probability(features,proto['depth'],mean,std,proto['kind'],state) + tp=np.zeros_like(bp);tp[:,1:19]=raw.float().softmax(1).permute(0,2,3,1).reshape(-1,18).cpu().numpy() + alpha=manifest['temporal_alpha'];beta=manifest['prototype_alpha'];prediction=((1-alpha)*((1-beta)*bp+beta*pp)+alpha*tp).argmax(1) + gt=yc.numpy().ravel();valid=(gt>0)&(gt<19);cm+=np.bincount(20*gt[valid]+prediction[valid],minlength=400).reshape(20,20) + if bi%50==0:print(args.split,bi,len(dl),flush=True) + collector.close();result={'metrics':metrics_cm(cm),'split':args.split,'entries':len(ids),'batch':batch,'seconds':time.monotonic()-started,'bundle':str(folder),'manifest':manifest} + write_json(Path(args.output),result);print('mIoU',result['metrics']['miou'],flush=True) +if __name__=='__main__':main() diff --git a/ablations/10_plateau_breakthrough/workspace/evaluate_temporal_research.py b/ablations/10_plateau_breakthrough/workspace/evaluate_temporal_research.py new file mode 100644 index 0000000000000000000000000000000000000000..54216172e62f47fca38770468383477d4c37298d --- /dev/null +++ b/ablations/10_plateau_breakthrough/workspace/evaluate_temporal_research.py @@ -0,0 +1,65 @@ +"""Validation-selected candidate blends; fixed full128/batch1 test protocol.""" +import argparse,json,time +from pathlib import Path +import numpy as np +import torch +from torch import nn +from plateau_probes import frozen_model,DepthCollector,probability,metrics_cm,write_json,OUT as PROBE_OUT +from temporal_specialist import TemporalCNN,loader +from temporal_research_models import make_model +from dataset import val_patch_ids,test_patch_ids,crop_ij +import config as C +ROOT=Path(__file__).resolve().parent;OUT=ROOT/'temporal_research' + +class ReferenceTeacher: + def __init__(self,device='cuda'): + self.sam=frozen_model('sam',device);self.collector=DepthCollector(self.sam.utae) + self.probe=torch.load(PROBE_OUT/'probe_best.tar',map_location='cpu',weights_only=False) + self.mean=self.probe['mean'].to(device);self.std=self.probe['std'].to(device);self.state=self.probe['state'].to(device) + self.temporal=TemporalCNN(18).to(device).eval().requires_grad_(False) + self.temporal.load_state_dict(torch.load(ROOT/'overnight_research/32X32_full_seed3407/best.tar',map_location='cpu',weights_only=False)['state']) + self.device=device + @torch.no_grad() + def parts(self,x,pos): + self.collector.begin(x,pos) + with torch.autocast('cuda',dtype=torch.float16):out=self.sam(x,pos);t=self.temporal(x,pos) + features=self.collector.end();bp=out['refined_logits'].float().softmax(1) + pp=probability(features,self.probe['depth'],self.mean,self.std,self.probe['kind'],self.state) + b,_,h,w=bp.shape;pp=torch.from_numpy(pp).to(bp.device).reshape(b,h,w,20).permute(0,3,1,2) + proto=.5*bp+.5*pp;tp=torch.zeros_like(bp);tp[:,1:19]=t.float().softmax(1) + return proto,.75*proto+.25*tp + @torch.no_grad() + def __call__(self,x,pos):return self.parts(x,pos)[1] + +def evaluate_candidate(kind,seed,action): + ensemble=kind=='ensemble';folder=OUT/('32X32_three_seed_ensemble' if ensemble else f'32X32_{kind}_seed{seed}');folder.mkdir(parents=True,exist_ok=True) + models=[] + for s in [3407,42,1234] if ensemble else [seed]: + ck=torch.load(ROOT/f'overnight_research/32X32_full_seed{s}/best.tar' if ensemble else folder/'best.tar',map_location='cpu',weights_only=False) + model=TemporalCNN(18) if ensemble else make_model(kind,18);model.load_state_dict(ck['state']);models.append(model.cuda().eval()) + teacher=ReferenceTeacher();ids=val_patch_ids() if action=='select' else test_patch_ids();dl=loader(ids,2 if action=='select' else 1) + if action=='select':options=[('replace',a) for a in [0.,.1,.25,.5]]+([] if ensemble else [('add',a) for a in [.1,.25,.5]]) + else: + selected=json.loads((folder/'selection.json').read_text());options=[(selected['mode'],selected['alpha'])] + cms={f'{mode}:{a}':np.zeros((20,20),np.int64) for mode,a in options};reference=np.zeros((20,20),np.int64);standalone=np.zeros((20,20),np.int64);started=time.monotonic() + with torch.inference_mode(): + for bi,((x,pos,_),y) in enumerate(dl): + x,pos=x.cuda(),pos.cuda() + for i,j in C.FT_CROP_IJ if action=='select' else [(0,0)]: + xc,yc=crop_ij(x,y,i,j,4 if action=='select' else 1);proto,ref=teacher.parts(xc,pos) + with torch.autocast('cuda',dtype=torch.float16):predictions=[m(xc,pos).float().softmax(1) for m in models] + tp=torch.zeros_like(proto);tp[:,1:19]=torch.stack(predictions).mean(0) + gt=yc.numpy().ravel();valid=(gt>0)&(gt<19) + def counts(prob): + pred=prob.argmax(1).cpu().numpy().ravel();return np.bincount(20*gt[valid]+pred[valid],minlength=400).reshape(20,20) + for mode,a in options:cms[f'{mode}:{a}']+=counts((1-a)*(proto if mode=='replace' else ref)+a*tp) + reference+=counts(ref);standalone+=counts(tp) + if bi%50==0:print(kind,action,bi,len(dl),flush=True) + teacher.collector.close();records={k:metrics_cm(cm) for k,cm in cms.items()};key=max(records,key=lambda k:records[k]['miou']);mode,alpha=key.split(':') + result={'kind':kind,'seed':seed,'mode':mode,'alpha':float(alpha),'metrics':records[key],'reference':metrics_cm(reference),'standalone':metrics_cm(standalone),'records':records,'seconds':time.monotonic()-started,'test_used_for_selection':False,'model_count':len(models)} + if action=='select': + if abs(result['reference']['miou']-.517690746616618)>1e-6:raise RuntimeError('Reference validation mismatch') + write_json(folder/('selection.json' if action=='select' else 'test_results.json'),result);print('RESULT',kind,action,mode,alpha,result['metrics']['miou'],flush=True) + +if __name__=='__main__': + ap=argparse.ArgumentParser();ap.add_argument('action',choices=['select','test']);ap.add_argument('--kind',choices=['ensemble','cnn_control','attention','transformer'],required=True);ap.add_argument('--seed',type=int,default=3407);args=ap.parse_args();torch.set_num_threads(4);torch.manual_seed(args.seed);torch.backends.cuda.matmul.allow_tf32=True;torch.backends.cudnn.allow_tf32=True;evaluate_candidate(args.kind,args.seed,args.action) diff --git a/ablations/10_plateau_breakthrough/workspace/evaluate_test.py b/ablations/10_plateau_breakthrough/workspace/evaluate_test.py new file mode 100644 index 0000000000000000000000000000000000000000..32d782baff694651aeab1538a305565c638af406 --- /dev/null +++ b/ablations/10_plateau_breakthrough/workspace/evaluate_test.py @@ -0,0 +1,211 @@ +""" +T-SRDA evaluation v2 — OFFICIAL STCLN protocol + optional TTA + optional +multi-checkpoint ensemble. + +Test set: fold 4, 482 FULL 128x128 patches (no cropping), identical to v1 +evaluate.py. On top of the official number you can ask for: + + --tta 4-view test-time augmentation (orig + hflip + vflip + + 180 deg rotation), softmax-averaged + --ckpt a.tar,b.tar ensemble: softmax-averaged across several checkpoints + (e.g. the best-EMA checkpoints of two seeds). Combine with + --tta for the strongest number. + +Metrics: mIoU / OA / mF1 / Kappa on classes 1-18 + per-class table, +identical definitions to v1 (classes 0=background and 19=void ignored). +""" +import argparse +import json +import time +from pathlib import Path +import numpy as np +import torch +import torch.nn.functional as F +from torch.utils.data import DataLoader +from torch.cuda.amp import autocast +from sklearn.metrics import confusion_matrix, cohen_kappa_score + +import config as C +from dataset import PASTISPatchDataset, test_patch_ids, pad_collate, crop_ij +from model import UTAE_ASPP, UTAEClassificationDual + +NAMES = C.PASTIS_CLASSES # single source of truth — see config.py + +VIEWS = [ + ("orig", lambda t: t, lambda t: t), + ("hflip", lambda t: t.flip(-1), lambda t: t.flip(-1)), + ("vflip", lambda t: t.flip(-2), lambda t: t.flip(-2)), + ("hv", lambda t: t.flip(-1).flip(-2), lambda t: t.flip(-1).flip(-2)), +] + + +def build_model(device): + encoder = UTAE_ASPP( + n_channels=C.N_CHANNELS, d_model=C.D_MODEL, n_heads=C.N_HEADS, + T_pad=C.T_PAD, windows=C.TSE_WINDOWS, shifts=C.TSE_SHIFTS) + return UTAEClassificationDual( + encoder, d_model=C.D_MODEL, num_classes=C.N_CLASSES).to(device) + + +def main(): + parser = argparse.ArgumentParser() + parser.add_argument("--ckpt", required=True, + help="one checkpoint, or comma-separated list to " + "ensemble (softmax-averaged)") + parser.add_argument("--batch_size", type=int, default=C.EVAL_BATCH, + help=f"default {C.EVAL_BATCH}; numerically identical " + "at any value, pure memory/speed knob") + parser.add_argument("--tta", action="store_true", + help="4-view TTA (official protocol has none)") + parser.add_argument("--seed", type=int, default=C.SEED) + parser.add_argument("--output", default="test_exp3/results.json") + args = parser.parse_args() + started = time.time() + + torch.manual_seed(args.seed) + torch.cuda.manual_seed_all(args.seed) + device = torch.device("cuda:0") + + ckpt_paths = [p.strip() for p in args.ckpt.split(",") if p.strip()] + + # -- Test split: fold 4, full patches ------------------------------------ + test_ids = test_patch_ids() + grid = 1 if C.TEST_FULL_PATCH else C.PRETRAIN_CROP_GRID + px = C.PATCH_SIZE // grid + + test_ds = PASTISPatchDataset(test_ids) + test_dl = DataLoader( + test_ds, batch_size=args.batch_size, shuffle=False, + num_workers=2, pin_memory=True, collate_fn=pad_collate) + + print(f"[EVAL] fold {C.TEST_FOLDS}: {len(test_ids)} patches " + f"({len(test_ids) * C.PRETRAIN_CROP_GRID ** 2:,} crop-equiv)", + flush=True) + print(f"[EVAL] window={px}x{px} batch={args.batch_size} -> " + f"{len(test_dl)} batches TTA={'4-view' if args.tta else 'off'} " + f"ensemble={len(ckpt_paths)} ckpt(s)", flush=True) + + # -- Models --------------------------------------------------------------- + models = [] + for p in ckpt_paths: + m = build_model(device) + ck = torch.load(p, map_location=device, weights_only=False) + m.load_state_dict(ck["model_state_dict"]) + m.eval() + models.append(m) + print(f"[EVAL] {p}\n epoch={ck.get('epoch', '?')} " + f"val_mIoU={ck.get('val_miou', '?')} " + f"which={ck.get('which', '?')}", flush=True) + + views = VIEWS if args.tta else VIEWS[:1] + + # -- Inference ------------------------------------------------------------ + all_preds, all_labels = [], [] + with torch.no_grad(): + for it, ((x, pos, _days), y) in enumerate(test_dl): + x = x.to(device, non_blocking=True) + pos = pos.to(device, non_blocking=True) + y = y.to(device, non_blocking=True) + + for i in range(grid): + for j in range(grid): + xc, yc = crop_ij(x, y, i, j, grid) + probs_sum = None + for m in models: + for _name, aug_fn, inv_fn in views: + with autocast(): + out = m(aug_fn(xc), pos) + probs = F.softmax( + inv_fn(out["refined_logits"].float()), dim=1) + probs_sum = (probs if probs_sum is None + else probs_sum + probs) + pred = probs_sum.argmax(dim=1) + all_preds.append(pred.cpu().numpy().ravel()) + all_labels.append(yc.cpu().numpy().ravel()) + + if it % 50 == 0: + print(f" eval {it}/{len(test_dl)}", flush=True) + + all_preds = np.concatenate(all_preds) + all_labels = np.concatenate(all_labels) + + # -- Metrics (identical to v1) -------------------------------------------- + valid = (all_labels > 0) & (all_labels < C.N_CLASSES - 1) + pv = all_preds[valid] + lv = all_labels[valid] + + class_ids = list(range(1, C.N_CLASSES - 1)) + cm = confusion_matrix(lv, pv, labels=class_ids) + + diag = np.diag(cm).astype(np.float64) + sum0 = cm.sum(0).astype(np.float64) + sum1 = cm.sum(1).astype(np.float64) + + iou = diag / (sum0 + sum1 - diag + 1e-8) + f1 = (2 * diag) / (sum0 + sum1 + 1e-8) + miou = iou.mean() + mf1 = f1.mean() + oa = (pv == lv).mean() + kappa = cohen_kappa_score(lv, pv) + + print("\n" + "=" * 58) + print(" T-SRDA v2 evaluation — PASTIS fold-4 test set (official protocol)") + print(f" {len(test_ids)} full 128x128 patches · {len(lv):,} scored pixels") + print(f" TTA: {'4-view' if args.tta else 'OFF (official)'}" + f" checkpoints: {len(ckpt_paths)}") + print("=" * 58) + print(f" mIoU : {miou:.4f}") + print(f" OA : {oa:.4f}") + print(f" mF1 : {mf1:.4f}") + print(f" Kappa : {kappa:.4f}") + print(f"\n{'Cls':>4} {'Name':<28} {'IoU':>8} {'F1':>8} {'Support':>12}") + print("-" * 64) + for c, iv, fv in zip(class_ids, iou, f1): + support = int(sum1[c - 1]) + name = NAMES.get(c, f"class_{c}") + flag = " **DEAD**" if iv < 0.001 else (" *rare*" if iv < 0.10 else "") + print(f"{c:>4} {name:<28} {iv:>8.4f} {fv:>8.4f} {support:>12,}{flag}") + + full_cm = confusion_matrix(lv, pv, labels=list(range(C.N_CLASSES))) + tp = np.diag(full_cm)[1:-1].astype(np.float64) + gt = full_cm.sum(axis=1)[1:-1].astype(np.float64) + predicted = full_cm.sum(axis=0)[1:-1].astype(np.float64) + corrected_iou = tp / (gt + predicted - tp + 1e-8) + corrected_f1 = 2 * tp / (gt + predicted + 1e-8) + from sklearn.metrics import f1_score + result = { + "checkpoint": ckpt_paths, "fold": 4, "patches": len(test_ids), + "scored_pixels": len(lv), "batch_size": args.batch_size, + "full_patch": bool(C.TEST_FULL_PATCH), "tta": args.tta, + "seconds": time.time() - started, + "legacy": {"miou": float(miou), "macro_f1": float(mf1), + "oa": float(oa), "kappa": float(kappa)}, + "reference_sklearn_macro_f1": float(f1_score(lv, pv, average="macro", zero_division=0)), + "corrected": {"miou": float(corrected_iou.mean()), + "macro_f1": float(corrected_f1.mean()), + "oa": float(oa), "kappa": float(kappa)}, + "foreground_predicted_background_or_void": int(((pv == 0) | (pv == C.N_CLASSES - 1)).sum()), + "per_class": {str(c): {"name": NAMES[c], "support": int(gt[c-1]), + "legacy_iou": float(iou[c-1]), + "corrected_iou": float(corrected_iou[c-1]), + "corrected_f1": float(corrected_f1[c-1])} for c in class_ids}, + "confusion_matrix_20_classes": full_cm.tolist(), + } + output = Path(args.output) + output.parent.mkdir(parents=True, exist_ok=True) + output.write_text(json.dumps(result, indent=2) + "\n") + print("\nCorrected foreground mIoU:", result["corrected"]["miou"], flush=True) + print("Corrected foreground macro F1:", result["corrected"]["macro_f1"], flush=True) + print("Saved results:", output, flush=True) + + peak = torch.cuda.max_memory_allocated(device) / 1e9 + print(f"\npeak VRAM: {peak:.2f} GB at batch {args.batch_size}") + + print("\n--- reference points (v1, same protocol, no TTA) ---") + print(" v1 fixed epoch 99 : test mIoU 0.4124") + print(" v1 best-val ep37 : test mIoU 0.4433") + print(" A_linear baseline : test mIoU 0.4747 (seed 3407, best-val)") + + +if __name__ == "__main__": + main() diff --git a/ablations/10_plateau_breakthrough/workspace/evaluate_v2.py b/ablations/10_plateau_breakthrough/workspace/evaluate_v2.py new file mode 100644 index 0000000000000000000000000000000000000000..cd5ec5c5eb5888775ce46c16322cd6ad1536f730 --- /dev/null +++ b/ablations/10_plateau_breakthrough/workspace/evaluate_v2.py @@ -0,0 +1,174 @@ +""" +T-SRDA evaluation v2 — OFFICIAL STCLN protocol + optional TTA + optional +multi-checkpoint ensemble. + +Test set: fold 4, 482 FULL 128x128 patches (no cropping), identical to v1 +evaluate.py. On top of the official number you can ask for: + + --tta 4-view test-time augmentation (orig + hflip + vflip + + 180 deg rotation), softmax-averaged + --ckpt a.tar,b.tar ensemble: softmax-averaged across several checkpoints + (e.g. the best-EMA checkpoints of two seeds). Combine with + --tta for the strongest number. + +Metrics: mIoU / OA / mF1 / Kappa on classes 1-18 + per-class table, +identical definitions to v1 (classes 0=background and 19=void ignored). +""" +import argparse +import numpy as np +import torch +import torch.nn.functional as F +from torch.utils.data import DataLoader +from torch.cuda.amp import autocast +from sklearn.metrics import confusion_matrix, cohen_kappa_score + +import config as C +from dataset import PASTISPatchDataset, test_patch_ids, pad_collate, crop_ij +from model import UTAE_ASPP, UTAEClassificationDual + +NAMES = C.PASTIS_CLASSES # single source of truth — see config.py + +VIEWS = [ + ("orig", lambda t: t, lambda t: t), + ("hflip", lambda t: t.flip(-1), lambda t: t.flip(-1)), + ("vflip", lambda t: t.flip(-2), lambda t: t.flip(-2)), + ("hv", lambda t: t.flip(-1).flip(-2), lambda t: t.flip(-1).flip(-2)), +] + + +def build_model(device): + encoder = UTAE_ASPP( + n_channels=C.N_CHANNELS, d_model=C.D_MODEL, n_heads=C.N_HEADS, + T_pad=C.T_PAD, windows=C.TSE_WINDOWS, shifts=C.TSE_SHIFTS) + return UTAEClassificationDual( + encoder, d_model=C.D_MODEL, num_classes=C.N_CLASSES).to(device) + + +def main(): + parser = argparse.ArgumentParser() + parser.add_argument("--ckpt", required=True, + help="one checkpoint, or comma-separated list to " + "ensemble (softmax-averaged)") + parser.add_argument("--batch_size", type=int, default=C.EVAL_BATCH, + help=f"default {C.EVAL_BATCH}; numerically identical " + "at any value, pure memory/speed knob") + parser.add_argument("--tta", action="store_true", + help="4-view TTA (official protocol has none)") + parser.add_argument("--seed", type=int, default=C.SEED) + args = parser.parse_args() + + torch.manual_seed(args.seed) + torch.cuda.manual_seed_all(args.seed) + device = torch.device("cuda:0") + + ckpt_paths = [p.strip() for p in args.ckpt.split(",") if p.strip()] + + # -- Test split: fold 4, full patches ------------------------------------ + test_ids = test_patch_ids() + grid = 1 if C.TEST_FULL_PATCH else C.PRETRAIN_CROP_GRID + px = C.PATCH_SIZE // grid + + test_ds = PASTISPatchDataset(test_ids) + test_dl = DataLoader( + test_ds, batch_size=args.batch_size, shuffle=False, + num_workers=2, pin_memory=True, collate_fn=pad_collate) + + print(f"[EVAL] fold {C.TEST_FOLDS}: {len(test_ids)} patches " + f"({len(test_ids) * C.PRETRAIN_CROP_GRID ** 2:,} crop-equiv)", + flush=True) + print(f"[EVAL] window={px}x{px} batch={args.batch_size} -> " + f"{len(test_dl)} batches TTA={'4-view' if args.tta else 'off'} " + f"ensemble={len(ckpt_paths)} ckpt(s)", flush=True) + + # -- Models --------------------------------------------------------------- + models = [] + for p in ckpt_paths: + m = build_model(device) + ck = torch.load(p, map_location=device, weights_only=False) + m.load_state_dict(ck["model_state_dict"]) + m.eval() + models.append(m) + print(f"[EVAL] {p}\n epoch={ck.get('epoch', '?')} " + f"val_mIoU={ck.get('val_miou', '?')} " + f"which={ck.get('which', '?')}", flush=True) + + views = VIEWS if args.tta else VIEWS[:1] + + # -- Inference ------------------------------------------------------------ + all_preds, all_labels = [], [] + with torch.no_grad(): + for it, ((x, pos, _days), y) in enumerate(test_dl): + x = x.to(device, non_blocking=True) + pos = pos.to(device, non_blocking=True) + y = y.to(device, non_blocking=True) + + for i in range(grid): + for j in range(grid): + xc, yc = crop_ij(x, y, i, j, grid) + probs_sum = None + for m in models: + for _name, aug_fn, inv_fn in views: + with autocast(): + out = m(aug_fn(xc), pos) + probs = F.softmax( + inv_fn(out["refined_logits"].float()), dim=1) + probs_sum = (probs if probs_sum is None + else probs_sum + probs) + pred = probs_sum.argmax(dim=1) + all_preds.append(pred.cpu().numpy().ravel()) + all_labels.append(yc.cpu().numpy().ravel()) + + if it % 50 == 0: + print(f" eval {it}/{len(test_dl)}", flush=True) + + all_preds = np.concatenate(all_preds) + all_labels = np.concatenate(all_labels) + + # -- Metrics (identical to v1) -------------------------------------------- + valid = (all_labels > 0) & (all_labels < C.N_CLASSES - 1) + pv = all_preds[valid] + lv = all_labels[valid] + + class_ids = list(range(1, C.N_CLASSES - 1)) + cm = confusion_matrix(lv, pv, labels=class_ids) + + diag = np.diag(cm).astype(np.float64) + sum0 = cm.sum(0).astype(np.float64) + sum1 = cm.sum(1).astype(np.float64) + + iou = diag / (sum0 + sum1 - diag + 1e-8) + f1 = (2 * diag) / (sum0 + sum1 + 1e-8) + miou = iou.mean() + mf1 = f1.mean() + oa = (pv == lv).mean() + kappa = cohen_kappa_score(lv, pv) + + print("\n" + "=" * 58) + print(" T-SRDA v2 evaluation — PASTIS fold-4 test set (official protocol)") + print(f" {len(test_ids)} full 128x128 patches · {len(lv):,} scored pixels") + print(f" TTA: {'4-view' if args.tta else 'OFF (official)'}" + f" checkpoints: {len(ckpt_paths)}") + print("=" * 58) + print(f" mIoU : {miou:.4f}") + print(f" OA : {oa:.4f}") + print(f" mF1 : {mf1:.4f}") + print(f" Kappa : {kappa:.4f}") + print(f"\n{'Cls':>4} {'Name':<28} {'IoU':>8} {'F1':>8} {'Support':>12}") + print("-" * 64) + for c, iv, fv in zip(class_ids, iou, f1): + support = int(sum1[c - 1]) + name = NAMES.get(c, f"class_{c}") + flag = " **DEAD**" if iv < 0.001 else (" *rare*" if iv < 0.10 else "") + print(f"{c:>4} {name:<28} {iv:>8.4f} {fv:>8.4f} {support:>12,}{flag}") + + peak = torch.cuda.max_memory_allocated(device) / 1e9 + print(f"\npeak VRAM: {peak:.2f} GB at batch {args.batch_size}") + + print("\n--- reference points (v1, same protocol, no TTA) ---") + print(" v1 fixed epoch 99 : test mIoU 0.4124") + print(" v1 best-val ep37 : test mIoU 0.4433") + print(" A_linear baseline : test mIoU 0.4747 (seed 3407, best-val)") + + +if __name__ == "__main__": + main() diff --git a/ablations/10_plateau_breakthrough/workspace/finetune_distillation.py b/ablations/10_plateau_breakthrough/workspace/finetune_distillation.py new file mode 100644 index 0000000000000000000000000000000000000000..41b65aef02b95ebfe1efa242b9dcaee1308d75c1 --- /dev/null +++ b/ablations/10_plateau_breakthrough/workspace/finetune_distillation.py @@ -0,0 +1,797 @@ +"""Controlled plateau studies using the inherited fixed32 training recipe.""" +import argparse +import copy +import json +import math +import os +import random +import time +from pathlib import Path + +import numpy as np +import torch +import torch.nn as nn +import torch.distributed as dist +from torch.utils.data import DataLoader, DistributedSampler +from torch.cuda.amp import autocast, GradScaler +from torch.nn.parallel import DistributedDataParallel as DDP +from sklearn.metrics import confusion_matrix, cohen_kappa_score + +import config as C +from dataset import (PASTISPatchDataset, train_patch_ids, val_patch_ids, + pad_collate, crop_ij) +from model import UTAE_ASPP, UTAEClassificationDual, compute_boundary_target +from top5_models import MaskedUTAE_ASPP, MaskedUTAEClassificationDual, SeasonalUTAEClassificationDual +from losses import LovaszSoftmaxLoss + +PASTIS_NAMES = C.PASTIS_CLASSES # single source of truth — see config.py + + +# ───────────────────────────────────────────────────────────────────────────── +# Distributed helpers (same contract as v1: torchrun env vars, else single GPU) +# ───────────────────────────────────────────────────────────────────────────── +def setup_distributed(): + if "RANK" in os.environ: + dist.init_process_group(backend="nccl") + local_rank = int(os.environ["LOCAL_RANK"]) + rank = int(os.environ["RANK"]) + world = int(os.environ["WORLD_SIZE"]) + torch.cuda.set_device(local_rank) + return rank, world, local_rank, torch.device(f"cuda:{local_rank}") + return 0, 1, 0, torch.device("cuda:0") + + +def cleanup_distributed(): + if dist.is_initialized(): + dist.destroy_process_group() + + +# ───────────────────────────────────────────────────────────────────────────── +# Metrics — identical to v1 finetune.py +# ───────────────────────────────────────────────────────────────────────────── +def compute_all_metrics(preds_np, labels_np, num_classes=20): + class_ids = list(range(1, num_classes - 1)) # 1..18 scored + + valid = (labels_np > 0) & (labels_np < num_classes - 1) + pv = preds_np[valid] + lv = labels_np[valid] + + if len(lv) == 0: + return dict(miou=0.0, oa=0.0, mf1=0.0, kappa=0.0, + per_iou={}, per_f1={}) + + # Full matrix counts foreground pixels predicted as background/void as FN. + cm = confusion_matrix(lv, pv, labels=list(range(num_classes))) + diag = np.diag(cm)[1:-1].astype(np.float64) + sum0 = cm.sum(0)[1:-1].astype(np.float64) + sum1 = cm.sum(1)[1:-1].astype(np.float64) + + iou = diag / (sum0 + sum1 - diag + 1e-8) + f1 = (2 * diag) / (sum0 + sum1 + 1e-8) + miou = float(iou.mean()) + mf1 = float(f1.mean()) + oa = float((pv == lv).mean()) + kappa = float(cohen_kappa_score(lv, pv)) + + return dict(miou=miou, oa=oa, mf1=mf1, kappa=kappa, + per_iou={c: float(iou[i]) for i, c in enumerate(class_ids)}, + per_f1={c: float(f1[i]) for i, c in enumerate(class_ids)}) + + +def print_metrics(metrics, tag): + print(f" [{tag}] mIoU={metrics['miou']:.4f} OA={metrics['oa']:.4f} " + f"mF1={metrics['mf1']:.4f} Kappa={metrics['kappa']:.4f}", flush=True) + print(f" {'Cls':>4} {'Name':<28} {'IoU':>8} {'F1':>8}", flush=True) + print(f" {'-'*44}", flush=True) + for c in range(1, C.N_CLASSES - 1): + iv = metrics['per_iou'].get(c, 0.0) + fv = metrics['per_f1'].get(c, 0.0) + name = PASTIS_NAMES.get(c, f"cls{c}") + flag = " **DEAD**" if iv < 0.001 else (" *rare*" if iv < 0.10 else "") + print(f" {c:>4} {name:<28} {iv:>8.4f} {fv:>8.4f}{flag}", flush=True) + + +# ───────────────────────────────────────────────────────────────────────────── +# v2 augmentations. All operate on one batch of crops: +# xc (B, T, C, h, w) normalized S2 +# yc (B, h, w) labels +# pos (B, T) index positions (arange(T) upstream) +# ───────────────────────────────────────────────────────────────────────────── +def aug_dihedral(xc, yc): + """One dihedral-8 transform per crop-batch, image and label together.""" + if torch.rand(()) > 0.5: + xc, yc = xc.flip(-2), yc.flip(-2) + if torch.rand(()) > 0.5: + xc, yc = xc.flip(-1), yc.flip(-1) + k = int(torch.randint(0, 4, ())) + if k: + xc, yc = torch.rot90(xc, k, (-2, -1)), torch.rot90(yc, k, (-2, -1)) + return xc.contiguous(), yc.contiguous() + + +def aug_temporal_subsample(xc, pos, p=0.5, drop_max=0.2, keep_min=24): + """Drop up to `drop_max` of the frames, order preserved. Positions keep + their original index values -> emulates missing acquisitions of an + otherwise identical season. No-op with probability 1-p.""" + if torch.rand(()) > p: + return xc, pos + T = xc.shape[1] + keep = int(round(T * (1.0 - random.uniform(0.0, drop_max)))) + keep = max(keep_min, min(T, keep)) + if keep >= T: + return xc, pos + idx = torch.randperm(T)[:keep].sort().values.to(xc.device) + return (xc.index_select(1, idx).contiguous(), + pos.index_select(1, idx).contiguous()) + + +def aug_frame_dropout(xc, p=0.25, max_frames=2): + """Zero 1-2 whole frames (0 == dataset mean after normalisation) — + emulates cloudy/lost acquisitions.""" + if torch.rand(()) > p: + return xc + T = xc.shape[1] + n = random.randint(1, max_frames) + idx = torch.randperm(T)[:n].to(xc.device) + xc = xc.clone() + xc[:, idx] = 0.0 + return xc + + +def aug_spectral(xc, gain_std=0.05, bias_std=0.03, noise_std=0.01): + """Per-sample, per-band gain/bias jitter + small gaussian noise (data is + z-normalised, so these are fractions of one std).""" + B, T, Ch, H, W = xc.shape + dev = xc.device + gain = 1.0 + gain_std * torch.randn(B, 1, Ch, 1, 1, device=dev) + bias = bias_std * torch.randn(B, 1, Ch, 1, 1, device=dev) + xc = xc * gain + bias + if noise_std > 0: + xc = xc + noise_std * torch.randn_like(xc) + return xc.contiguous() + + +# ───────────────────────────────────────────────────────────────────────────── +# EMA of the raw (unwrapped) network +# ───────────────────────────────────────────────────────────────────────────── +class ModelEMA: + def __init__(self, model, decay=0.999): + self.decay = decay + self.updates = 0 + raw = model.module if isinstance(model, DDP) else model + self.module = copy.deepcopy(raw).eval() + for p in self.module.parameters(): + p.requires_grad_(False) + + @torch.no_grad() + def update(self, model): + self.updates += 1 + d = min(self.decay, (1.0 + self.updates) / (10.0 + self.updates)) + raw = model.module if isinstance(model, DDP) else model + msd = raw.state_dict() + for k, v in self.module.state_dict().items(): + if v.dtype.is_floating_point: + v.lerp_(msd[k].detach().float(), 1.0 - d) + else: + v.copy_(msd[k]) + + +# ───────────────────────────────────────────────────────────────────────────── +# Optimizer param groups: encoder vs heads x decay vs no-decay +# ───────────────────────────────────────────────────────────────────────────── +def build_param_groups(net_raw, base_lr, encoder_mult, wd): + buckets = {"enc_dec": [], "enc_nd": [], "head_dec": [], "head_nd": []} + for name, p in net_raw.named_parameters(): + if not p.requires_grad: + continue + is_enc = name.startswith("utae.") + no_dec = p.ndim <= 1 # LN/BN weights + all biases + buckets[("enc_" if is_enc else "head_") + ("nd" if no_dec else "dec") + ].append(p) + groups = [ + {"params": buckets["enc_dec"], "lr0": base_lr * encoder_mult, + "weight_decay": wd}, + {"params": buckets["enc_nd"], "lr0": base_lr * encoder_mult, + "weight_decay": 0.0}, + {"params": buckets["head_dec"], "lr0": base_lr, + "weight_decay": wd}, + {"params": buckets["head_nd"], "lr0": base_lr, + "weight_decay": 0.0}, + ] + return [g for g in groups if len(g["params"]) > 0] + + +def lr_factor(step, total_steps, warmup_steps, min_ratio): + """Linear warmup then cosine decay to min_ratio.""" + if step < warmup_steps: + return (step + 1) / max(1, warmup_steps) + p = (step - warmup_steps) / max(1, total_steps - warmup_steps) + p = min(1.0, p) + cos = 0.5 * (1.0 + math.cos(math.pi * p)) + return min_ratio + (1.0 - min_ratio) * cos + + +def set_lrs(optimizer, factor): + for g in optimizer.param_groups: + g["lr"] = g["lr0"] * factor + + +# ───────────────────────────────────────────────────────────────────────────── +# Validation on the two fixed diagonal crops of the val patches +# (grid = PATCH_SIZE / crop_size; for 64 -> (0,0),(1,1) of a 2x2 grid, +# for 32 -> exactly the official v1 validation crops) +# ───────────────────────────────────────────────────────────────────────────── +@torch.no_grad() +def validate(net, val_dl, device, crop_size, limit_batches=0): + net.eval() + grid = max(1, C.PATCH_SIZE // crop_size) + positions = [(0, 0), (1, 1)] if grid >= 2 else [(0, 0)] + all_preds, all_labels = [], [] + for bi, ((xv, pv_, _dv), yv) in enumerate(val_dl): + if limit_batches and bi >= limit_batches: + break + xv = xv.to(device, non_blocking=True) + pv_ = pv_.to(device, non_blocking=True) + yv = yv.to(device, non_blocking=True) + for (i, j) in positions: + xc, yc = crop_ij(xv, yv, i, j, grid) + with autocast(): + out = net(xc, pv_) + pred = out["refined_logits"].float().argmax(dim=1) + all_preds.append(pred.cpu().numpy().ravel()) + all_labels.append(yc.cpu().numpy().ravel()) + return compute_all_metrics(np.concatenate(all_preds), + np.concatenate(all_labels), C.N_CLASSES) + + +def pack_checkpoint(state_dict, epoch, metrics, seed, which, architecture_variant='plain'): + return {"epoch": epoch, + "model_state_dict": state_dict, + "val_miou": metrics["miou"], + "val_oa": metrics["oa"], + "val_mf1": metrics["mf1"], + "val_kappa": metrics["kappa"], + "val_per_iou": metrics["per_iou"], + "seed": seed, "which": which, "recipe": "plateau_fixed32", + "architecture_variant": architecture_variant} + + +# ───────────────────────────────────────────────────────────────────────────── +def main(): + ap = argparse.ArgumentParser() + ap.add_argument("--pretrain_pth", type=str, required=True) + ap.add_argument("--seed", type=int, default=C.SEED) + ap.add_argument("--tag", type=str, default="32X32_plateau") + ap.add_argument("--out_dir", type=str, default="", + help="default: /checkpoints/finetune_32X32/") + ap.add_argument("--epochs", type=int, default=C.FT_EPOCHS) + ap.add_argument("--batch", type=int, default=C.FT_BATCH) + # --- the v2 recipe knobs ------------------------------------------------- + ap.add_argument("--crop_size", type=int, default=64, + help="random-crop side; 32 = official crop size") + ap.add_argument("--crops_per_patch", type=int, default=2, + help="random crops per patch per epoch (2 keeps the " + "official 76 steps/epoch)") + ap.add_argument("--official_crops", action="store_true", + help="control run: fixed 32x32 diagonal crops, no augs " + "(= v1 recipe with v2 plumbing)") + ap.add_argument("--fixed_crops", action="store_true", + help="fixed diagonal crops at --crop_size; keeps augmentation settings") + ap.add_argument("--freeze_encoder_epochs", type=int, default=0) + ap.add_argument("--no_aug", action="store_true") + ap.add_argument("--no_temporal_aug", action="store_true") + ap.add_argument("--mask_ce_invalid", action="store_true") + ap.add_argument("--boundary_weight", type=float, default=0.5) + ap.add_argument("--init_finetuned", type=str, default="", + help="initialize all weights from fine-tuned checkpoint; reset optimizer and schedule") + ap.add_argument("--base_lr", type=float, default=1e-4) + ap.add_argument("--encoder_lr_mult", type=float, default=0.5) + ap.add_argument("--min_lr_ratio", type=float, default=0.01) + ap.add_argument("--warmup_epochs", type=float, default=3.0) + ap.add_argument("--wd", type=float, default=0.02) + ap.add_argument("--label_smoothing", type=float, default=0.05) + ap.add_argument("--ema_decay", type=float, default=0.999) + ap.add_argument("--patience", type=int, default=30, + help="early stopping on val mIoU; 0 = run all epochs") + # --- housekeeping -------------------------------------------------------- + ap.add_argument("--print_every", type=int, default=5) + ap.add_argument("--limit_batches", type=int, default=0, + help=">0: truncate train/val loops (smoke test)") + ap.add_argument("--resume", type=str, default="auto", + help="'auto' resumes from /latest.tar if present; " + "'none' starts fresh; or an explicit .tar path") + ap.add_argument('--distill_weight',type=float,default=0.0) + ap.add_argument('--research', choices=['plain','mask_corrected','class_queries','shared_pool_mask'], required=True) + ap.add_argument('--sam_bn_mode', choices=['legacy','batch_no_update'], default='legacy') + ap.add_argument('--sam_rho', type=float, default=0.02) + ap.add_argument('--seasonal_lr', type=float, default=1e-4) + args = ap.parse_args() + if args.research == 'swa' and args.resume != 'none': + ap.error('SWA requires --resume none until averaging state supports resume') + + if args.official_crops: + args.crop_size = 32 + args.no_aug = True + + if args.fixed_crops and args.crop_size not in (32, 64): + ap.error("--fixed_crops requires --crop_size 32 or 64") + + out_dir = (Path(args.out_dir) if args.out_dir else + C.EXP_ROOT / "checkpoints" / "finetune_32X32" / args.tag) + + rank, world, local_rank, device = setup_distributed() + + # Seed BEFORE model creation so all ranks build identical weights... + torch.backends.cuda.matmul.allow_tf32 = True + torch.backends.cudnn.allow_tf32 = True + torch.set_num_threads(min(8, os.cpu_count() or 1)) + torch.manual_seed(args.seed) + torch.cuda.manual_seed_all(args.seed) + + train_ids = train_patch_ids() + val_ids = val_patch_ids() + + train_ds = PASTISPatchDataset(train_ids) + val_ds = PASTISPatchDataset(val_ids) + + sampler = (DistributedSampler(train_ds, num_replicas=world, rank=rank, + shuffle=True) + if world > 1 else None) + train_dl = DataLoader( + train_ds, batch_size=args.batch, sampler=sampler, + shuffle=(sampler is None), num_workers=2, pin_memory=True, + persistent_workers=True, collate_fn=pad_collate) + val_dl = DataLoader( + val_ds, batch_size=args.batch, shuffle=False, + num_workers=2, pin_memory=True, collate_fn=pad_collate) + + n_crops = len(C.FT_CROP_IJ) if (args.official_crops or args.fixed_crops) else args.crops_per_patch + steps_per_epoch = len(train_dl) * n_crops + total_steps = steps_per_epoch * args.epochs + warmup_steps = int(args.warmup_epochs * steps_per_epoch) + + if rank == 0: + print(f"[FT-32X32] train={len(train_ids)} patches ({len(set(train_ids))} unique) " + f"val={len(val_ids)} patches ({len(set(val_ids))} unique)", flush=True) + print(f"[FT-32X32] world={world} batch={args.batch} patches x {n_crops} crops " + f"-> {steps_per_epoch} steps/epoch/rank", flush=True) + print(f"[FT-32X32] crop_size={args.crop_size} " + f"({'fixed diagonal' if (args.official_crops or args.fixed_crops) else 'RANDOM'}) " + f"aug={'off' if args.no_aug else 'dihedral+temporal+spectral'}", + flush=True) + print(f"[FT-32X32] base_lr={args.base_lr} enc_mult={args.encoder_lr_mult} " + f"wd={args.wd} ls={args.label_smoothing} ema={args.ema_decay} " + f"warmup_ep={args.warmup_epochs} min_lr_ratio={args.min_lr_ratio} " + f"patience={args.patience}", flush=True) + print(f"[FT-32X32] seed={args.seed} epochs={args.epochs} " + f"checkpoints -> {out_dir}", flush=True) + + # ---- model + pretrained encoder ---------------------------------------- + from plateau_models import architecture + encoder_type, network_type = architecture(args.research) + encoder = encoder_type( + n_channels=C.N_CHANNELS, d_model=C.D_MODEL, n_heads=C.N_HEADS, + T_pad=C.T_PAD, windows=C.TSE_WINDOWS, shifts=C.TSE_SHIFTS) + if rank == 0: + print(f"[FT-32X32] loading encoder: {args.pretrain_pth}", flush=True) + ckpt = torch.load(args.pretrain_pth, map_location="cpu", weights_only=False) + sd = ckpt["model_state_dict"] + if not any(k.startswith("spatial_encoder.") for k in sd): + # full pretrain graph (latest.tar) -> strip the "utae." prefix + sd = {k[len("utae."):]: v for k, v in sd.items() if k.startswith("utae.")} + if rank == 0: + print("[FT-32X32] (extracted encoder weights from full pretrain " + "checkpoint)", flush=True) + encoder.load_state_dict(sd, strict=True) + anchor = {n: p.detach().clone().to(device) for n,p in encoder.named_parameters()} + + network = network_type( + encoder, d_model=C.D_MODEL, num_classes=C.N_CLASSES).to(device) + net_ref = network + if world > 1: + network = DDP(network, device_ids=[local_rank]) + net_ref = network.module + + # ...and only AFTER model construction diverge the per-rank RNGs used for + # shuffling/augmentation, so the two GPUs see different crops/transforms. + torch.manual_seed(args.seed + 1000 * rank) + random.seed(args.seed + 1000 * rank) + + if args.init_finetuned: + initial = torch.load(args.init_finetuned, map_location="cpu", weights_only=False) + incompatible = net_ref.load_state_dict( + initial["model_state_dict"], strict=args.research != 'seasonal') + if args.research == 'seasonal': + expected = { + 'sta.seasonal_scores.weight', 'sta.seasonal_scores.bias', + 'sta.seasonal_projection.weight', 'sta.seasonal_projection.bias', + } + if set(incompatible.missing_keys) != expected or incompatible.unexpected_keys: + raise RuntimeError(f'Unexpected seasonal loading differences: {incompatible}') + if rank == 0: + print(f"[INIT] fine-tuned weights from {args.init_finetuned}; optimizer/schedule start fresh", flush=True) + + # ---- losses: uniform weights (inv-freq was a catastrophic regression) --- + class_weights = torch.ones(C.N_CLASSES, device=device) + class_weights[0] = 0.0 + class_weights[C.N_CLASSES - 1] = 0.0 + + ce_loss = nn.CrossEntropyLoss(weight=class_weights, + label_smoothing=args.label_smoothing) + if args.mask_ce_invalid: + def masked_ce(logits, target): + valid = (target > 0) & (target < C.N_CLASSES - 1) + if not valid.any(): + return logits.sum() * 0.0 + return torch.nn.functional.cross_entropy( + logits.permute(0, 2, 3, 1)[valid], target[valid], + weight=class_weights, label_smoothing=args.label_smoothing) + ce_loss = masked_ce + lovasz_loss = LovaszSoftmaxLoss(ignore_indices=[0, C.N_CLASSES - 1]) + bce_loss = nn.BCEWithLogitsLoss() + + # ---- optimizer / EMA ---------------------------------------------------- + parameter_groups = build_param_groups( + net_ref, args.base_lr, args.encoder_lr_mult, args.wd) + if args.research == 'seasonal': + # Keep the pretrained encoder / existing heads at their declared LRs. + # Only the newly initialized seasonal branch uses the higher LR. + seasonal_parameters = [(name, p) for name, p in net_ref.named_parameters() + if name.startswith('sta.seasonal_')] + seasonal_ids = {id(p) for _, p in seasonal_parameters} + for group in parameter_groups: + group['params'] = [p for p in group['params'] if id(p) not in seasonal_ids] + parameter_groups = [g for g in parameter_groups if g['params']] + for no_decay in (False, True): + selected = [p for _, p in seasonal_parameters if (p.ndim <= 1) == no_decay] + if selected: + parameter_groups.append({ + 'params': selected, 'lr0': args.seasonal_lr, + 'weight_decay': 0.0 if no_decay else args.wd, + }) + optimizer = torch.optim.AdamW( + parameter_groups, + lr=args.base_lr, betas=(0.9, 0.95)) + scaler = GradScaler() + ema = ModelEMA(network, decay=args.ema_decay) + from research_methods import pixel_contrast + features = {} + if args.research == 'contrast': + net_ref.sta.register_forward_hook(lambda module, inputs, output: features.update(value=output)) + swa = torch.optim.swa_utils.AveragedModel(net_ref) if args.research == 'swa' else None + best_swa = -1.0 + + distill_teacher = None + if args.distill_weight: + from evaluate_temporal_research import ReferenceTeacher + saved_rng = torch.get_rng_state(); saved_cuda_rng = torch.cuda.get_rng_state_all() + distill_teacher = ReferenceTeacher(device) + torch.set_rng_state(saved_rng); torch.cuda.set_rng_state_all(saved_cuda_rng) + + def training_loss(x, positions, target, boundary): + with autocast(dtype=torch.bfloat16 if args.research == 'contrast' else torch.float16): + outputs = network(x, positions) + sem = outputs['sem_logits'].float() + refined = outputs['refined_logits'].float() + loss = (ce_loss(sem,target) + .75*lovasz_loss(sem,target) + + ce_loss(refined,target) + .75*lovasz_loss(refined,target) + + args.boundary_weight*bce_loss(outputs['bnd_logits'].float().squeeze(1),boundary)) + if distill_teacher is not None: + with torch.no_grad(): + target_probs = distill_teacher(x, positions) + valid = (target > 0) & (target < C.N_CLASSES - 1) + if valid.any(): + kd = torch.nn.functional.kl_div(refined.log_softmax(1), target_probs, reduction='none').sum(1) + loss = loss + args.distill_weight * kd[valid].mean() + if args.research == 'l2sp': + # Sum of squared distance, encoder only; original pretrained anchor. + loss = loss + .001*sum((p-anchor[n]).square().sum() for n,p in net_ref.utae.named_parameters()) + elif args.research == 'contrast': + loss = loss + .05*pixel_contrast(features['value'], target) + elif args.research == 'consistency' and epoch >= 3: + with torch.no_grad(), autocast(): + teacher = ema.module(aug_spectral(x, gain_std=.02, bias_std=.01, noise_std=.005),positions)['refined_logits'].float().softmax(1) + valid = (target>0)&(target=.8) + if valid.any(): + kl = torch.nn.functional.kl_div(refined.log_softmax(1),teacher,reduction='none').sum(1) + loss = loss + .1*min(1.,(epoch-2)/5)*kl[valid].mean() + return loss + + if rank == 0: + n_params = sum(p.numel() for p in network.parameters() if p.requires_grad) + n_enc = sum(p.numel() for n_, p in net_ref.named_parameters() + if n_.startswith("utae.")) + print(f"[FT-32X32] params={n_params/1e6:.2f}M (encoder {n_enc/1e6:.2f}M)", + flush=True) + + # ---- resume -------------------------------------------------------------- + os.makedirs(out_dir, exist_ok=True) + latest_path = out_dir / "latest.tar" + start_epoch, best_raw, best_ema = 0, {"miou": -1.0}, {"miou": -1.0} + best_monitor, patience_counter, history = -1.0, 0, [] + + resume_from = None + if args.resume == "auto": + resume_from = latest_path if latest_path.is_file() else None + elif args.resume not in ("none", ""): + resume_from = Path(args.resume) + if not resume_from.is_file(): + raise FileNotFoundError(f"--resume: no such file {resume_from}") + + if resume_from is not None: + ck = torch.load(resume_from, map_location="cpu", weights_only=False) + net_ref.load_state_dict(ck["model_state_dict"]) + ema.module.load_state_dict(ck["ema_state_dict"]) + ema.updates = ck.get("ema_updates", 0) + optimizer.load_state_dict(ck["optimizer_state_dict"]) + scaler.load_state_dict(ck["scaler_state_dict"]) + best_raw = ck["best_raw"]; best_ema = ck["best_ema"] + best_monitor = ck.get("best_monitor", -1.0) + patience_counter = ck.get("patience_counter", 0) + history = ck.get("history", []) + start_epoch = int(ck["epoch"]) + 1 + if "rng_python" in ck: + random.setstate(ck["rng_python"]) + np.random.set_state(ck["rng_numpy"]) + torch.set_rng_state(ck["rng_torch"]) + torch.cuda.set_rng_state_all(ck["rng_cuda"]) + if rank == 0: + print(f"[FT-32X32] RESUMED from {resume_from} (finished epoch " + f"{ck['epoch']}) -> epoch {start_epoch}/{args.epochs}", + flush=True) + if start_epoch >= args.epochs: + print("[FT-32X32] already complete; nothing to do.", flush=True) + cleanup_distributed() + return + elif rank == 0: + print(f"[FT-32X32] starting fresh (--resume={args.resume})", flush=True) + + if rank == 0: + print(f"[HYPOTHESIS] temporal_aug={not args.no_temporal_aug} " + f"mask_ce_invalid={args.mask_ce_invalid} boundary_weight={args.boundary_weight} " + f"ema_decay={args.ema_decay}", flush=True) + if args.init_finetuned and start_epoch == 0: + m_init = validate(net_ref, val_dl, device, args.crop_size, args.limit_batches) + if rank == 0: + with open(out_dir / "initial_metrics.json", "w") as f: + json.dump(m_init, f, indent=2) + print(f"[INITIAL] mIoU={m_init['miou']:.6f}", flush=True) + # Epoch zero participates in deployment/checkpoint selection. + best_raw = {"miou": m_init["miou"], "epoch": -1} + best_ema = {"miou": m_init["miou"], "epoch": -1} + best_monitor = m_init["miou"] + for which in ("raw", "ema"): + torch.save(pack_checkpoint(net_ref.state_dict(), -1, m_init, + args.seed, which, args.research), + out_dir / f"model_best_{which}.tar") + + # ---- training loop ------------------------------------------------------- + gstep = start_epoch * steps_per_epoch + hi = C.PATCH_SIZE - args.crop_size + + for epoch in range(start_epoch, args.epochs): + if sampler is not None: + sampler.set_epoch(epoch) + network.train() + frozen = epoch < args.freeze_encoder_epochs + for parameter in net_ref.utae.parameters(): + parameter.requires_grad_(not frozen) + if frozen: + net_ref.utae.eval() # freeze BatchNorm statistics and encoder dropout + if rank == 0: + print(f"[ENCODER] frozen={frozen}", flush=True) + ep_start = time.time() + ep_loss, n_steps = 0.0, 0 + stop_flag = False + + for it, ((xp, pos, _days), yp) in enumerate(train_dl): + if args.limit_batches and it >= args.limit_batches: + break + xp = xp.to(device, non_blocking=True) # (B,T,10,128,128) + pos = pos.to(device, non_blocking=True) + yp = yp.to(device, non_blocking=True) # (B,128,128) + + if args.official_crops or args.fixed_crops: + crop_list = [crop_ij(xp, yp, i, j, C.PATCH_SIZE // args.crop_size) + for (i, j) in [tuple(x) for x in C.FT_CROP_IJ]] + else: + crop_list = [] + for _ in range(n_crops): + i = int(torch.randint(0, hi + 1, ())) + j = int(torch.randint(0, hi + 1, ())) + crop_list.append( + (xp[:, :, :, i:i + args.crop_size, + j:j + args.crop_size], + yp[:, i:i + args.crop_size, j:j + args.crop_size])) + + for xc, yc in crop_list: + pos_c = pos + if not args.no_aug: + xc, yc = aug_dihedral(xc, yc) + if not args.no_temporal_aug: + xc, pos_c = aug_temporal_subsample(xc, pos_c) + xc = aug_frame_dropout(xc) + xc = aug_spectral(xc) + bnd_gt = compute_boundary_target(yc) + + optimizer.zero_grad(set_to_none=True) + loss = training_loss(xc,pos_c,yc,bnd_gt) + if not torch.isfinite(loss): + raise RuntimeError('Nonfinite research loss') + scaler.scale(loss).backward() + if args.research == 'sam': + parameters = [p for p in net_ref.parameters() if p.grad is not None] + norm = torch.linalg.vector_norm(torch.stack([p.grad.float().norm()/scaler.get_scale() for p in parameters])) + if not torch.isfinite(norm): + # AMP overflow: let GradScaler skip this update and lower + # its scale before the next crop. No SAM perturbation made. + scaler.unscale_(optimizer) + scaler.step(optimizer) + scaler.update() + optimizer.zero_grad(set_to_none=True) + print('[SAM AMP] skipped overflowing first pass; scale=', scaler.get_scale(), flush=True) + continue + offsets = [] + with torch.no_grad(): + for parameter in parameters: + offset = parameter.grad / scaler.get_scale() * (args.sam_rho/(norm+1e-12)) + parameter.add_(offset) + offsets.append(offset) + optimizer.zero_grad(set_to_none=True) + bn = [m for m in net_ref.modules() if isinstance(m, torch.nn.modules.batchnorm._BatchNorm)] + states = [m.training for m in bn] + momenta = [m.momentum for m in bn] + tracked = [m.num_batches_tracked.detach().clone() if m.num_batches_tracked is not None else None for m in bn] + if args.sam_bn_mode == 'legacy': + for m in bn: m.eval() + else: + for m in bn: + m.train() + m.momentum = 0.0 + try: + second_loss = training_loss(xc,pos_c,yc,bnd_gt) + scaler.scale(second_loss).backward() + finally: + with torch.no_grad(): + for parameter,offset in zip(parameters,offsets): parameter.sub_(offset) + if args.sam_bn_mode == 'batch_no_update': + for m,count in zip(bn,tracked): + if count is not None: m.num_batches_tracked.copy_(count) + for m,state,momentum in zip(bn,states,momenta): + m.train(state) + m.momentum = momentum + scaler.unscale_(optimizer) + torch.nn.utils.clip_grad_norm_(network.parameters(),max_norm=5.0) + factor = 1.0 if args.research == 'swa' else lr_factor(gstep,total_steps,warmup_steps,args.min_lr_ratio) + set_lrs(optimizer,factor) + scaler.step(optimizer) + scaler.update() + ema.update(network) + gstep += 1 + + ep_loss += loss.item() + n_steps += 1 + + if rank == 0 and it % 10 == 0: + print(f" ep {epoch:3d} batch {it:3d}/{len(train_dl)} " + f"step {n_steps:3d}/{steps_per_epoch} " + f"loss={loss.item():.4f} " + f"lr={optimizer.param_groups[-1]['lr']:.2e} " + f"t={time.time()-ep_start:.0f}s", flush=True) + + if swa is not None and epoch >= 5: + swa.update_parameters(net_ref) + # Calibrate BN only on the same two fixed training crops. Dropout off. + swa.module.eval() + bn = [m for m in swa.module.modules() if isinstance(m, torch.nn.modules.batchnorm._BatchNorm)] + momenta = [m.momentum for m in bn] + for m in bn: + m.reset_running_stats(); m.momentum = None; m.train() + with torch.no_grad(): + for bi, ((xx,pp,_), yy) in enumerate(train_dl): + if args.limit_batches and bi >= args.limit_batches: break + xx,pp,yy = xx.to(device),pp.to(device),yy.to(device) + for i,j in C.FT_CROP_IJ: + crop,_ = crop_ij(xx,yy,i,j,C.PATCH_SIZE//args.crop_size) + with autocast(): swa.module(crop,pp) + for m,momentum in zip(bn,momenta): m.momentum=momentum; m.eval() + + # ---- validation: raw + EMA ------------------------------------------ + if rank == 0: + m_raw = validate(net_ref, val_dl, device, args.crop_size, + args.limit_batches) + m_ema = validate(ema.module, val_dl, device, args.crop_size, + args.limit_batches) + m_swa = validate(swa.module,val_dl,device,args.crop_size,args.limit_batches) if swa is not None and epoch >= 5 else None + if m_swa is not None and m_swa['miou'] > best_swa: + best_swa = m_swa['miou'] + torch.save(pack_checkpoint(swa.module.state_dict(),epoch,m_swa,args.seed,'swa'),out_dir/'model_best_swa.tar') + ep_sec = time.time() - ep_start + mean_loss = ep_loss / max(n_steps, 1) + + history.append({ + "epoch": epoch, "train_loss": mean_loss, + "lr": optimizer.param_groups[-1]["lr"], + "raw": {k: m_raw[k] for k in ("miou", "oa", "mf1", "kappa")}, + "ema": {k: m_ema[k] for k in ("miou", "oa", "mf1", "kappa")}, + "epoch_sec": ep_sec, "swa": m_swa, "research": args.research, + }) + with open(out_dir / "history.json", "w") as f: + json.dump(history, f, indent=1) + + improved = False + if m_raw["miou"] > best_raw["miou"]: + best_raw = {"miou": m_raw["miou"], "epoch": epoch} + torch.save(pack_checkpoint(net_ref.state_dict(), epoch, + m_raw, args.seed, "raw", + args.research), + out_dir / "model_best_raw.tar") + improved = True + if m_ema["miou"] > best_ema["miou"]: + best_ema = {"miou": m_ema["miou"], "epoch": epoch} + torch.save(pack_checkpoint(ema.module.state_dict(), epoch, + m_ema, args.seed, "ema", + args.research), + out_dir / "model_best_ema.tar") + improved = True + + monitor = max(m_raw["miou"], m_ema["miou"]) + if monitor > best_monitor: + best_monitor = monitor + patience_counter = 0 + else: + patience_counter += 1 + + print(f"[ep {epoch:3d} DONE] loss={mean_loss:.4f} " + f"raw_mIoU={m_raw['miou']:.4f} ema_mIoU={m_ema['miou']:.4f} " + f"best_raw={best_raw['miou']:.4f}@{best_raw['epoch']} " + f"best_ema={best_ema['miou']:.4f}@{best_ema['epoch']} " + f"patience={patience_counter}/{args.patience} " + f"t={ep_sec:.0f}s", flush=True) + if improved or (epoch % args.print_every == 0): + print_metrics(m_raw, f"ep {epoch} RAW") + print_metrics(m_ema, f"ep {epoch} EMA") + + # resumable latest.tar every epoch + tmp = out_dir / "latest.tar.tmp" + torch.save({ + "epoch": epoch, + "model_state_dict": net_ref.state_dict(), + "ema_state_dict": ema.module.state_dict(), + "ema_updates": ema.updates, + "optimizer_state_dict": optimizer.state_dict(), + "scaler_state_dict": scaler.state_dict(), + "best_raw": best_raw, "best_ema": best_ema, + "best_monitor": best_monitor, + "patience_counter": patience_counter, + "history": history, + "args": vars(args), + "rng_python": random.getstate(), + "rng_numpy": np.random.get_state(), + "rng_torch": torch.get_rng_state(), + "rng_cuda": torch.cuda.get_rng_state_all(), + }, tmp) + os.replace(tmp, latest_path) + + if args.patience > 0 and patience_counter >= args.patience: + print(f"[EARLY STOP] best_raw={best_raw} best_ema={best_ema}", + flush=True) + stop_flag = True + + # keep ranks in step and share rank 0's early-stop decision + if world > 1: + flag = torch.tensor([1 if stop_flag else 0], device=device) + dist.broadcast(flag, src=0) + stop_flag = bool(flag.item()) + if stop_flag: + break + + if rank == 0: + print(f"\n[FT-v2 COMPLETE] best_raw={best_raw} best_ema={best_ema}", + flush=True) + print(f"[FT-32X32] checkpoints in {out_dir}", flush=True) + cleanup_distributed() + + +if __name__ == "__main__": + main() diff --git a/ablations/10_plateau_breakthrough/workspace/finetune_hypotheses.py b/ablations/10_plateau_breakthrough/workspace/finetune_hypotheses.py new file mode 100644 index 0000000000000000000000000000000000000000..a1f6810b218e985c1c2890a0a587c9b2101c6f17 --- /dev/null +++ b/ablations/10_plateau_breakthrough/workspace/finetune_hypotheses.py @@ -0,0 +1,688 @@ +""" +T-SRDA finetune v2 — improved recipe for Kaggle (T4 x 2). + +The v1 run (official STCLN protocol: fixed 32x32 diagonal crops, no +augmentation, flat LR 1e-4, wd=0) peaked at val mIoU 0.4759 around epoch 37 +and then DECLINED to 0.4207 by epoch 99 — textbook overfitting to the 152 +fixed training crops. v2 attacks exactly that, while keeping everything that +made v1 comparable intact. + +NEW in v2 +--------- +1. RANDOM CROPS anywhere in the 128x128 patch (default 64x64, 2 per patch + per epoch) instead of the two fixed 32x32 diagonal crops (0,0)/(1,1). + Every epoch sees different windows, and 64x64 gives 4x the spatial + context of the official 32x32 plus more parcel boundaries per crop. +2. AUGMENTATION (v1/official: none): + - dihedral-8 (h/v flip + rot90) always sampled + - temporal subsample (drop up to 20% of frames, order kept) p=0.5 + - frame dropout (zero 1-2 whole frames ~ cloudy acquisition) p=0.25 + - per-band gain/bias jitter + small gaussian noise always +3. AdamW with weight decay 0.02 on >1-dim params (v1 used wd=0 == Adam). +4. DISCRIMINATIVE LR: the pretrained encoder trains at 0.5x the head LR, + so 43 h of pretraining is not washed out by the randomly-init heads. +5. WARMUP (3 ep) + COSINE decay to 1% (v1: flat 1e-4, no schedule). +6. EMA of weights (decay 0.999) — raw AND EMA are validated every epoch and + each keeps its own best checkpoint. EMA is usually the better one. +7. Label smoothing 0.05 on the CE terms. +8. Best-val checkpointing + early stopping (--patience), and a resumable + latest.tar every epoch (Kaggle sessions can die — --resume auto). + +KEPT IDENTICAL to v1 (so numbers stay comparable to the 0.4124/0.4433 run) +-------------------------------------------------------------------------- + - model architecture (UTAE_ASPP + UTAEClassificationDual); the pretrained + encoder is loaded strict=True from the .utae.tar checkpoint + - loss family: CE + 0.75*Lovász on the sem & refined heads + 0.5*BCE on + the boundary head; uniform class weights with 0/19 ignored (the + inverse-frequency weighting experiment is NOT repeated — it was a + catastrophic regression in this project) + - splits: the same 76 train / 76 val hardcoded patch IDs, fold-4 test + - index positions (arange(T)), AMP, grad clip 5.0, seed protocol + - same optimizer-step budget: 2 patches/batch x 2 crops = 76 steps/epoch + +DDP: launch with torchrun to use both T4s (one run, half the wall time): + torchrun --standalone --nproc_per_node=2 finetune_v2.py --pretrain_pth ... +""" +import argparse +import copy +import json +import math +import os +import random +import time +from pathlib import Path + +import numpy as np +import torch +import torch.nn as nn +import torch.distributed as dist +from torch.utils.data import DataLoader, DistributedSampler +from torch.cuda.amp import autocast, GradScaler +from torch.nn.parallel import DistributedDataParallel as DDP +from sklearn.metrics import confusion_matrix, cohen_kappa_score + +import config as C +from dataset import (PASTISPatchDataset, train_patch_ids, val_patch_ids, + pad_collate, crop_ij) +from model import UTAE_ASPP, UTAEClassificationDual, compute_boundary_target +from losses import LovaszSoftmaxLoss + +PASTIS_NAMES = C.PASTIS_CLASSES # single source of truth — see config.py + + +# ───────────────────────────────────────────────────────────────────────────── +# Distributed helpers (same contract as v1: torchrun env vars, else single GPU) +# ───────────────────────────────────────────────────────────────────────────── +def setup_distributed(): + if "RANK" in os.environ: + dist.init_process_group(backend="nccl") + local_rank = int(os.environ["LOCAL_RANK"]) + rank = int(os.environ["RANK"]) + world = int(os.environ["WORLD_SIZE"]) + torch.cuda.set_device(local_rank) + return rank, world, local_rank, torch.device(f"cuda:{local_rank}") + return 0, 1, 0, torch.device("cuda:0") + + +def cleanup_distributed(): + if dist.is_initialized(): + dist.destroy_process_group() + + +# ───────────────────────────────────────────────────────────────────────────── +# Metrics — identical to v1 finetune.py +# ───────────────────────────────────────────────────────────────────────────── +def compute_all_metrics(preds_np, labels_np, num_classes=20): + class_ids = list(range(1, num_classes - 1)) # 1..18 scored + + valid = (labels_np > 0) & (labels_np < num_classes - 1) + pv = preds_np[valid] + lv = labels_np[valid] + + if len(lv) == 0: + return dict(miou=0.0, oa=0.0, mf1=0.0, kappa=0.0, + per_iou={}, per_f1={}) + + cm = confusion_matrix(lv, pv, labels=class_ids) + diag = np.diag(cm).astype(np.float64) + sum0 = cm.sum(0).astype(np.float64) + sum1 = cm.sum(1).astype(np.float64) + + iou = diag / (sum0 + sum1 - diag + 1e-8) + f1 = (2 * diag) / (sum0 + sum1 + 1e-8) + miou = float(iou.mean()) + mf1 = float(f1.mean()) + oa = float((pv == lv).mean()) + kappa = float(cohen_kappa_score(lv, pv)) + + return dict(miou=miou, oa=oa, mf1=mf1, kappa=kappa, + per_iou={c: float(iou[i]) for i, c in enumerate(class_ids)}, + per_f1={c: float(f1[i]) for i, c in enumerate(class_ids)}) + + +def print_metrics(metrics, tag): + print(f" [{tag}] mIoU={metrics['miou']:.4f} OA={metrics['oa']:.4f} " + f"mF1={metrics['mf1']:.4f} Kappa={metrics['kappa']:.4f}", flush=True) + print(f" {'Cls':>4} {'Name':<28} {'IoU':>8} {'F1':>8}", flush=True) + print(f" {'-'*44}", flush=True) + for c in range(1, C.N_CLASSES - 1): + iv = metrics['per_iou'].get(c, 0.0) + fv = metrics['per_f1'].get(c, 0.0) + name = PASTIS_NAMES.get(c, f"cls{c}") + flag = " **DEAD**" if iv < 0.001 else (" *rare*" if iv < 0.10 else "") + print(f" {c:>4} {name:<28} {iv:>8.4f} {fv:>8.4f}{flag}", flush=True) + + +# ───────────────────────────────────────────────────────────────────────────── +# v2 augmentations. All operate on one batch of crops: +# xc (B, T, C, h, w) normalized S2 +# yc (B, h, w) labels +# pos (B, T) index positions (arange(T) upstream) +# ───────────────────────────────────────────────────────────────────────────── +def aug_dihedral(xc, yc): + """One dihedral-8 transform per crop-batch, image and label together.""" + if torch.rand(()) > 0.5: + xc, yc = xc.flip(-2), yc.flip(-2) + if torch.rand(()) > 0.5: + xc, yc = xc.flip(-1), yc.flip(-1) + k = int(torch.randint(0, 4, ())) + if k: + xc, yc = torch.rot90(xc, k, (-2, -1)), torch.rot90(yc, k, (-2, -1)) + return xc.contiguous(), yc.contiguous() + + +def aug_temporal_subsample(xc, pos, p=0.5, drop_max=0.2, keep_min=24): + """Drop up to `drop_max` of the frames, order preserved. Positions keep + their original index values -> emulates missing acquisitions of an + otherwise identical season. No-op with probability 1-p.""" + if torch.rand(()) > p: + return xc, pos + T = xc.shape[1] + keep = int(round(T * (1.0 - random.uniform(0.0, drop_max)))) + keep = max(keep_min, min(T, keep)) + if keep >= T: + return xc, pos + idx = torch.randperm(T)[:keep].sort().values.to(xc.device) + return (xc.index_select(1, idx).contiguous(), + pos.index_select(1, idx).contiguous()) + + +def aug_frame_dropout(xc, p=0.25, max_frames=2): + """Zero 1-2 whole frames (0 == dataset mean after normalisation) — + emulates cloudy/lost acquisitions.""" + if torch.rand(()) > p: + return xc + T = xc.shape[1] + n = random.randint(1, max_frames) + idx = torch.randperm(T)[:n].to(xc.device) + xc = xc.clone() + xc[:, idx] = 0.0 + return xc + + +def aug_spectral(xc, gain_std=0.05, bias_std=0.03, noise_std=0.01): + """Per-sample, per-band gain/bias jitter + small gaussian noise (data is + z-normalised, so these are fractions of one std).""" + B, T, Ch, H, W = xc.shape + dev = xc.device + gain = 1.0 + gain_std * torch.randn(B, 1, Ch, 1, 1, device=dev) + bias = bias_std * torch.randn(B, 1, Ch, 1, 1, device=dev) + xc = xc * gain + bias + if noise_std > 0: + xc = xc + noise_std * torch.randn_like(xc) + return xc.contiguous() + + +# ───────────────────────────────────────────────────────────────────────────── +# EMA of the raw (unwrapped) network +# ───────────────────────────────────────────────────────────────────────────── +class ModelEMA: + def __init__(self, model, decay=0.999): + self.decay = decay + self.updates = 0 + raw = model.module if isinstance(model, DDP) else model + self.module = copy.deepcopy(raw).eval() + for p in self.module.parameters(): + p.requires_grad_(False) + + @torch.no_grad() + def update(self, model): + self.updates += 1 + d = min(self.decay, (1.0 + self.updates) / (10.0 + self.updates)) + raw = model.module if isinstance(model, DDP) else model + msd = raw.state_dict() + for k, v in self.module.state_dict().items(): + if v.dtype.is_floating_point: + v.lerp_(msd[k].detach().float(), 1.0 - d) + else: + v.copy_(msd[k]) + + +# ───────────────────────────────────────────────────────────────────────────── +# Optimizer param groups: encoder vs heads x decay vs no-decay +# ───────────────────────────────────────────────────────────────────────────── +def build_param_groups(net_raw, base_lr, encoder_mult, wd): + buckets = {"enc_dec": [], "enc_nd": [], "head_dec": [], "head_nd": []} + for name, p in net_raw.named_parameters(): + if not p.requires_grad: + continue + is_enc = name.startswith("utae.") + no_dec = p.ndim <= 1 # LN/BN weights + all biases + buckets[("enc_" if is_enc else "head_") + ("nd" if no_dec else "dec") + ].append(p) + groups = [ + {"params": buckets["enc_dec"], "lr0": base_lr * encoder_mult, + "weight_decay": wd}, + {"params": buckets["enc_nd"], "lr0": base_lr * encoder_mult, + "weight_decay": 0.0}, + {"params": buckets["head_dec"], "lr0": base_lr, + "weight_decay": wd}, + {"params": buckets["head_nd"], "lr0": base_lr, + "weight_decay": 0.0}, + ] + return [g for g in groups if len(g["params"]) > 0] + + +def lr_factor(step, total_steps, warmup_steps, min_ratio): + """Linear warmup then cosine decay to min_ratio.""" + if step < warmup_steps: + return (step + 1) / max(1, warmup_steps) + p = (step - warmup_steps) / max(1, total_steps - warmup_steps) + p = min(1.0, p) + cos = 0.5 * (1.0 + math.cos(math.pi * p)) + return min_ratio + (1.0 - min_ratio) * cos + + +def set_lrs(optimizer, factor): + for g in optimizer.param_groups: + g["lr"] = g["lr0"] * factor + + +# ───────────────────────────────────────────────────────────────────────────── +# Validation on the two fixed diagonal crops of the val patches +# (grid = PATCH_SIZE / crop_size; for 64 -> (0,0),(1,1) of a 2x2 grid, +# for 32 -> exactly the official v1 validation crops) +# ───────────────────────────────────────────────────────────────────────────── +@torch.no_grad() +def validate(net, val_dl, device, crop_size, limit_batches=0): + net.eval() + grid = max(1, C.PATCH_SIZE // crop_size) + positions = [(0, 0), (1, 1)] if grid >= 2 else [(0, 0)] + all_preds, all_labels = [], [] + for bi, ((xv, pv_, _dv), yv) in enumerate(val_dl): + if limit_batches and bi >= limit_batches: + break + xv = xv.to(device, non_blocking=True) + pv_ = pv_.to(device, non_blocking=True) + yv = yv.to(device, non_blocking=True) + for (i, j) in positions: + xc, yc = crop_ij(xv, yv, i, j, grid) + with autocast(): + out = net(xc, pv_) + pred = out["refined_logits"].float().argmax(dim=1) + all_preds.append(pred.cpu().numpy().ravel()) + all_labels.append(yc.cpu().numpy().ravel()) + return compute_all_metrics(np.concatenate(all_preds), + np.concatenate(all_labels), C.N_CLASSES) + + +def pack_checkpoint(state_dict, epoch, metrics, seed, which): + return {"epoch": epoch, + "model_state_dict": state_dict, + "val_miou": metrics["miou"], + "val_oa": metrics["oa"], + "val_mf1": metrics["mf1"], + "val_kappa": metrics["kappa"], + "val_per_iou": metrics["per_iou"], + "seed": seed, "which": which, "recipe": "v2"} + + +# ───────────────────────────────────────────────────────────────────────────── +def main(): + ap = argparse.ArgumentParser() + ap.add_argument("--pretrain_pth", type=str, required=True) + ap.add_argument("--seed", type=int, default=C.SEED) + ap.add_argument("--tag", type=str, default="v2") + ap.add_argument("--out_dir", type=str, default="", + help="default: /checkpoints/finetune_v2/") + ap.add_argument("--epochs", type=int, default=C.FT_EPOCHS) + ap.add_argument("--batch", type=int, default=C.FT_BATCH) + # --- the v2 recipe knobs ------------------------------------------------- + ap.add_argument("--crop_size", type=int, default=64, + help="random-crop side; 32 = official crop size") + ap.add_argument("--crops_per_patch", type=int, default=2, + help="random crops per patch per epoch (2 keeps the " + "official 76 steps/epoch)") + ap.add_argument("--official_crops", action="store_true", + help="control run: fixed 32x32 diagonal crops, no augs " + "(= v1 recipe with v2 plumbing)") + ap.add_argument("--fixed_crops", action="store_true", + help="fixed diagonal crops at --crop_size; keeps augmentation settings") + ap.add_argument("--no_aug", action="store_true") + ap.add_argument("--no_temporal_aug", action="store_true") + ap.add_argument("--mask_ce_invalid", action="store_true") + ap.add_argument("--boundary_weight", type=float, default=0.5) + ap.add_argument("--init_finetuned", type=str, default="", + help="initialize all weights from fine-tuned checkpoint; reset optimizer and schedule") + ap.add_argument("--base_lr", type=float, default=1e-4) + ap.add_argument("--encoder_lr_mult", type=float, default=0.5) + ap.add_argument("--min_lr_ratio", type=float, default=0.01) + ap.add_argument("--warmup_epochs", type=float, default=3.0) + ap.add_argument("--wd", type=float, default=0.02) + ap.add_argument("--label_smoothing", type=float, default=0.05) + ap.add_argument("--ema_decay", type=float, default=0.999) + ap.add_argument("--patience", type=int, default=30, + help="early stopping on val mIoU; 0 = run all epochs") + # --- housekeeping -------------------------------------------------------- + ap.add_argument("--print_every", type=int, default=5) + ap.add_argument("--limit_batches", type=int, default=0, + help=">0: truncate train/val loops (smoke test)") + ap.add_argument("--resume", type=str, default="auto", + help="'auto' resumes from /latest.tar if present; " + "'none' starts fresh; or an explicit .tar path") + args = ap.parse_args() + + if args.official_crops: + args.crop_size = 32 + args.no_aug = True + + if args.fixed_crops and args.crop_size not in (32, 64): + ap.error("--fixed_crops requires --crop_size 32 or 64") + + out_dir = (Path(args.out_dir) if args.out_dir else + C.EXP_ROOT / "checkpoints" / "finetune_v2" / args.tag) + + rank, world, local_rank, device = setup_distributed() + + # Seed BEFORE model creation so all ranks build identical weights... + torch.backends.cuda.matmul.allow_tf32 = True + torch.backends.cudnn.allow_tf32 = True + torch.set_num_threads(min(8, os.cpu_count() or 1)) + torch.manual_seed(args.seed) + torch.cuda.manual_seed_all(args.seed) + + train_ids = train_patch_ids() + val_ids = val_patch_ids() + + train_ds = PASTISPatchDataset(train_ids) + val_ds = PASTISPatchDataset(val_ids) + + sampler = (DistributedSampler(train_ds, num_replicas=world, rank=rank, + shuffle=True) + if world > 1 else None) + train_dl = DataLoader( + train_ds, batch_size=args.batch, sampler=sampler, + shuffle=(sampler is None), num_workers=2, pin_memory=True, + persistent_workers=True, collate_fn=pad_collate) + val_dl = DataLoader( + val_ds, batch_size=args.batch, shuffle=False, + num_workers=2, pin_memory=True, collate_fn=pad_collate) + + n_crops = len(C.FT_CROP_IJ) if (args.official_crops or args.fixed_crops) else args.crops_per_patch + steps_per_epoch = len(train_dl) * n_crops + total_steps = steps_per_epoch * args.epochs + warmup_steps = int(args.warmup_epochs * steps_per_epoch) + + if rank == 0: + print(f"[FT-v2] train={len(train_ids)} patches ({len(set(train_ids))} unique) " + f"val={len(val_ids)} patches ({len(set(val_ids))} unique)", flush=True) + print(f"[FT-v2] world={world} batch={args.batch} patches x {n_crops} crops " + f"-> {steps_per_epoch} steps/epoch/rank", flush=True) + print(f"[FT-v2] crop_size={args.crop_size} " + f"({'fixed diagonal' if (args.official_crops or args.fixed_crops) else 'RANDOM'}) " + f"aug={'off' if args.no_aug else 'dihedral+temporal+spectral'}", + flush=True) + print(f"[FT-v2] base_lr={args.base_lr} enc_mult={args.encoder_lr_mult} " + f"wd={args.wd} ls={args.label_smoothing} ema={args.ema_decay} " + f"warmup_ep={args.warmup_epochs} min_lr_ratio={args.min_lr_ratio} " + f"patience={args.patience}", flush=True) + print(f"[FT-v2] seed={args.seed} epochs={args.epochs} " + f"checkpoints -> {out_dir}", flush=True) + + # ---- model + pretrained encoder ---------------------------------------- + encoder = UTAE_ASPP( + n_channels=C.N_CHANNELS, d_model=C.D_MODEL, n_heads=C.N_HEADS, + T_pad=C.T_PAD, windows=C.TSE_WINDOWS, shifts=C.TSE_SHIFTS) + if rank == 0: + print(f"[FT-v2] loading encoder: {args.pretrain_pth}", flush=True) + ckpt = torch.load(args.pretrain_pth, map_location="cpu", weights_only=False) + sd = ckpt["model_state_dict"] + if not any(k.startswith("spatial_encoder.") for k in sd): + # full pretrain graph (latest.tar) -> strip the "utae." prefix + sd = {k[len("utae."):]: v for k, v in sd.items() if k.startswith("utae.")} + if rank == 0: + print("[FT-v2] (extracted encoder weights from full pretrain " + "checkpoint)", flush=True) + encoder.load_state_dict(sd, strict=True) + + network = UTAEClassificationDual( + encoder, d_model=C.D_MODEL, num_classes=C.N_CLASSES).to(device) + net_ref = network + if world > 1: + network = DDP(network, device_ids=[local_rank]) + net_ref = network.module + + # ...and only AFTER model construction diverge the per-rank RNGs used for + # shuffling/augmentation, so the two GPUs see different crops/transforms. + torch.manual_seed(args.seed + 1000 * rank) + random.seed(args.seed + 1000 * rank) + + if args.init_finetuned: + initial = torch.load(args.init_finetuned, map_location="cpu", weights_only=False) + net_ref.load_state_dict(initial["model_state_dict"], strict=True) + if rank == 0: + print(f"[INIT] fine-tuned weights from {args.init_finetuned}; optimizer/schedule start fresh", flush=True) + + # ---- losses: uniform weights (inv-freq was a catastrophic regression) --- + class_weights = torch.ones(C.N_CLASSES, device=device) + class_weights[0] = 0.0 + class_weights[C.N_CLASSES - 1] = 0.0 + + ce_loss = nn.CrossEntropyLoss(weight=class_weights, + label_smoothing=args.label_smoothing) + if args.mask_ce_invalid: + def masked_ce(logits, target): + valid = (target > 0) & (target < C.N_CLASSES - 1) + if not valid.any(): + return logits.sum() * 0.0 + return torch.nn.functional.cross_entropy( + logits.permute(0, 2, 3, 1)[valid], target[valid], + weight=class_weights, label_smoothing=args.label_smoothing) + ce_loss = masked_ce + lovasz_loss = LovaszSoftmaxLoss(ignore_indices=[0, C.N_CLASSES - 1]) + bce_loss = nn.BCEWithLogitsLoss() + + # ---- optimizer / EMA ---------------------------------------------------- + optimizer = torch.optim.AdamW( + build_param_groups(net_ref, args.base_lr, args.encoder_lr_mult, + args.wd), + lr=args.base_lr, betas=(0.9, 0.95)) + scaler = GradScaler() + ema = ModelEMA(network, decay=args.ema_decay) + + if rank == 0: + n_params = sum(p.numel() for p in network.parameters() if p.requires_grad) + n_enc = sum(p.numel() for n_, p in net_ref.named_parameters() + if n_.startswith("utae.")) + print(f"[FT-v2] params={n_params/1e6:.2f}M (encoder {n_enc/1e6:.2f}M)", + flush=True) + + # ---- resume -------------------------------------------------------------- + os.makedirs(out_dir, exist_ok=True) + latest_path = out_dir / "latest.tar" + start_epoch, best_raw, best_ema = 0, {"miou": -1.0}, {"miou": -1.0} + best_monitor, patience_counter, history = -1.0, 0, [] + + resume_from = None + if args.resume == "auto": + resume_from = latest_path if latest_path.is_file() else None + elif args.resume not in ("none", ""): + resume_from = Path(args.resume) + if not resume_from.is_file(): + raise FileNotFoundError(f"--resume: no such file {resume_from}") + + if resume_from is not None: + ck = torch.load(resume_from, map_location="cpu", weights_only=False) + net_ref.load_state_dict(ck["model_state_dict"]) + ema.module.load_state_dict(ck["ema_state_dict"]) + ema.updates = ck.get("ema_updates", 0) + optimizer.load_state_dict(ck["optimizer_state_dict"]) + scaler.load_state_dict(ck["scaler_state_dict"]) + best_raw = ck["best_raw"]; best_ema = ck["best_ema"] + best_monitor = ck.get("best_monitor", -1.0) + patience_counter = ck.get("patience_counter", 0) + history = ck.get("history", []) + start_epoch = int(ck["epoch"]) + 1 + if rank == 0: + print(f"[FT-v2] RESUMED from {resume_from} (finished epoch " + f"{ck['epoch']}) -> epoch {start_epoch}/{args.epochs}", + flush=True) + if start_epoch >= args.epochs: + print("[FT-v2] already complete; nothing to do.", flush=True) + cleanup_distributed() + return + elif rank == 0: + print(f"[FT-v2] starting fresh (--resume={args.resume})", flush=True) + + if rank == 0: + print(f"[HYPOTHESIS] temporal_aug={not args.no_temporal_aug} " + f"mask_ce_invalid={args.mask_ce_invalid} boundary_weight={args.boundary_weight} " + f"ema_decay={args.ema_decay}", flush=True) + if args.init_finetuned and start_epoch == 0: + m_init = validate(net_ref, val_dl, device, args.crop_size, args.limit_batches) + if rank == 0: + with open(out_dir / "initial_metrics.json", "w") as f: + json.dump(m_init, f, indent=2) + print(f"[INITIAL] mIoU={m_init['miou']:.6f}", flush=True) + + # ---- training loop ------------------------------------------------------- + gstep = start_epoch * steps_per_epoch + hi = C.PATCH_SIZE - args.crop_size + + for epoch in range(start_epoch, args.epochs): + if sampler is not None: + sampler.set_epoch(epoch) + network.train() + ep_start = time.time() + ep_loss, n_steps = 0.0, 0 + stop_flag = False + + for it, ((xp, pos, _days), yp) in enumerate(train_dl): + if args.limit_batches and it >= args.limit_batches: + break + xp = xp.to(device, non_blocking=True) # (B,T,10,128,128) + pos = pos.to(device, non_blocking=True) + yp = yp.to(device, non_blocking=True) # (B,128,128) + + if args.official_crops or args.fixed_crops: + crop_list = [crop_ij(xp, yp, i, j, C.PATCH_SIZE // args.crop_size) + for (i, j) in [tuple(x) for x in C.FT_CROP_IJ]] + else: + crop_list = [] + for _ in range(n_crops): + i = int(torch.randint(0, hi + 1, ())) + j = int(torch.randint(0, hi + 1, ())) + crop_list.append( + (xp[:, :, :, i:i + args.crop_size, + j:j + args.crop_size], + yp[:, i:i + args.crop_size, j:j + args.crop_size])) + + for xc, yc in crop_list: + pos_c = pos + if not args.no_aug: + xc, yc = aug_dihedral(xc, yc) + if not args.no_temporal_aug: + xc, pos_c = aug_temporal_subsample(xc, pos_c) + xc = aug_frame_dropout(xc) + xc = aug_spectral(xc) + bnd_gt = compute_boundary_target(yc) + + optimizer.zero_grad(set_to_none=True) + with autocast(): + out = network(xc, pos_c) + + sem_logits = out["sem_logits"].float() + bnd_logits = out["bnd_logits"].float().squeeze(1) + refined_logits = out["refined_logits"].float() + + loss = (ce_loss(sem_logits, yc) + + 0.75 * lovasz_loss(sem_logits, yc) + + ce_loss(refined_logits, yc) + + 0.75 * lovasz_loss(refined_logits, yc) + + args.boundary_weight * bce_loss(bnd_logits, bnd_gt)) + + if not torch.isfinite(loss): + optimizer.zero_grad(set_to_none=True) + continue + + scaler.scale(loss).backward() + scaler.unscale_(optimizer) + torch.nn.utils.clip_grad_norm_(network.parameters(), + max_norm=5.0) + set_lrs(optimizer, + lr_factor(gstep, total_steps, warmup_steps, + args.min_lr_ratio)) + scaler.step(optimizer) + scaler.update() + ema.update(network) + gstep += 1 + + ep_loss += loss.item() + n_steps += 1 + + if rank == 0 and it % 10 == 0: + print(f" ep {epoch:3d} batch {it:3d}/{len(train_dl)} " + f"step {n_steps:3d}/{steps_per_epoch} " + f"loss={loss.item():.4f} " + f"lr={optimizer.param_groups[-1]['lr']:.2e} " + f"t={time.time()-ep_start:.0f}s", flush=True) + + # ---- validation: raw + EMA ------------------------------------------ + if rank == 0: + m_raw = validate(net_ref, val_dl, device, args.crop_size, + args.limit_batches) + m_ema = validate(ema.module, val_dl, device, args.crop_size, + args.limit_batches) + ep_sec = time.time() - ep_start + mean_loss = ep_loss / max(n_steps, 1) + + history.append({ + "epoch": epoch, "train_loss": mean_loss, + "lr": optimizer.param_groups[-1]["lr"], + "raw": {k: m_raw[k] for k in ("miou", "oa", "mf1", "kappa")}, + "ema": {k: m_ema[k] for k in ("miou", "oa", "mf1", "kappa")}, + "epoch_sec": ep_sec, + }) + with open(out_dir / "history.json", "w") as f: + json.dump(history, f, indent=1) + + improved = False + if m_raw["miou"] > best_raw["miou"]: + best_raw = {"miou": m_raw["miou"], "epoch": epoch} + torch.save(pack_checkpoint(net_ref.state_dict(), epoch, + m_raw, args.seed, "raw"), + out_dir / "model_best_raw.tar") + improved = True + if m_ema["miou"] > best_ema["miou"]: + best_ema = {"miou": m_ema["miou"], "epoch": epoch} + torch.save(pack_checkpoint(ema.module.state_dict(), epoch, + m_ema, args.seed, "ema"), + out_dir / "model_best_ema.tar") + improved = True + + monitor = max(m_raw["miou"], m_ema["miou"]) + if monitor > best_monitor: + best_monitor = monitor + patience_counter = 0 + else: + patience_counter += 1 + + print(f"[ep {epoch:3d} DONE] loss={mean_loss:.4f} " + f"raw_mIoU={m_raw['miou']:.4f} ema_mIoU={m_ema['miou']:.4f} " + f"best_raw={best_raw['miou']:.4f}@{best_raw['epoch']} " + f"best_ema={best_ema['miou']:.4f}@{best_ema['epoch']} " + f"patience={patience_counter}/{args.patience} " + f"t={ep_sec:.0f}s", flush=True) + if improved or (epoch % args.print_every == 0): + print_metrics(m_raw, f"ep {epoch} RAW") + print_metrics(m_ema, f"ep {epoch} EMA") + + # resumable latest.tar every epoch + tmp = out_dir / "latest.tar.tmp" + torch.save({ + "epoch": epoch, + "model_state_dict": net_ref.state_dict(), + "ema_state_dict": ema.module.state_dict(), + "ema_updates": ema.updates, + "optimizer_state_dict": optimizer.state_dict(), + "scaler_state_dict": scaler.state_dict(), + "best_raw": best_raw, "best_ema": best_ema, + "best_monitor": best_monitor, + "patience_counter": patience_counter, + "history": history, + "args": vars(args), + }, tmp) + os.replace(tmp, latest_path) + + if args.patience > 0 and patience_counter >= args.patience: + print(f"[EARLY STOP] best_raw={best_raw} best_ema={best_ema}", + flush=True) + stop_flag = True + + # keep ranks in step and share rank 0's early-stop decision + if world > 1: + flag = torch.tensor([1 if stop_flag else 0], device=device) + dist.broadcast(flag, src=0) + stop_flag = bool(flag.item()) + if stop_flag: + break + + if rank == 0: + print(f"\n[FT-v2 COMPLETE] best_raw={best_raw} best_ema={best_ema}", + flush=True) + print(f"[FT-v2] checkpoints in {out_dir}", flush=True) + cleanup_distributed() + + +if __name__ == "__main__": + main() diff --git a/ablations/10_plateau_breakthrough/workspace/finetune_improvements.py b/ablations/10_plateau_breakthrough/workspace/finetune_improvements.py new file mode 100644 index 0000000000000000000000000000000000000000..f34ab30d9624b61b059d23c70a85e8a1d326341a --- /dev/null +++ b/ablations/10_plateau_breakthrough/workspace/finetune_improvements.py @@ -0,0 +1,696 @@ +""" +T-SRDA finetune v2 — improved recipe for Kaggle (T4 x 2). + +The v1 run (official STCLN protocol: fixed 32x32 diagonal crops, no +augmentation, flat LR 1e-4, wd=0) peaked at val mIoU 0.4759 around epoch 37 +and then DECLINED to 0.4207 by epoch 99 — textbook overfitting to the 152 +fixed training crops. v2 attacks exactly that, while keeping everything that +made v1 comparable intact. + +NEW in v2 +--------- +1. RANDOM CROPS anywhere in the 128x128 patch (default 64x64, 2 per patch + per epoch) instead of the two fixed 32x32 diagonal crops (0,0)/(1,1). + Every epoch sees different windows, and 64x64 gives 4x the spatial + context of the official 32x32 plus more parcel boundaries per crop. +2. AUGMENTATION (v1/official: none): + - dihedral-8 (h/v flip + rot90) always sampled + - temporal subsample (drop up to 20% of frames, order kept) p=0.5 + - frame dropout (zero 1-2 whole frames ~ cloudy acquisition) p=0.25 + - per-band gain/bias jitter + small gaussian noise always +3. AdamW with weight decay 0.02 on >1-dim params (v1 used wd=0 == Adam). +4. DISCRIMINATIVE LR: the pretrained encoder trains at 0.5x the head LR, + so 43 h of pretraining is not washed out by the randomly-init heads. +5. WARMUP (3 ep) + COSINE decay to 1% (v1: flat 1e-4, no schedule). +6. EMA of weights (decay 0.999) — raw AND EMA are validated every epoch and + each keeps its own best checkpoint. EMA is usually the better one. +7. Label smoothing 0.05 on the CE terms. +8. Best-val checkpointing + early stopping (--patience), and a resumable + latest.tar every epoch (Kaggle sessions can die — --resume auto). + +KEPT IDENTICAL to v1 (so numbers stay comparable to the 0.4124/0.4433 run) +-------------------------------------------------------------------------- + - model architecture (UTAE_ASPP + UTAEClassificationDual); the pretrained + encoder is loaded strict=True from the .utae.tar checkpoint + - loss family: CE + 0.75*Lovász on the sem & refined heads + 0.5*BCE on + the boundary head; uniform class weights with 0/19 ignored (the + inverse-frequency weighting experiment is NOT repeated — it was a + catastrophic regression in this project) + - splits: the same 76 train / 76 val hardcoded patch IDs, fold-4 test + - index positions (arange(T)), AMP, grad clip 5.0, seed protocol + - same optimizer-step budget: 2 patches/batch x 2 crops = 76 steps/epoch + +DDP: launch with torchrun to use both T4s (one run, half the wall time): + torchrun --standalone --nproc_per_node=2 finetune_v2.py --pretrain_pth ... +""" +import argparse +import copy +import json +import math +import os +import random +import time +from pathlib import Path + +import numpy as np +import torch +import torch.nn as nn +import torch.distributed as dist +from torch.utils.data import DataLoader, DistributedSampler +from torch.cuda.amp import autocast, GradScaler +from torch.nn.parallel import DistributedDataParallel as DDP +from sklearn.metrics import confusion_matrix, cohen_kappa_score + +import config as C +from dataset import (PASTISPatchDataset, train_patch_ids, val_patch_ids, + pad_collate, crop_ij) +from model import UTAE_ASPP, UTAEClassificationDual, compute_boundary_target +from losses import LovaszSoftmaxLoss + +PASTIS_NAMES = C.PASTIS_CLASSES # single source of truth — see config.py + + +# ───────────────────────────────────────────────────────────────────────────── +# Distributed helpers (same contract as v1: torchrun env vars, else single GPU) +# ───────────────────────────────────────────────────────────────────────────── +def setup_distributed(): + if "RANK" in os.environ: + dist.init_process_group(backend="nccl") + local_rank = int(os.environ["LOCAL_RANK"]) + rank = int(os.environ["RANK"]) + world = int(os.environ["WORLD_SIZE"]) + torch.cuda.set_device(local_rank) + return rank, world, local_rank, torch.device(f"cuda:{local_rank}") + return 0, 1, 0, torch.device("cuda:0") + + +def cleanup_distributed(): + if dist.is_initialized(): + dist.destroy_process_group() + + +# ───────────────────────────────────────────────────────────────────────────── +# Metrics — identical to v1 finetune.py +# ───────────────────────────────────────────────────────────────────────────── +def compute_all_metrics(preds_np, labels_np, num_classes=20): + class_ids = list(range(1, num_classes - 1)) # 1..18 scored + + valid = (labels_np > 0) & (labels_np < num_classes - 1) + pv = preds_np[valid] + lv = labels_np[valid] + + if len(lv) == 0: + return dict(miou=0.0, oa=0.0, mf1=0.0, kappa=0.0, + per_iou={}, per_f1={}) + + cm = confusion_matrix(lv, pv, labels=class_ids) + diag = np.diag(cm).astype(np.float64) + sum0 = cm.sum(0).astype(np.float64) + sum1 = cm.sum(1).astype(np.float64) + + iou = diag / (sum0 + sum1 - diag + 1e-8) + f1 = (2 * diag) / (sum0 + sum1 + 1e-8) + miou = float(iou.mean()) + mf1 = float(f1.mean()) + oa = float((pv == lv).mean()) + kappa = float(cohen_kappa_score(lv, pv)) + + return dict(miou=miou, oa=oa, mf1=mf1, kappa=kappa, + per_iou={c: float(iou[i]) for i, c in enumerate(class_ids)}, + per_f1={c: float(f1[i]) for i, c in enumerate(class_ids)}) + + +def print_metrics(metrics, tag): + print(f" [{tag}] mIoU={metrics['miou']:.4f} OA={metrics['oa']:.4f} " + f"mF1={metrics['mf1']:.4f} Kappa={metrics['kappa']:.4f}", flush=True) + print(f" {'Cls':>4} {'Name':<28} {'IoU':>8} {'F1':>8}", flush=True) + print(f" {'-'*44}", flush=True) + for c in range(1, C.N_CLASSES - 1): + iv = metrics['per_iou'].get(c, 0.0) + fv = metrics['per_f1'].get(c, 0.0) + name = PASTIS_NAMES.get(c, f"cls{c}") + flag = " **DEAD**" if iv < 0.001 else (" *rare*" if iv < 0.10 else "") + print(f" {c:>4} {name:<28} {iv:>8.4f} {fv:>8.4f}{flag}", flush=True) + + +# ───────────────────────────────────────────────────────────────────────────── +# v2 augmentations. All operate on one batch of crops: +# xc (B, T, C, h, w) normalized S2 +# yc (B, h, w) labels +# pos (B, T) index positions (arange(T) upstream) +# ───────────────────────────────────────────────────────────────────────────── +def aug_dihedral(xc, yc): + """One dihedral-8 transform per crop-batch, image and label together.""" + if torch.rand(()) > 0.5: + xc, yc = xc.flip(-2), yc.flip(-2) + if torch.rand(()) > 0.5: + xc, yc = xc.flip(-1), yc.flip(-1) + k = int(torch.randint(0, 4, ())) + if k: + xc, yc = torch.rot90(xc, k, (-2, -1)), torch.rot90(yc, k, (-2, -1)) + return xc.contiguous(), yc.contiguous() + + +def aug_temporal_subsample(xc, pos, p=0.5, drop_max=0.2, keep_min=24): + """Drop up to `drop_max` of the frames, order preserved. Positions keep + their original index values -> emulates missing acquisitions of an + otherwise identical season. No-op with probability 1-p.""" + if torch.rand(()) > p: + return xc, pos + T = xc.shape[1] + keep = int(round(T * (1.0 - random.uniform(0.0, drop_max)))) + keep = max(keep_min, min(T, keep)) + if keep >= T: + return xc, pos + idx = torch.randperm(T)[:keep].sort().values.to(xc.device) + return (xc.index_select(1, idx).contiguous(), + pos.index_select(1, idx).contiguous()) + + +def aug_frame_dropout(xc, p=0.25, max_frames=2): + """Zero 1-2 whole frames (0 == dataset mean after normalisation) — + emulates cloudy/lost acquisitions.""" + if torch.rand(()) > p: + return xc + T = xc.shape[1] + n = random.randint(1, max_frames) + idx = torch.randperm(T)[:n].to(xc.device) + xc = xc.clone() + xc[:, idx] = 0.0 + return xc + + +def aug_spectral(xc, gain_std=0.05, bias_std=0.03, noise_std=0.01): + """Per-sample, per-band gain/bias jitter + small gaussian noise (data is + z-normalised, so these are fractions of one std).""" + B, T, Ch, H, W = xc.shape + dev = xc.device + gain = 1.0 + gain_std * torch.randn(B, 1, Ch, 1, 1, device=dev) + bias = bias_std * torch.randn(B, 1, Ch, 1, 1, device=dev) + xc = xc * gain + bias + if noise_std > 0: + xc = xc + noise_std * torch.randn_like(xc) + return xc.contiguous() + + +# ───────────────────────────────────────────────────────────────────────────── +# EMA of the raw (unwrapped) network +# ───────────────────────────────────────────────────────────────────────────── +class ModelEMA: + def __init__(self, model, decay=0.999): + self.decay = decay + self.updates = 0 + raw = model.module if isinstance(model, DDP) else model + self.module = copy.deepcopy(raw).eval() + for p in self.module.parameters(): + p.requires_grad_(False) + + @torch.no_grad() + def update(self, model): + self.updates += 1 + d = min(self.decay, (1.0 + self.updates) / (10.0 + self.updates)) + raw = model.module if isinstance(model, DDP) else model + msd = raw.state_dict() + for k, v in self.module.state_dict().items(): + if v.dtype.is_floating_point: + v.lerp_(msd[k].detach().float(), 1.0 - d) + else: + v.copy_(msd[k]) + + +# ───────────────────────────────────────────────────────────────────────────── +# Optimizer param groups: encoder vs heads x decay vs no-decay +# ───────────────────────────────────────────────────────────────────────────── +def build_param_groups(net_raw, base_lr, encoder_mult, wd): + buckets = {"enc_dec": [], "enc_nd": [], "head_dec": [], "head_nd": []} + for name, p in net_raw.named_parameters(): + if not p.requires_grad: + continue + is_enc = name.startswith("utae.") + no_dec = p.ndim <= 1 # LN/BN weights + all biases + buckets[("enc_" if is_enc else "head_") + ("nd" if no_dec else "dec") + ].append(p) + groups = [ + {"params": buckets["enc_dec"], "lr0": base_lr * encoder_mult, + "weight_decay": wd}, + {"params": buckets["enc_nd"], "lr0": base_lr * encoder_mult, + "weight_decay": 0.0}, + {"params": buckets["head_dec"], "lr0": base_lr, + "weight_decay": wd}, + {"params": buckets["head_nd"], "lr0": base_lr, + "weight_decay": 0.0}, + ] + return [g for g in groups if len(g["params"]) > 0] + + +def lr_factor(step, total_steps, warmup_steps, min_ratio): + """Linear warmup then cosine decay to min_ratio.""" + if step < warmup_steps: + return (step + 1) / max(1, warmup_steps) + p = (step - warmup_steps) / max(1, total_steps - warmup_steps) + p = min(1.0, p) + cos = 0.5 * (1.0 + math.cos(math.pi * p)) + return min_ratio + (1.0 - min_ratio) * cos + + +def set_lrs(optimizer, factor): + for g in optimizer.param_groups: + g["lr"] = g["lr0"] * factor + + +# ───────────────────────────────────────────────────────────────────────────── +# Validation on the two fixed diagonal crops of the val patches +# (grid = PATCH_SIZE / crop_size; for 64 -> (0,0),(1,1) of a 2x2 grid, +# for 32 -> exactly the official v1 validation crops) +# ───────────────────────────────────────────────────────────────────────────── +@torch.no_grad() +def validate(net, val_dl, device, crop_size, limit_batches=0): + net.eval() + grid = max(1, C.PATCH_SIZE // crop_size) + positions = [(0, 0), (1, 1)] if grid >= 2 else [(0, 0)] + all_preds, all_labels = [], [] + for bi, ((xv, pv_, _dv), yv) in enumerate(val_dl): + if limit_batches and bi >= limit_batches: + break + xv = xv.to(device, non_blocking=True) + pv_ = pv_.to(device, non_blocking=True) + yv = yv.to(device, non_blocking=True) + for (i, j) in positions: + xc, yc = crop_ij(xv, yv, i, j, grid) + with autocast(): + out = net(xc, pv_) + pred = out["refined_logits"].float().argmax(dim=1) + all_preds.append(pred.cpu().numpy().ravel()) + all_labels.append(yc.cpu().numpy().ravel()) + return compute_all_metrics(np.concatenate(all_preds), + np.concatenate(all_labels), C.N_CLASSES) + + +def pack_checkpoint(state_dict, epoch, metrics, seed, which): + return {"epoch": epoch, + "model_state_dict": state_dict, + "val_miou": metrics["miou"], + "val_oa": metrics["oa"], + "val_mf1": metrics["mf1"], + "val_kappa": metrics["kappa"], + "val_per_iou": metrics["per_iou"], + "seed": seed, "which": which, "recipe": "v2"} + + +# ───────────────────────────────────────────────────────────────────────────── +def main(): + ap = argparse.ArgumentParser() + ap.add_argument("--pretrain_pth", type=str, required=True) + ap.add_argument("--seed", type=int, default=C.SEED) + ap.add_argument("--tag", type=str, default="v2") + ap.add_argument("--out_dir", type=str, default="", + help="default: /checkpoints/finetune_v2/") + ap.add_argument("--epochs", type=int, default=C.FT_EPOCHS) + ap.add_argument("--batch", type=int, default=C.FT_BATCH) + # --- the v2 recipe knobs ------------------------------------------------- + ap.add_argument("--crop_size", type=int, default=64, + help="random-crop side; 32 = official crop size") + ap.add_argument("--crops_per_patch", type=int, default=2, + help="random crops per patch per epoch (2 keeps the " + "official 76 steps/epoch)") + ap.add_argument("--official_crops", action="store_true", + help="control run: fixed 32x32 diagonal crops, no augs " + "(= v1 recipe with v2 plumbing)") + ap.add_argument("--fixed_crops", action="store_true", + help="fixed diagonal crops at --crop_size; keeps augmentation settings") + ap.add_argument("--freeze_encoder_epochs", type=int, default=0) + ap.add_argument("--no_aug", action="store_true") + ap.add_argument("--no_temporal_aug", action="store_true") + ap.add_argument("--mask_ce_invalid", action="store_true") + ap.add_argument("--boundary_weight", type=float, default=0.5) + ap.add_argument("--init_finetuned", type=str, default="", + help="initialize all weights from fine-tuned checkpoint; reset optimizer and schedule") + ap.add_argument("--base_lr", type=float, default=1e-4) + ap.add_argument("--encoder_lr_mult", type=float, default=0.5) + ap.add_argument("--min_lr_ratio", type=float, default=0.01) + ap.add_argument("--warmup_epochs", type=float, default=3.0) + ap.add_argument("--wd", type=float, default=0.02) + ap.add_argument("--label_smoothing", type=float, default=0.05) + ap.add_argument("--ema_decay", type=float, default=0.999) + ap.add_argument("--patience", type=int, default=30, + help="early stopping on val mIoU; 0 = run all epochs") + # --- housekeeping -------------------------------------------------------- + ap.add_argument("--print_every", type=int, default=5) + ap.add_argument("--limit_batches", type=int, default=0, + help=">0: truncate train/val loops (smoke test)") + ap.add_argument("--resume", type=str, default="auto", + help="'auto' resumes from /latest.tar if present; " + "'none' starts fresh; or an explicit .tar path") + args = ap.parse_args() + + if args.official_crops: + args.crop_size = 32 + args.no_aug = True + + if args.fixed_crops and args.crop_size not in (32, 64): + ap.error("--fixed_crops requires --crop_size 32 or 64") + + out_dir = (Path(args.out_dir) if args.out_dir else + C.EXP_ROOT / "checkpoints" / "finetune_v2" / args.tag) + + rank, world, local_rank, device = setup_distributed() + + # Seed BEFORE model creation so all ranks build identical weights... + torch.backends.cuda.matmul.allow_tf32 = True + torch.backends.cudnn.allow_tf32 = True + torch.set_num_threads(min(8, os.cpu_count() or 1)) + torch.manual_seed(args.seed) + torch.cuda.manual_seed_all(args.seed) + + train_ids = train_patch_ids() + val_ids = val_patch_ids() + + train_ds = PASTISPatchDataset(train_ids) + val_ds = PASTISPatchDataset(val_ids) + + sampler = (DistributedSampler(train_ds, num_replicas=world, rank=rank, + shuffle=True) + if world > 1 else None) + train_dl = DataLoader( + train_ds, batch_size=args.batch, sampler=sampler, + shuffle=(sampler is None), num_workers=2, pin_memory=True, + persistent_workers=True, collate_fn=pad_collate) + val_dl = DataLoader( + val_ds, batch_size=args.batch, shuffle=False, + num_workers=2, pin_memory=True, collate_fn=pad_collate) + + n_crops = len(C.FT_CROP_IJ) if (args.official_crops or args.fixed_crops) else args.crops_per_patch + steps_per_epoch = len(train_dl) * n_crops + total_steps = steps_per_epoch * args.epochs + warmup_steps = int(args.warmup_epochs * steps_per_epoch) + + if rank == 0: + print(f"[FT-v2] train={len(train_ids)} patches ({len(set(train_ids))} unique) " + f"val={len(val_ids)} patches ({len(set(val_ids))} unique)", flush=True) + print(f"[FT-v2] world={world} batch={args.batch} patches x {n_crops} crops " + f"-> {steps_per_epoch} steps/epoch/rank", flush=True) + print(f"[FT-v2] crop_size={args.crop_size} " + f"({'fixed diagonal' if (args.official_crops or args.fixed_crops) else 'RANDOM'}) " + f"aug={'off' if args.no_aug else 'dihedral+temporal+spectral'}", + flush=True) + print(f"[FT-v2] base_lr={args.base_lr} enc_mult={args.encoder_lr_mult} " + f"wd={args.wd} ls={args.label_smoothing} ema={args.ema_decay} " + f"warmup_ep={args.warmup_epochs} min_lr_ratio={args.min_lr_ratio} " + f"patience={args.patience}", flush=True) + print(f"[FT-v2] seed={args.seed} epochs={args.epochs} " + f"checkpoints -> {out_dir}", flush=True) + + # ---- model + pretrained encoder ---------------------------------------- + encoder = UTAE_ASPP( + n_channels=C.N_CHANNELS, d_model=C.D_MODEL, n_heads=C.N_HEADS, + T_pad=C.T_PAD, windows=C.TSE_WINDOWS, shifts=C.TSE_SHIFTS) + if rank == 0: + print(f"[FT-v2] loading encoder: {args.pretrain_pth}", flush=True) + ckpt = torch.load(args.pretrain_pth, map_location="cpu", weights_only=False) + sd = ckpt["model_state_dict"] + if not any(k.startswith("spatial_encoder.") for k in sd): + # full pretrain graph (latest.tar) -> strip the "utae." prefix + sd = {k[len("utae."):]: v for k, v in sd.items() if k.startswith("utae.")} + if rank == 0: + print("[FT-v2] (extracted encoder weights from full pretrain " + "checkpoint)", flush=True) + encoder.load_state_dict(sd, strict=True) + + network = UTAEClassificationDual( + encoder, d_model=C.D_MODEL, num_classes=C.N_CLASSES).to(device) + net_ref = network + if world > 1: + network = DDP(network, device_ids=[local_rank]) + net_ref = network.module + + # ...and only AFTER model construction diverge the per-rank RNGs used for + # shuffling/augmentation, so the two GPUs see different crops/transforms. + torch.manual_seed(args.seed + 1000 * rank) + random.seed(args.seed + 1000 * rank) + + if args.init_finetuned: + initial = torch.load(args.init_finetuned, map_location="cpu", weights_only=False) + net_ref.load_state_dict(initial["model_state_dict"], strict=True) + if rank == 0: + print(f"[INIT] fine-tuned weights from {args.init_finetuned}; optimizer/schedule start fresh", flush=True) + + # ---- losses: uniform weights (inv-freq was a catastrophic regression) --- + class_weights = torch.ones(C.N_CLASSES, device=device) + class_weights[0] = 0.0 + class_weights[C.N_CLASSES - 1] = 0.0 + + ce_loss = nn.CrossEntropyLoss(weight=class_weights, + label_smoothing=args.label_smoothing) + if args.mask_ce_invalid: + def masked_ce(logits, target): + valid = (target > 0) & (target < C.N_CLASSES - 1) + if not valid.any(): + return logits.sum() * 0.0 + return torch.nn.functional.cross_entropy( + logits.permute(0, 2, 3, 1)[valid], target[valid], + weight=class_weights, label_smoothing=args.label_smoothing) + ce_loss = masked_ce + lovasz_loss = LovaszSoftmaxLoss(ignore_indices=[0, C.N_CLASSES - 1]) + bce_loss = nn.BCEWithLogitsLoss() + + # ---- optimizer / EMA ---------------------------------------------------- + optimizer = torch.optim.AdamW( + build_param_groups(net_ref, args.base_lr, args.encoder_lr_mult, + args.wd), + lr=args.base_lr, betas=(0.9, 0.95)) + scaler = GradScaler() + ema = ModelEMA(network, decay=args.ema_decay) + + if rank == 0: + n_params = sum(p.numel() for p in network.parameters() if p.requires_grad) + n_enc = sum(p.numel() for n_, p in net_ref.named_parameters() + if n_.startswith("utae.")) + print(f"[FT-v2] params={n_params/1e6:.2f}M (encoder {n_enc/1e6:.2f}M)", + flush=True) + + # ---- resume -------------------------------------------------------------- + os.makedirs(out_dir, exist_ok=True) + latest_path = out_dir / "latest.tar" + start_epoch, best_raw, best_ema = 0, {"miou": -1.0}, {"miou": -1.0} + best_monitor, patience_counter, history = -1.0, 0, [] + + resume_from = None + if args.resume == "auto": + resume_from = latest_path if latest_path.is_file() else None + elif args.resume not in ("none", ""): + resume_from = Path(args.resume) + if not resume_from.is_file(): + raise FileNotFoundError(f"--resume: no such file {resume_from}") + + if resume_from is not None: + ck = torch.load(resume_from, map_location="cpu", weights_only=False) + net_ref.load_state_dict(ck["model_state_dict"]) + ema.module.load_state_dict(ck["ema_state_dict"]) + ema.updates = ck.get("ema_updates", 0) + optimizer.load_state_dict(ck["optimizer_state_dict"]) + scaler.load_state_dict(ck["scaler_state_dict"]) + best_raw = ck["best_raw"]; best_ema = ck["best_ema"] + best_monitor = ck.get("best_monitor", -1.0) + patience_counter = ck.get("patience_counter", 0) + history = ck.get("history", []) + start_epoch = int(ck["epoch"]) + 1 + if rank == 0: + print(f"[FT-v2] RESUMED from {resume_from} (finished epoch " + f"{ck['epoch']}) -> epoch {start_epoch}/{args.epochs}", + flush=True) + if start_epoch >= args.epochs: + print("[FT-v2] already complete; nothing to do.", flush=True) + cleanup_distributed() + return + elif rank == 0: + print(f"[FT-v2] starting fresh (--resume={args.resume})", flush=True) + + if rank == 0: + print(f"[HYPOTHESIS] temporal_aug={not args.no_temporal_aug} " + f"mask_ce_invalid={args.mask_ce_invalid} boundary_weight={args.boundary_weight} " + f"ema_decay={args.ema_decay}", flush=True) + if args.init_finetuned and start_epoch == 0: + m_init = validate(net_ref, val_dl, device, args.crop_size, args.limit_batches) + if rank == 0: + with open(out_dir / "initial_metrics.json", "w") as f: + json.dump(m_init, f, indent=2) + print(f"[INITIAL] mIoU={m_init['miou']:.6f}", flush=True) + + # ---- training loop ------------------------------------------------------- + gstep = start_epoch * steps_per_epoch + hi = C.PATCH_SIZE - args.crop_size + + for epoch in range(start_epoch, args.epochs): + if sampler is not None: + sampler.set_epoch(epoch) + network.train() + frozen = epoch < args.freeze_encoder_epochs + for parameter in net_ref.utae.parameters(): + parameter.requires_grad_(not frozen) + if frozen: + net_ref.utae.eval() # freeze BatchNorm statistics and encoder dropout + if rank == 0: + print(f"[ENCODER] frozen={frozen}", flush=True) + ep_start = time.time() + ep_loss, n_steps = 0.0, 0 + stop_flag = False + + for it, ((xp, pos, _days), yp) in enumerate(train_dl): + if args.limit_batches and it >= args.limit_batches: + break + xp = xp.to(device, non_blocking=True) # (B,T,10,128,128) + pos = pos.to(device, non_blocking=True) + yp = yp.to(device, non_blocking=True) # (B,128,128) + + if args.official_crops or args.fixed_crops: + crop_list = [crop_ij(xp, yp, i, j, C.PATCH_SIZE // args.crop_size) + for (i, j) in [tuple(x) for x in C.FT_CROP_IJ]] + else: + crop_list = [] + for _ in range(n_crops): + i = int(torch.randint(0, hi + 1, ())) + j = int(torch.randint(0, hi + 1, ())) + crop_list.append( + (xp[:, :, :, i:i + args.crop_size, + j:j + args.crop_size], + yp[:, i:i + args.crop_size, j:j + args.crop_size])) + + for xc, yc in crop_list: + pos_c = pos + if not args.no_aug: + xc, yc = aug_dihedral(xc, yc) + if not args.no_temporal_aug: + xc, pos_c = aug_temporal_subsample(xc, pos_c) + xc = aug_frame_dropout(xc) + xc = aug_spectral(xc) + bnd_gt = compute_boundary_target(yc) + + optimizer.zero_grad(set_to_none=True) + with autocast(): + out = network(xc, pos_c) + + sem_logits = out["sem_logits"].float() + bnd_logits = out["bnd_logits"].float().squeeze(1) + refined_logits = out["refined_logits"].float() + + loss = (ce_loss(sem_logits, yc) + + 0.75 * lovasz_loss(sem_logits, yc) + + ce_loss(refined_logits, yc) + + 0.75 * lovasz_loss(refined_logits, yc) + + args.boundary_weight * bce_loss(bnd_logits, bnd_gt)) + + if not torch.isfinite(loss): + optimizer.zero_grad(set_to_none=True) + continue + + scaler.scale(loss).backward() + scaler.unscale_(optimizer) + torch.nn.utils.clip_grad_norm_(network.parameters(), + max_norm=5.0) + set_lrs(optimizer, + lr_factor(gstep, total_steps, warmup_steps, + args.min_lr_ratio)) + scaler.step(optimizer) + scaler.update() + ema.update(network) + gstep += 1 + + ep_loss += loss.item() + n_steps += 1 + + if rank == 0 and it % 10 == 0: + print(f" ep {epoch:3d} batch {it:3d}/{len(train_dl)} " + f"step {n_steps:3d}/{steps_per_epoch} " + f"loss={loss.item():.4f} " + f"lr={optimizer.param_groups[-1]['lr']:.2e} " + f"t={time.time()-ep_start:.0f}s", flush=True) + + # ---- validation: raw + EMA ------------------------------------------ + if rank == 0: + m_raw = validate(net_ref, val_dl, device, args.crop_size, + args.limit_batches) + m_ema = validate(ema.module, val_dl, device, args.crop_size, + args.limit_batches) + ep_sec = time.time() - ep_start + mean_loss = ep_loss / max(n_steps, 1) + + history.append({ + "epoch": epoch, "train_loss": mean_loss, + "lr": optimizer.param_groups[-1]["lr"], + "raw": {k: m_raw[k] for k in ("miou", "oa", "mf1", "kappa")}, + "ema": {k: m_ema[k] for k in ("miou", "oa", "mf1", "kappa")}, + "epoch_sec": ep_sec, + }) + with open(out_dir / "history.json", "w") as f: + json.dump(history, f, indent=1) + + improved = False + if m_raw["miou"] > best_raw["miou"]: + best_raw = {"miou": m_raw["miou"], "epoch": epoch} + torch.save(pack_checkpoint(net_ref.state_dict(), epoch, + m_raw, args.seed, "raw"), + out_dir / "model_best_raw.tar") + improved = True + if m_ema["miou"] > best_ema["miou"]: + best_ema = {"miou": m_ema["miou"], "epoch": epoch} + torch.save(pack_checkpoint(ema.module.state_dict(), epoch, + m_ema, args.seed, "ema"), + out_dir / "model_best_ema.tar") + improved = True + + monitor = max(m_raw["miou"], m_ema["miou"]) + if monitor > best_monitor: + best_monitor = monitor + patience_counter = 0 + else: + patience_counter += 1 + + print(f"[ep {epoch:3d} DONE] loss={mean_loss:.4f} " + f"raw_mIoU={m_raw['miou']:.4f} ema_mIoU={m_ema['miou']:.4f} " + f"best_raw={best_raw['miou']:.4f}@{best_raw['epoch']} " + f"best_ema={best_ema['miou']:.4f}@{best_ema['epoch']} " + f"patience={patience_counter}/{args.patience} " + f"t={ep_sec:.0f}s", flush=True) + if improved or (epoch % args.print_every == 0): + print_metrics(m_raw, f"ep {epoch} RAW") + print_metrics(m_ema, f"ep {epoch} EMA") + + # resumable latest.tar every epoch + tmp = out_dir / "latest.tar.tmp" + torch.save({ + "epoch": epoch, + "model_state_dict": net_ref.state_dict(), + "ema_state_dict": ema.module.state_dict(), + "ema_updates": ema.updates, + "optimizer_state_dict": optimizer.state_dict(), + "scaler_state_dict": scaler.state_dict(), + "best_raw": best_raw, "best_ema": best_ema, + "best_monitor": best_monitor, + "patience_counter": patience_counter, + "history": history, + "args": vars(args), + }, tmp) + os.replace(tmp, latest_path) + + if args.patience > 0 and patience_counter >= args.patience: + print(f"[EARLY STOP] best_raw={best_raw} best_ema={best_ema}", + flush=True) + stop_flag = True + + # keep ranks in step and share rank 0's early-stop decision + if world > 1: + flag = torch.tensor([1 if stop_flag else 0], device=device) + dist.broadcast(flag, src=0) + stop_flag = bool(flag.item()) + if stop_flag: + break + + if rank == 0: + print(f"\n[FT-v2 COMPLETE] best_raw={best_raw} best_ema={best_ema}", + flush=True) + print(f"[FT-v2] checkpoints in {out_dir}", flush=True) + cleanup_distributed() + + +if __name__ == "__main__": + main() diff --git a/ablations/10_plateau_breakthrough/workspace/finetune_plateau.py b/ablations/10_plateau_breakthrough/workspace/finetune_plateau.py new file mode 100644 index 0000000000000000000000000000000000000000..9b7c20fa1f41b49af11fbba9d5cb9753f99671fb --- /dev/null +++ b/ablations/10_plateau_breakthrough/workspace/finetune_plateau.py @@ -0,0 +1,782 @@ +"""Controlled plateau studies using the inherited fixed32 training recipe.""" +import argparse +import copy +import json +import math +import os +import random +import time +from pathlib import Path + +import numpy as np +import torch +import torch.nn as nn +import torch.distributed as dist +from torch.utils.data import DataLoader, DistributedSampler +from torch.cuda.amp import autocast, GradScaler +from torch.nn.parallel import DistributedDataParallel as DDP +from sklearn.metrics import confusion_matrix, cohen_kappa_score + +import config as C +from dataset import (PASTISPatchDataset, train_patch_ids, val_patch_ids, + pad_collate, crop_ij) +from model import UTAE_ASPP, UTAEClassificationDual, compute_boundary_target +from top5_models import MaskedUTAE_ASPP, MaskedUTAEClassificationDual, SeasonalUTAEClassificationDual +from losses import LovaszSoftmaxLoss + +PASTIS_NAMES = C.PASTIS_CLASSES # single source of truth — see config.py + + +# ───────────────────────────────────────────────────────────────────────────── +# Distributed helpers (same contract as v1: torchrun env vars, else single GPU) +# ───────────────────────────────────────────────────────────────────────────── +def setup_distributed(): + if "RANK" in os.environ: + dist.init_process_group(backend="nccl") + local_rank = int(os.environ["LOCAL_RANK"]) + rank = int(os.environ["RANK"]) + world = int(os.environ["WORLD_SIZE"]) + torch.cuda.set_device(local_rank) + return rank, world, local_rank, torch.device(f"cuda:{local_rank}") + return 0, 1, 0, torch.device("cuda:0") + + +def cleanup_distributed(): + if dist.is_initialized(): + dist.destroy_process_group() + + +# ───────────────────────────────────────────────────────────────────────────── +# Metrics — identical to v1 finetune.py +# ───────────────────────────────────────────────────────────────────────────── +def compute_all_metrics(preds_np, labels_np, num_classes=20): + class_ids = list(range(1, num_classes - 1)) # 1..18 scored + + valid = (labels_np > 0) & (labels_np < num_classes - 1) + pv = preds_np[valid] + lv = labels_np[valid] + + if len(lv) == 0: + return dict(miou=0.0, oa=0.0, mf1=0.0, kappa=0.0, + per_iou={}, per_f1={}) + + # Full matrix counts foreground pixels predicted as background/void as FN. + cm = confusion_matrix(lv, pv, labels=list(range(num_classes))) + diag = np.diag(cm)[1:-1].astype(np.float64) + sum0 = cm.sum(0)[1:-1].astype(np.float64) + sum1 = cm.sum(1)[1:-1].astype(np.float64) + + iou = diag / (sum0 + sum1 - diag + 1e-8) + f1 = (2 * diag) / (sum0 + sum1 + 1e-8) + miou = float(iou.mean()) + mf1 = float(f1.mean()) + oa = float((pv == lv).mean()) + kappa = float(cohen_kappa_score(lv, pv)) + + return dict(miou=miou, oa=oa, mf1=mf1, kappa=kappa, + per_iou={c: float(iou[i]) for i, c in enumerate(class_ids)}, + per_f1={c: float(f1[i]) for i, c in enumerate(class_ids)}) + + +def print_metrics(metrics, tag): + print(f" [{tag}] mIoU={metrics['miou']:.4f} OA={metrics['oa']:.4f} " + f"mF1={metrics['mf1']:.4f} Kappa={metrics['kappa']:.4f}", flush=True) + print(f" {'Cls':>4} {'Name':<28} {'IoU':>8} {'F1':>8}", flush=True) + print(f" {'-'*44}", flush=True) + for c in range(1, C.N_CLASSES - 1): + iv = metrics['per_iou'].get(c, 0.0) + fv = metrics['per_f1'].get(c, 0.0) + name = PASTIS_NAMES.get(c, f"cls{c}") + flag = " **DEAD**" if iv < 0.001 else (" *rare*" if iv < 0.10 else "") + print(f" {c:>4} {name:<28} {iv:>8.4f} {fv:>8.4f}{flag}", flush=True) + + +# ───────────────────────────────────────────────────────────────────────────── +# v2 augmentations. All operate on one batch of crops: +# xc (B, T, C, h, w) normalized S2 +# yc (B, h, w) labels +# pos (B, T) index positions (arange(T) upstream) +# ───────────────────────────────────────────────────────────────────────────── +def aug_dihedral(xc, yc): + """One dihedral-8 transform per crop-batch, image and label together.""" + if torch.rand(()) > 0.5: + xc, yc = xc.flip(-2), yc.flip(-2) + if torch.rand(()) > 0.5: + xc, yc = xc.flip(-1), yc.flip(-1) + k = int(torch.randint(0, 4, ())) + if k: + xc, yc = torch.rot90(xc, k, (-2, -1)), torch.rot90(yc, k, (-2, -1)) + return xc.contiguous(), yc.contiguous() + + +def aug_temporal_subsample(xc, pos, p=0.5, drop_max=0.2, keep_min=24): + """Drop up to `drop_max` of the frames, order preserved. Positions keep + their original index values -> emulates missing acquisitions of an + otherwise identical season. No-op with probability 1-p.""" + if torch.rand(()) > p: + return xc, pos + T = xc.shape[1] + keep = int(round(T * (1.0 - random.uniform(0.0, drop_max)))) + keep = max(keep_min, min(T, keep)) + if keep >= T: + return xc, pos + idx = torch.randperm(T)[:keep].sort().values.to(xc.device) + return (xc.index_select(1, idx).contiguous(), + pos.index_select(1, idx).contiguous()) + + +def aug_frame_dropout(xc, p=0.25, max_frames=2): + """Zero 1-2 whole frames (0 == dataset mean after normalisation) — + emulates cloudy/lost acquisitions.""" + if torch.rand(()) > p: + return xc + T = xc.shape[1] + n = random.randint(1, max_frames) + idx = torch.randperm(T)[:n].to(xc.device) + xc = xc.clone() + xc[:, idx] = 0.0 + return xc + + +def aug_spectral(xc, gain_std=0.05, bias_std=0.03, noise_std=0.01): + """Per-sample, per-band gain/bias jitter + small gaussian noise (data is + z-normalised, so these are fractions of one std).""" + B, T, Ch, H, W = xc.shape + dev = xc.device + gain = 1.0 + gain_std * torch.randn(B, 1, Ch, 1, 1, device=dev) + bias = bias_std * torch.randn(B, 1, Ch, 1, 1, device=dev) + xc = xc * gain + bias + if noise_std > 0: + xc = xc + noise_std * torch.randn_like(xc) + return xc.contiguous() + + +# ───────────────────────────────────────────────────────────────────────────── +# EMA of the raw (unwrapped) network +# ───────────────────────────────────────────────────────────────────────────── +class ModelEMA: + def __init__(self, model, decay=0.999): + self.decay = decay + self.updates = 0 + raw = model.module if isinstance(model, DDP) else model + self.module = copy.deepcopy(raw).eval() + for p in self.module.parameters(): + p.requires_grad_(False) + + @torch.no_grad() + def update(self, model): + self.updates += 1 + d = min(self.decay, (1.0 + self.updates) / (10.0 + self.updates)) + raw = model.module if isinstance(model, DDP) else model + msd = raw.state_dict() + for k, v in self.module.state_dict().items(): + if v.dtype.is_floating_point: + v.lerp_(msd[k].detach().float(), 1.0 - d) + else: + v.copy_(msd[k]) + + +# ───────────────────────────────────────────────────────────────────────────── +# Optimizer param groups: encoder vs heads x decay vs no-decay +# ───────────────────────────────────────────────────────────────────────────── +def build_param_groups(net_raw, base_lr, encoder_mult, wd): + buckets = {"enc_dec": [], "enc_nd": [], "head_dec": [], "head_nd": []} + for name, p in net_raw.named_parameters(): + if not p.requires_grad: + continue + is_enc = name.startswith("utae.") + no_dec = p.ndim <= 1 # LN/BN weights + all biases + buckets[("enc_" if is_enc else "head_") + ("nd" if no_dec else "dec") + ].append(p) + groups = [ + {"params": buckets["enc_dec"], "lr0": base_lr * encoder_mult, + "weight_decay": wd}, + {"params": buckets["enc_nd"], "lr0": base_lr * encoder_mult, + "weight_decay": 0.0}, + {"params": buckets["head_dec"], "lr0": base_lr, + "weight_decay": wd}, + {"params": buckets["head_nd"], "lr0": base_lr, + "weight_decay": 0.0}, + ] + return [g for g in groups if len(g["params"]) > 0] + + +def lr_factor(step, total_steps, warmup_steps, min_ratio): + """Linear warmup then cosine decay to min_ratio.""" + if step < warmup_steps: + return (step + 1) / max(1, warmup_steps) + p = (step - warmup_steps) / max(1, total_steps - warmup_steps) + p = min(1.0, p) + cos = 0.5 * (1.0 + math.cos(math.pi * p)) + return min_ratio + (1.0 - min_ratio) * cos + + +def set_lrs(optimizer, factor): + for g in optimizer.param_groups: + g["lr"] = g["lr0"] * factor + + +# ───────────────────────────────────────────────────────────────────────────── +# Validation on the two fixed diagonal crops of the val patches +# (grid = PATCH_SIZE / crop_size; for 64 -> (0,0),(1,1) of a 2x2 grid, +# for 32 -> exactly the official v1 validation crops) +# ───────────────────────────────────────────────────────────────────────────── +@torch.no_grad() +def validate(net, val_dl, device, crop_size, limit_batches=0): + net.eval() + grid = max(1, C.PATCH_SIZE // crop_size) + positions = [(0, 0), (1, 1)] if grid >= 2 else [(0, 0)] + all_preds, all_labels = [], [] + for bi, ((xv, pv_, _dv), yv) in enumerate(val_dl): + if limit_batches and bi >= limit_batches: + break + xv = xv.to(device, non_blocking=True) + pv_ = pv_.to(device, non_blocking=True) + yv = yv.to(device, non_blocking=True) + for (i, j) in positions: + xc, yc = crop_ij(xv, yv, i, j, grid) + with autocast(): + out = net(xc, pv_) + pred = out["refined_logits"].float().argmax(dim=1) + all_preds.append(pred.cpu().numpy().ravel()) + all_labels.append(yc.cpu().numpy().ravel()) + return compute_all_metrics(np.concatenate(all_preds), + np.concatenate(all_labels), C.N_CLASSES) + + +def pack_checkpoint(state_dict, epoch, metrics, seed, which, architecture_variant='plain'): + return {"epoch": epoch, + "model_state_dict": state_dict, + "val_miou": metrics["miou"], + "val_oa": metrics["oa"], + "val_mf1": metrics["mf1"], + "val_kappa": metrics["kappa"], + "val_per_iou": metrics["per_iou"], + "seed": seed, "which": which, "recipe": "plateau_fixed32", + "architecture_variant": architecture_variant} + + +# ───────────────────────────────────────────────────────────────────────────── +def main(): + ap = argparse.ArgumentParser() + ap.add_argument("--pretrain_pth", type=str, required=True) + ap.add_argument("--seed", type=int, default=C.SEED) + ap.add_argument("--tag", type=str, default="32X32_plateau") + ap.add_argument("--out_dir", type=str, default="", + help="default: /checkpoints/finetune_32X32/") + ap.add_argument("--epochs", type=int, default=C.FT_EPOCHS) + ap.add_argument("--batch", type=int, default=C.FT_BATCH) + # --- the v2 recipe knobs ------------------------------------------------- + ap.add_argument("--crop_size", type=int, default=64, + help="random-crop side; 32 = official crop size") + ap.add_argument("--crops_per_patch", type=int, default=2, + help="random crops per patch per epoch (2 keeps the " + "official 76 steps/epoch)") + ap.add_argument("--official_crops", action="store_true", + help="control run: fixed 32x32 diagonal crops, no augs " + "(= v1 recipe with v2 plumbing)") + ap.add_argument("--fixed_crops", action="store_true", + help="fixed diagonal crops at --crop_size; keeps augmentation settings") + ap.add_argument("--freeze_encoder_epochs", type=int, default=0) + ap.add_argument("--no_aug", action="store_true") + ap.add_argument("--no_temporal_aug", action="store_true") + ap.add_argument("--mask_ce_invalid", action="store_true") + ap.add_argument("--boundary_weight", type=float, default=0.5) + ap.add_argument("--init_finetuned", type=str, default="", + help="initialize all weights from fine-tuned checkpoint; reset optimizer and schedule") + ap.add_argument("--base_lr", type=float, default=1e-4) + ap.add_argument("--encoder_lr_mult", type=float, default=0.5) + ap.add_argument("--min_lr_ratio", type=float, default=0.01) + ap.add_argument("--warmup_epochs", type=float, default=3.0) + ap.add_argument("--wd", type=float, default=0.02) + ap.add_argument("--label_smoothing", type=float, default=0.05) + ap.add_argument("--ema_decay", type=float, default=0.999) + ap.add_argument("--patience", type=int, default=30, + help="early stopping on val mIoU; 0 = run all epochs") + # --- housekeeping -------------------------------------------------------- + ap.add_argument("--print_every", type=int, default=5) + ap.add_argument("--limit_batches", type=int, default=0, + help=">0: truncate train/val loops (smoke test)") + ap.add_argument("--resume", type=str, default="auto", + help="'auto' resumes from /latest.tar if present; " + "'none' starts fresh; or an explicit .tar path") + ap.add_argument('--research', choices=['plain','mask_corrected','class_queries','shared_pool_mask'], required=True) + ap.add_argument('--sam_bn_mode', choices=['legacy','batch_no_update'], default='legacy') + ap.add_argument('--sam_rho', type=float, default=0.02) + ap.add_argument('--seasonal_lr', type=float, default=1e-4) + args = ap.parse_args() + if args.research == 'swa' and args.resume != 'none': + ap.error('SWA requires --resume none until averaging state supports resume') + + if args.official_crops: + args.crop_size = 32 + args.no_aug = True + + if args.fixed_crops and args.crop_size not in (32, 64): + ap.error("--fixed_crops requires --crop_size 32 or 64") + + out_dir = (Path(args.out_dir) if args.out_dir else + C.EXP_ROOT / "checkpoints" / "finetune_32X32" / args.tag) + + rank, world, local_rank, device = setup_distributed() + + # Seed BEFORE model creation so all ranks build identical weights... + torch.backends.cuda.matmul.allow_tf32 = True + torch.backends.cudnn.allow_tf32 = True + torch.set_num_threads(min(8, os.cpu_count() or 1)) + torch.manual_seed(args.seed) + torch.cuda.manual_seed_all(args.seed) + + train_ids = train_patch_ids() + val_ids = val_patch_ids() + + train_ds = PASTISPatchDataset(train_ids) + val_ds = PASTISPatchDataset(val_ids) + + sampler = (DistributedSampler(train_ds, num_replicas=world, rank=rank, + shuffle=True) + if world > 1 else None) + train_dl = DataLoader( + train_ds, batch_size=args.batch, sampler=sampler, + shuffle=(sampler is None), num_workers=2, pin_memory=True, + persistent_workers=True, collate_fn=pad_collate) + val_dl = DataLoader( + val_ds, batch_size=args.batch, shuffle=False, + num_workers=2, pin_memory=True, collate_fn=pad_collate) + + n_crops = len(C.FT_CROP_IJ) if (args.official_crops or args.fixed_crops) else args.crops_per_patch + steps_per_epoch = len(train_dl) * n_crops + total_steps = steps_per_epoch * args.epochs + warmup_steps = int(args.warmup_epochs * steps_per_epoch) + + if rank == 0: + print(f"[FT-32X32] train={len(train_ids)} patches ({len(set(train_ids))} unique) " + f"val={len(val_ids)} patches ({len(set(val_ids))} unique)", flush=True) + print(f"[FT-32X32] world={world} batch={args.batch} patches x {n_crops} crops " + f"-> {steps_per_epoch} steps/epoch/rank", flush=True) + print(f"[FT-32X32] crop_size={args.crop_size} " + f"({'fixed diagonal' if (args.official_crops or args.fixed_crops) else 'RANDOM'}) " + f"aug={'off' if args.no_aug else 'dihedral+temporal+spectral'}", + flush=True) + print(f"[FT-32X32] base_lr={args.base_lr} enc_mult={args.encoder_lr_mult} " + f"wd={args.wd} ls={args.label_smoothing} ema={args.ema_decay} " + f"warmup_ep={args.warmup_epochs} min_lr_ratio={args.min_lr_ratio} " + f"patience={args.patience}", flush=True) + print(f"[FT-32X32] seed={args.seed} epochs={args.epochs} " + f"checkpoints -> {out_dir}", flush=True) + + # ---- model + pretrained encoder ---------------------------------------- + from plateau_models import architecture + encoder_type, network_type = architecture(args.research) + encoder = encoder_type( + n_channels=C.N_CHANNELS, d_model=C.D_MODEL, n_heads=C.N_HEADS, + T_pad=C.T_PAD, windows=C.TSE_WINDOWS, shifts=C.TSE_SHIFTS) + if rank == 0: + print(f"[FT-32X32] loading encoder: {args.pretrain_pth}", flush=True) + ckpt = torch.load(args.pretrain_pth, map_location="cpu", weights_only=False) + sd = ckpt["model_state_dict"] + if not any(k.startswith("spatial_encoder.") for k in sd): + # full pretrain graph (latest.tar) -> strip the "utae." prefix + sd = {k[len("utae."):]: v for k, v in sd.items() if k.startswith("utae.")} + if rank == 0: + print("[FT-32X32] (extracted encoder weights from full pretrain " + "checkpoint)", flush=True) + encoder.load_state_dict(sd, strict=True) + anchor = {n: p.detach().clone().to(device) for n,p in encoder.named_parameters()} + + network = network_type( + encoder, d_model=C.D_MODEL, num_classes=C.N_CLASSES).to(device) + net_ref = network + if world > 1: + network = DDP(network, device_ids=[local_rank]) + net_ref = network.module + + # ...and only AFTER model construction diverge the per-rank RNGs used for + # shuffling/augmentation, so the two GPUs see different crops/transforms. + torch.manual_seed(args.seed + 1000 * rank) + random.seed(args.seed + 1000 * rank) + + if args.init_finetuned: + initial = torch.load(args.init_finetuned, map_location="cpu", weights_only=False) + incompatible = net_ref.load_state_dict( + initial["model_state_dict"], strict=args.research != 'seasonal') + if args.research == 'seasonal': + expected = { + 'sta.seasonal_scores.weight', 'sta.seasonal_scores.bias', + 'sta.seasonal_projection.weight', 'sta.seasonal_projection.bias', + } + if set(incompatible.missing_keys) != expected or incompatible.unexpected_keys: + raise RuntimeError(f'Unexpected seasonal loading differences: {incompatible}') + if rank == 0: + print(f"[INIT] fine-tuned weights from {args.init_finetuned}; optimizer/schedule start fresh", flush=True) + + # ---- losses: uniform weights (inv-freq was a catastrophic regression) --- + class_weights = torch.ones(C.N_CLASSES, device=device) + class_weights[0] = 0.0 + class_weights[C.N_CLASSES - 1] = 0.0 + + ce_loss = nn.CrossEntropyLoss(weight=class_weights, + label_smoothing=args.label_smoothing) + if args.mask_ce_invalid: + def masked_ce(logits, target): + valid = (target > 0) & (target < C.N_CLASSES - 1) + if not valid.any(): + return logits.sum() * 0.0 + return torch.nn.functional.cross_entropy( + logits.permute(0, 2, 3, 1)[valid], target[valid], + weight=class_weights, label_smoothing=args.label_smoothing) + ce_loss = masked_ce + lovasz_loss = LovaszSoftmaxLoss(ignore_indices=[0, C.N_CLASSES - 1]) + bce_loss = nn.BCEWithLogitsLoss() + + # ---- optimizer / EMA ---------------------------------------------------- + parameter_groups = build_param_groups( + net_ref, args.base_lr, args.encoder_lr_mult, args.wd) + if args.research == 'seasonal': + # Keep the pretrained encoder / existing heads at their declared LRs. + # Only the newly initialized seasonal branch uses the higher LR. + seasonal_parameters = [(name, p) for name, p in net_ref.named_parameters() + if name.startswith('sta.seasonal_')] + seasonal_ids = {id(p) for _, p in seasonal_parameters} + for group in parameter_groups: + group['params'] = [p for p in group['params'] if id(p) not in seasonal_ids] + parameter_groups = [g for g in parameter_groups if g['params']] + for no_decay in (False, True): + selected = [p for _, p in seasonal_parameters if (p.ndim <= 1) == no_decay] + if selected: + parameter_groups.append({ + 'params': selected, 'lr0': args.seasonal_lr, + 'weight_decay': 0.0 if no_decay else args.wd, + }) + optimizer = torch.optim.AdamW( + parameter_groups, + lr=args.base_lr, betas=(0.9, 0.95)) + scaler = GradScaler() + ema = ModelEMA(network, decay=args.ema_decay) + from research_methods import pixel_contrast + features = {} + if args.research == 'contrast': + net_ref.sta.register_forward_hook(lambda module, inputs, output: features.update(value=output)) + swa = torch.optim.swa_utils.AveragedModel(net_ref) if args.research == 'swa' else None + best_swa = -1.0 + + def training_loss(x, positions, target, boundary): + with autocast(dtype=torch.bfloat16 if args.research == 'contrast' else torch.float16): + outputs = network(x, positions) + sem = outputs['sem_logits'].float() + refined = outputs['refined_logits'].float() + loss = (ce_loss(sem,target) + .75*lovasz_loss(sem,target) + + ce_loss(refined,target) + .75*lovasz_loss(refined,target) + + args.boundary_weight*bce_loss(outputs['bnd_logits'].float().squeeze(1),boundary)) + if args.research == 'l2sp': + # Sum of squared distance, encoder only; original pretrained anchor. + loss = loss + .001*sum((p-anchor[n]).square().sum() for n,p in net_ref.utae.named_parameters()) + elif args.research == 'contrast': + loss = loss + .05*pixel_contrast(features['value'], target) + elif args.research == 'consistency' and epoch >= 3: + with torch.no_grad(), autocast(): + teacher = ema.module(aug_spectral(x, gain_std=.02, bias_std=.01, noise_std=.005),positions)['refined_logits'].float().softmax(1) + valid = (target>0)&(target=.8) + if valid.any(): + kl = torch.nn.functional.kl_div(refined.log_softmax(1),teacher,reduction='none').sum(1) + loss = loss + .1*min(1.,(epoch-2)/5)*kl[valid].mean() + return loss + + if rank == 0: + n_params = sum(p.numel() for p in network.parameters() if p.requires_grad) + n_enc = sum(p.numel() for n_, p in net_ref.named_parameters() + if n_.startswith("utae.")) + print(f"[FT-32X32] params={n_params/1e6:.2f}M (encoder {n_enc/1e6:.2f}M)", + flush=True) + + # ---- resume -------------------------------------------------------------- + os.makedirs(out_dir, exist_ok=True) + latest_path = out_dir / "latest.tar" + start_epoch, best_raw, best_ema = 0, {"miou": -1.0}, {"miou": -1.0} + best_monitor, patience_counter, history = -1.0, 0, [] + + resume_from = None + if args.resume == "auto": + resume_from = latest_path if latest_path.is_file() else None + elif args.resume not in ("none", ""): + resume_from = Path(args.resume) + if not resume_from.is_file(): + raise FileNotFoundError(f"--resume: no such file {resume_from}") + + if resume_from is not None: + ck = torch.load(resume_from, map_location="cpu", weights_only=False) + net_ref.load_state_dict(ck["model_state_dict"]) + ema.module.load_state_dict(ck["ema_state_dict"]) + ema.updates = ck.get("ema_updates", 0) + optimizer.load_state_dict(ck["optimizer_state_dict"]) + scaler.load_state_dict(ck["scaler_state_dict"]) + best_raw = ck["best_raw"]; best_ema = ck["best_ema"] + best_monitor = ck.get("best_monitor", -1.0) + patience_counter = ck.get("patience_counter", 0) + history = ck.get("history", []) + start_epoch = int(ck["epoch"]) + 1 + if "rng_python" in ck: + random.setstate(ck["rng_python"]) + np.random.set_state(ck["rng_numpy"]) + torch.set_rng_state(ck["rng_torch"]) + torch.cuda.set_rng_state_all(ck["rng_cuda"]) + if rank == 0: + print(f"[FT-32X32] RESUMED from {resume_from} (finished epoch " + f"{ck['epoch']}) -> epoch {start_epoch}/{args.epochs}", + flush=True) + if start_epoch >= args.epochs: + print("[FT-32X32] already complete; nothing to do.", flush=True) + cleanup_distributed() + return + elif rank == 0: + print(f"[FT-32X32] starting fresh (--resume={args.resume})", flush=True) + + if rank == 0: + print(f"[HYPOTHESIS] temporal_aug={not args.no_temporal_aug} " + f"mask_ce_invalid={args.mask_ce_invalid} boundary_weight={args.boundary_weight} " + f"ema_decay={args.ema_decay}", flush=True) + if args.init_finetuned and start_epoch == 0: + m_init = validate(net_ref, val_dl, device, args.crop_size, args.limit_batches) + if rank == 0: + with open(out_dir / "initial_metrics.json", "w") as f: + json.dump(m_init, f, indent=2) + print(f"[INITIAL] mIoU={m_init['miou']:.6f}", flush=True) + # Epoch zero participates in deployment/checkpoint selection. + best_raw = {"miou": m_init["miou"], "epoch": -1} + best_ema = {"miou": m_init["miou"], "epoch": -1} + best_monitor = m_init["miou"] + for which in ("raw", "ema"): + torch.save(pack_checkpoint(net_ref.state_dict(), -1, m_init, + args.seed, which, args.research), + out_dir / f"model_best_{which}.tar") + + # ---- training loop ------------------------------------------------------- + gstep = start_epoch * steps_per_epoch + hi = C.PATCH_SIZE - args.crop_size + + for epoch in range(start_epoch, args.epochs): + if sampler is not None: + sampler.set_epoch(epoch) + network.train() + frozen = epoch < args.freeze_encoder_epochs + for parameter in net_ref.utae.parameters(): + parameter.requires_grad_(not frozen) + if frozen: + net_ref.utae.eval() # freeze BatchNorm statistics and encoder dropout + if rank == 0: + print(f"[ENCODER] frozen={frozen}", flush=True) + ep_start = time.time() + ep_loss, n_steps = 0.0, 0 + stop_flag = False + + for it, ((xp, pos, _days), yp) in enumerate(train_dl): + if args.limit_batches and it >= args.limit_batches: + break + xp = xp.to(device, non_blocking=True) # (B,T,10,128,128) + pos = pos.to(device, non_blocking=True) + yp = yp.to(device, non_blocking=True) # (B,128,128) + + if args.official_crops or args.fixed_crops: + crop_list = [crop_ij(xp, yp, i, j, C.PATCH_SIZE // args.crop_size) + for (i, j) in [tuple(x) for x in C.FT_CROP_IJ]] + else: + crop_list = [] + for _ in range(n_crops): + i = int(torch.randint(0, hi + 1, ())) + j = int(torch.randint(0, hi + 1, ())) + crop_list.append( + (xp[:, :, :, i:i + args.crop_size, + j:j + args.crop_size], + yp[:, i:i + args.crop_size, j:j + args.crop_size])) + + for xc, yc in crop_list: + pos_c = pos + if not args.no_aug: + xc, yc = aug_dihedral(xc, yc) + if not args.no_temporal_aug: + xc, pos_c = aug_temporal_subsample(xc, pos_c) + xc = aug_frame_dropout(xc) + xc = aug_spectral(xc) + bnd_gt = compute_boundary_target(yc) + + optimizer.zero_grad(set_to_none=True) + loss = training_loss(xc,pos_c,yc,bnd_gt) + if not torch.isfinite(loss): + raise RuntimeError('Nonfinite research loss') + scaler.scale(loss).backward() + if args.research == 'sam': + parameters = [p for p in net_ref.parameters() if p.grad is not None] + norm = torch.linalg.vector_norm(torch.stack([p.grad.float().norm()/scaler.get_scale() for p in parameters])) + if not torch.isfinite(norm): + # AMP overflow: let GradScaler skip this update and lower + # its scale before the next crop. No SAM perturbation made. + scaler.unscale_(optimizer) + scaler.step(optimizer) + scaler.update() + optimizer.zero_grad(set_to_none=True) + print('[SAM AMP] skipped overflowing first pass; scale=', scaler.get_scale(), flush=True) + continue + offsets = [] + with torch.no_grad(): + for parameter in parameters: + offset = parameter.grad / scaler.get_scale() * (args.sam_rho/(norm+1e-12)) + parameter.add_(offset) + offsets.append(offset) + optimizer.zero_grad(set_to_none=True) + bn = [m for m in net_ref.modules() if isinstance(m, torch.nn.modules.batchnorm._BatchNorm)] + states = [m.training for m in bn] + momenta = [m.momentum for m in bn] + tracked = [m.num_batches_tracked.detach().clone() if m.num_batches_tracked is not None else None for m in bn] + if args.sam_bn_mode == 'legacy': + for m in bn: m.eval() + else: + for m in bn: + m.train() + m.momentum = 0.0 + try: + second_loss = training_loss(xc,pos_c,yc,bnd_gt) + scaler.scale(second_loss).backward() + finally: + with torch.no_grad(): + for parameter,offset in zip(parameters,offsets): parameter.sub_(offset) + if args.sam_bn_mode == 'batch_no_update': + for m,count in zip(bn,tracked): + if count is not None: m.num_batches_tracked.copy_(count) + for m,state,momentum in zip(bn,states,momenta): + m.train(state) + m.momentum = momentum + scaler.unscale_(optimizer) + torch.nn.utils.clip_grad_norm_(network.parameters(),max_norm=5.0) + factor = 1.0 if args.research == 'swa' else lr_factor(gstep,total_steps,warmup_steps,args.min_lr_ratio) + set_lrs(optimizer,factor) + scaler.step(optimizer) + scaler.update() + ema.update(network) + gstep += 1 + + ep_loss += loss.item() + n_steps += 1 + + if rank == 0 and it % 10 == 0: + print(f" ep {epoch:3d} batch {it:3d}/{len(train_dl)} " + f"step {n_steps:3d}/{steps_per_epoch} " + f"loss={loss.item():.4f} " + f"lr={optimizer.param_groups[-1]['lr']:.2e} " + f"t={time.time()-ep_start:.0f}s", flush=True) + + if swa is not None and epoch >= 5: + swa.update_parameters(net_ref) + # Calibrate BN only on the same two fixed training crops. Dropout off. + swa.module.eval() + bn = [m for m in swa.module.modules() if isinstance(m, torch.nn.modules.batchnorm._BatchNorm)] + momenta = [m.momentum for m in bn] + for m in bn: + m.reset_running_stats(); m.momentum = None; m.train() + with torch.no_grad(): + for bi, ((xx,pp,_), yy) in enumerate(train_dl): + if args.limit_batches and bi >= args.limit_batches: break + xx,pp,yy = xx.to(device),pp.to(device),yy.to(device) + for i,j in C.FT_CROP_IJ: + crop,_ = crop_ij(xx,yy,i,j,C.PATCH_SIZE//args.crop_size) + with autocast(): swa.module(crop,pp) + for m,momentum in zip(bn,momenta): m.momentum=momentum; m.eval() + + # ---- validation: raw + EMA ------------------------------------------ + if rank == 0: + m_raw = validate(net_ref, val_dl, device, args.crop_size, + args.limit_batches) + m_ema = validate(ema.module, val_dl, device, args.crop_size, + args.limit_batches) + m_swa = validate(swa.module,val_dl,device,args.crop_size,args.limit_batches) if swa is not None and epoch >= 5 else None + if m_swa is not None and m_swa['miou'] > best_swa: + best_swa = m_swa['miou'] + torch.save(pack_checkpoint(swa.module.state_dict(),epoch,m_swa,args.seed,'swa'),out_dir/'model_best_swa.tar') + ep_sec = time.time() - ep_start + mean_loss = ep_loss / max(n_steps, 1) + + history.append({ + "epoch": epoch, "train_loss": mean_loss, + "lr": optimizer.param_groups[-1]["lr"], + "raw": {k: m_raw[k] for k in ("miou", "oa", "mf1", "kappa")}, + "ema": {k: m_ema[k] for k in ("miou", "oa", "mf1", "kappa")}, + "epoch_sec": ep_sec, "swa": m_swa, "research": args.research, + }) + with open(out_dir / "history.json", "w") as f: + json.dump(history, f, indent=1) + + improved = False + if m_raw["miou"] > best_raw["miou"]: + best_raw = {"miou": m_raw["miou"], "epoch": epoch} + torch.save(pack_checkpoint(net_ref.state_dict(), epoch, + m_raw, args.seed, "raw", + args.research), + out_dir / "model_best_raw.tar") + improved = True + if m_ema["miou"] > best_ema["miou"]: + best_ema = {"miou": m_ema["miou"], "epoch": epoch} + torch.save(pack_checkpoint(ema.module.state_dict(), epoch, + m_ema, args.seed, "ema", + args.research), + out_dir / "model_best_ema.tar") + improved = True + + monitor = max(m_raw["miou"], m_ema["miou"]) + if monitor > best_monitor: + best_monitor = monitor + patience_counter = 0 + else: + patience_counter += 1 + + print(f"[ep {epoch:3d} DONE] loss={mean_loss:.4f} " + f"raw_mIoU={m_raw['miou']:.4f} ema_mIoU={m_ema['miou']:.4f} " + f"best_raw={best_raw['miou']:.4f}@{best_raw['epoch']} " + f"best_ema={best_ema['miou']:.4f}@{best_ema['epoch']} " + f"patience={patience_counter}/{args.patience} " + f"t={ep_sec:.0f}s", flush=True) + if improved or (epoch % args.print_every == 0): + print_metrics(m_raw, f"ep {epoch} RAW") + print_metrics(m_ema, f"ep {epoch} EMA") + + # resumable latest.tar every epoch + tmp = out_dir / "latest.tar.tmp" + torch.save({ + "epoch": epoch, + "model_state_dict": net_ref.state_dict(), + "ema_state_dict": ema.module.state_dict(), + "ema_updates": ema.updates, + "optimizer_state_dict": optimizer.state_dict(), + "scaler_state_dict": scaler.state_dict(), + "best_raw": best_raw, "best_ema": best_ema, + "best_monitor": best_monitor, + "patience_counter": patience_counter, + "history": history, + "args": vars(args), + "rng_python": random.getstate(), + "rng_numpy": np.random.get_state(), + "rng_torch": torch.get_rng_state(), + "rng_cuda": torch.cuda.get_rng_state_all(), + }, tmp) + os.replace(tmp, latest_path) + + if args.patience > 0 and patience_counter >= args.patience: + print(f"[EARLY STOP] best_raw={best_raw} best_ema={best_ema}", + flush=True) + stop_flag = True + + # keep ranks in step and share rank 0's early-stop decision + if world > 1: + flag = torch.tensor([1 if stop_flag else 0], device=device) + dist.broadcast(flag, src=0) + stop_flag = bool(flag.item()) + if stop_flag: + break + + if rank == 0: + print(f"\n[FT-v2 COMPLETE] best_raw={best_raw} best_ema={best_ema}", + flush=True) + print(f"[FT-32X32] checkpoints in {out_dir}", flush=True) + cleanup_distributed() + + +if __name__ == "__main__": + main() diff --git a/ablations/10_plateau_breakthrough/workspace/finetune_research.py b/ablations/10_plateau_breakthrough/workspace/finetune_research.py new file mode 100644 index 0000000000000000000000000000000000000000..ceda2ad00b4a26650ed7d48d58333006cfa7fda8 --- /dev/null +++ b/ablations/10_plateau_breakthrough/workspace/finetune_research.py @@ -0,0 +1,762 @@ +""" +T-SRDA finetune v2 — improved recipe for Kaggle (T4 x 2). + +The v1 run (official STCLN protocol: fixed 32x32 diagonal crops, no +augmentation, flat LR 1e-4, wd=0) peaked at val mIoU 0.4759 around epoch 37 +and then DECLINED to 0.4207 by epoch 99 — textbook overfitting to the 152 +fixed training crops. v2 attacks exactly that, while keeping everything that +made v1 comparable intact. + +NEW in v2 +--------- +1. RANDOM CROPS anywhere in the 128x128 patch (default 64x64, 2 per patch + per epoch) instead of the two fixed 32x32 diagonal crops (0,0)/(1,1). + Every epoch sees different windows, and 64x64 gives 4x the spatial + context of the official 32x32 plus more parcel boundaries per crop. +2. AUGMENTATION (v1/official: none): + - dihedral-8 (h/v flip + rot90) always sampled + - temporal subsample (drop up to 20% of frames, order kept) p=0.5 + - frame dropout (zero 1-2 whole frames ~ cloudy acquisition) p=0.25 + - per-band gain/bias jitter + small gaussian noise always +3. AdamW with weight decay 0.02 on >1-dim params (v1 used wd=0 == Adam). +4. DISCRIMINATIVE LR: the pretrained encoder trains at 0.5x the head LR, + so 43 h of pretraining is not washed out by the randomly-init heads. +5. WARMUP (3 ep) + COSINE decay to 1% (v1: flat 1e-4, no schedule). +6. EMA of weights (decay 0.999) — raw AND EMA are validated every epoch and + each keeps its own best checkpoint. EMA is usually the better one. +7. Label smoothing 0.05 on the CE terms. +8. Best-val checkpointing + early stopping (--patience), and a resumable + latest.tar every epoch (Kaggle sessions can die — --resume auto). + +KEPT IDENTICAL to v1 (so numbers stay comparable to the 0.4124/0.4433 run) +-------------------------------------------------------------------------- + - model architecture (UTAE_ASPP + UTAEClassificationDual); the pretrained + encoder is loaded strict=True from the .utae.tar checkpoint + - loss family: CE + 0.75*Lovász on the sem & refined heads + 0.5*BCE on + the boundary head; uniform class weights with 0/19 ignored (the + inverse-frequency weighting experiment is NOT repeated — it was a + catastrophic regression in this project) + - splits: the same 76 train / 76 val hardcoded patch IDs, fold-4 test + - index positions (arange(T)), AMP, grad clip 5.0, seed protocol + - same optimizer-step budget: 2 patches/batch x 2 crops = 76 steps/epoch + +DDP: launch with torchrun to use both T4s (one run, half the wall time): + torchrun --standalone --nproc_per_node=2 finetune_v2.py --pretrain_pth ... +""" +import argparse +import copy +import json +import math +import os +import random +import time +from pathlib import Path + +import numpy as np +import torch +import torch.nn as nn +import torch.distributed as dist +from torch.utils.data import DataLoader, DistributedSampler +from torch.cuda.amp import autocast, GradScaler +from torch.nn.parallel import DistributedDataParallel as DDP +from sklearn.metrics import confusion_matrix, cohen_kappa_score + +import config as C +from dataset import (PASTISPatchDataset, train_patch_ids, val_patch_ids, + pad_collate, crop_ij) +from model import UTAE_ASPP, UTAEClassificationDual, compute_boundary_target +from losses import LovaszSoftmaxLoss + +PASTIS_NAMES = C.PASTIS_CLASSES # single source of truth — see config.py + + +# ───────────────────────────────────────────────────────────────────────────── +# Distributed helpers (same contract as v1: torchrun env vars, else single GPU) +# ───────────────────────────────────────────────────────────────────────────── +def setup_distributed(): + if "RANK" in os.environ: + dist.init_process_group(backend="nccl") + local_rank = int(os.environ["LOCAL_RANK"]) + rank = int(os.environ["RANK"]) + world = int(os.environ["WORLD_SIZE"]) + torch.cuda.set_device(local_rank) + return rank, world, local_rank, torch.device(f"cuda:{local_rank}") + return 0, 1, 0, torch.device("cuda:0") + + +def cleanup_distributed(): + if dist.is_initialized(): + dist.destroy_process_group() + + +# ───────────────────────────────────────────────────────────────────────────── +# Metrics — identical to v1 finetune.py +# ───────────────────────────────────────────────────────────────────────────── +def compute_all_metrics(preds_np, labels_np, num_classes=20): + class_ids = list(range(1, num_classes - 1)) # 1..18 scored + + valid = (labels_np > 0) & (labels_np < num_classes - 1) + pv = preds_np[valid] + lv = labels_np[valid] + + if len(lv) == 0: + return dict(miou=0.0, oa=0.0, mf1=0.0, kappa=0.0, + per_iou={}, per_f1={}) + + cm = confusion_matrix(lv, pv, labels=class_ids) + diag = np.diag(cm).astype(np.float64) + sum0 = cm.sum(0).astype(np.float64) + sum1 = cm.sum(1).astype(np.float64) + + iou = diag / (sum0 + sum1 - diag + 1e-8) + f1 = (2 * diag) / (sum0 + sum1 + 1e-8) + miou = float(iou.mean()) + mf1 = float(f1.mean()) + oa = float((pv == lv).mean()) + kappa = float(cohen_kappa_score(lv, pv)) + + return dict(miou=miou, oa=oa, mf1=mf1, kappa=kappa, + per_iou={c: float(iou[i]) for i, c in enumerate(class_ids)}, + per_f1={c: float(f1[i]) for i, c in enumerate(class_ids)}) + + +def print_metrics(metrics, tag): + print(f" [{tag}] mIoU={metrics['miou']:.4f} OA={metrics['oa']:.4f} " + f"mF1={metrics['mf1']:.4f} Kappa={metrics['kappa']:.4f}", flush=True) + print(f" {'Cls':>4} {'Name':<28} {'IoU':>8} {'F1':>8}", flush=True) + print(f" {'-'*44}", flush=True) + for c in range(1, C.N_CLASSES - 1): + iv = metrics['per_iou'].get(c, 0.0) + fv = metrics['per_f1'].get(c, 0.0) + name = PASTIS_NAMES.get(c, f"cls{c}") + flag = " **DEAD**" if iv < 0.001 else (" *rare*" if iv < 0.10 else "") + print(f" {c:>4} {name:<28} {iv:>8.4f} {fv:>8.4f}{flag}", flush=True) + + +# ───────────────────────────────────────────────────────────────────────────── +# v2 augmentations. All operate on one batch of crops: +# xc (B, T, C, h, w) normalized S2 +# yc (B, h, w) labels +# pos (B, T) index positions (arange(T) upstream) +# ───────────────────────────────────────────────────────────────────────────── +def aug_dihedral(xc, yc): + """One dihedral-8 transform per crop-batch, image and label together.""" + if torch.rand(()) > 0.5: + xc, yc = xc.flip(-2), yc.flip(-2) + if torch.rand(()) > 0.5: + xc, yc = xc.flip(-1), yc.flip(-1) + k = int(torch.randint(0, 4, ())) + if k: + xc, yc = torch.rot90(xc, k, (-2, -1)), torch.rot90(yc, k, (-2, -1)) + return xc.contiguous(), yc.contiguous() + + +def aug_temporal_subsample(xc, pos, p=0.5, drop_max=0.2, keep_min=24): + """Drop up to `drop_max` of the frames, order preserved. Positions keep + their original index values -> emulates missing acquisitions of an + otherwise identical season. No-op with probability 1-p.""" + if torch.rand(()) > p: + return xc, pos + T = xc.shape[1] + keep = int(round(T * (1.0 - random.uniform(0.0, drop_max)))) + keep = max(keep_min, min(T, keep)) + if keep >= T: + return xc, pos + idx = torch.randperm(T)[:keep].sort().values.to(xc.device) + return (xc.index_select(1, idx).contiguous(), + pos.index_select(1, idx).contiguous()) + + +def aug_frame_dropout(xc, p=0.25, max_frames=2): + """Zero 1-2 whole frames (0 == dataset mean after normalisation) — + emulates cloudy/lost acquisitions.""" + if torch.rand(()) > p: + return xc + T = xc.shape[1] + n = random.randint(1, max_frames) + idx = torch.randperm(T)[:n].to(xc.device) + xc = xc.clone() + xc[:, idx] = 0.0 + return xc + + +def aug_spectral(xc, gain_std=0.05, bias_std=0.03, noise_std=0.01): + """Per-sample, per-band gain/bias jitter + small gaussian noise (data is + z-normalised, so these are fractions of one std).""" + B, T, Ch, H, W = xc.shape + dev = xc.device + gain = 1.0 + gain_std * torch.randn(B, 1, Ch, 1, 1, device=dev) + bias = bias_std * torch.randn(B, 1, Ch, 1, 1, device=dev) + xc = xc * gain + bias + if noise_std > 0: + xc = xc + noise_std * torch.randn_like(xc) + return xc.contiguous() + + +# ───────────────────────────────────────────────────────────────────────────── +# EMA of the raw (unwrapped) network +# ───────────────────────────────────────────────────────────────────────────── +class ModelEMA: + def __init__(self, model, decay=0.999): + self.decay = decay + self.updates = 0 + raw = model.module if isinstance(model, DDP) else model + self.module = copy.deepcopy(raw).eval() + for p in self.module.parameters(): + p.requires_grad_(False) + + @torch.no_grad() + def update(self, model): + self.updates += 1 + d = min(self.decay, (1.0 + self.updates) / (10.0 + self.updates)) + raw = model.module if isinstance(model, DDP) else model + msd = raw.state_dict() + for k, v in self.module.state_dict().items(): + if v.dtype.is_floating_point: + v.lerp_(msd[k].detach().float(), 1.0 - d) + else: + v.copy_(msd[k]) + + +# ───────────────────────────────────────────────────────────────────────────── +# Optimizer param groups: encoder vs heads x decay vs no-decay +# ───────────────────────────────────────────────────────────────────────────── +def build_param_groups(net_raw, base_lr, encoder_mult, wd): + buckets = {"enc_dec": [], "enc_nd": [], "head_dec": [], "head_nd": []} + for name, p in net_raw.named_parameters(): + if not p.requires_grad: + continue + is_enc = name.startswith("utae.") + no_dec = p.ndim <= 1 # LN/BN weights + all biases + buckets[("enc_" if is_enc else "head_") + ("nd" if no_dec else "dec") + ].append(p) + groups = [ + {"params": buckets["enc_dec"], "lr0": base_lr * encoder_mult, + "weight_decay": wd}, + {"params": buckets["enc_nd"], "lr0": base_lr * encoder_mult, + "weight_decay": 0.0}, + {"params": buckets["head_dec"], "lr0": base_lr, + "weight_decay": wd}, + {"params": buckets["head_nd"], "lr0": base_lr, + "weight_decay": 0.0}, + ] + return [g for g in groups if len(g["params"]) > 0] + + +def lr_factor(step, total_steps, warmup_steps, min_ratio): + """Linear warmup then cosine decay to min_ratio.""" + if step < warmup_steps: + return (step + 1) / max(1, warmup_steps) + p = (step - warmup_steps) / max(1, total_steps - warmup_steps) + p = min(1.0, p) + cos = 0.5 * (1.0 + math.cos(math.pi * p)) + return min_ratio + (1.0 - min_ratio) * cos + + +def set_lrs(optimizer, factor): + for g in optimizer.param_groups: + g["lr"] = g["lr0"] * factor + + +# ───────────────────────────────────────────────────────────────────────────── +# Validation on the two fixed diagonal crops of the val patches +# (grid = PATCH_SIZE / crop_size; for 64 -> (0,0),(1,1) of a 2x2 grid, +# for 32 -> exactly the official v1 validation crops) +# ───────────────────────────────────────────────────────────────────────────── +@torch.no_grad() +def validate(net, val_dl, device, crop_size, limit_batches=0): + net.eval() + grid = max(1, C.PATCH_SIZE // crop_size) + positions = [(0, 0), (1, 1)] if grid >= 2 else [(0, 0)] + all_preds, all_labels = [], [] + for bi, ((xv, pv_, _dv), yv) in enumerate(val_dl): + if limit_batches and bi >= limit_batches: + break + xv = xv.to(device, non_blocking=True) + pv_ = pv_.to(device, non_blocking=True) + yv = yv.to(device, non_blocking=True) + for (i, j) in positions: + xc, yc = crop_ij(xv, yv, i, j, grid) + with autocast(): + out = net(xc, pv_) + pred = out["refined_logits"].float().argmax(dim=1) + all_preds.append(pred.cpu().numpy().ravel()) + all_labels.append(yc.cpu().numpy().ravel()) + return compute_all_metrics(np.concatenate(all_preds), + np.concatenate(all_labels), C.N_CLASSES) + + +def pack_checkpoint(state_dict, epoch, metrics, seed, which): + return {"epoch": epoch, + "model_state_dict": state_dict, + "val_miou": metrics["miou"], + "val_oa": metrics["oa"], + "val_mf1": metrics["mf1"], + "val_kappa": metrics["kappa"], + "val_per_iou": metrics["per_iou"], + "seed": seed, "which": which, "recipe": "v2"} + + +# ───────────────────────────────────────────────────────────────────────────── +def main(): + ap = argparse.ArgumentParser() + ap.add_argument("--pretrain_pth", type=str, required=True) + ap.add_argument("--seed", type=int, default=C.SEED) + ap.add_argument("--tag", type=str, default="v2") + ap.add_argument("--out_dir", type=str, default="", + help="default: /checkpoints/finetune_v2/") + ap.add_argument("--epochs", type=int, default=C.FT_EPOCHS) + ap.add_argument("--batch", type=int, default=C.FT_BATCH) + # --- the v2 recipe knobs ------------------------------------------------- + ap.add_argument("--crop_size", type=int, default=64, + help="random-crop side; 32 = official crop size") + ap.add_argument("--crops_per_patch", type=int, default=2, + help="random crops per patch per epoch (2 keeps the " + "official 76 steps/epoch)") + ap.add_argument("--official_crops", action="store_true", + help="control run: fixed 32x32 diagonal crops, no augs " + "(= v1 recipe with v2 plumbing)") + ap.add_argument("--fixed_crops", action="store_true", + help="fixed diagonal crops at --crop_size; keeps augmentation settings") + ap.add_argument("--freeze_encoder_epochs", type=int, default=0) + ap.add_argument("--no_aug", action="store_true") + ap.add_argument("--no_temporal_aug", action="store_true") + ap.add_argument("--mask_ce_invalid", action="store_true") + ap.add_argument("--boundary_weight", type=float, default=0.5) + ap.add_argument("--init_finetuned", type=str, default="", + help="initialize all weights from fine-tuned checkpoint; reset optimizer and schedule") + ap.add_argument("--base_lr", type=float, default=1e-4) + ap.add_argument("--encoder_lr_mult", type=float, default=0.5) + ap.add_argument("--min_lr_ratio", type=float, default=0.01) + ap.add_argument("--warmup_epochs", type=float, default=3.0) + ap.add_argument("--wd", type=float, default=0.02) + ap.add_argument("--label_smoothing", type=float, default=0.05) + ap.add_argument("--ema_decay", type=float, default=0.999) + ap.add_argument("--patience", type=int, default=30, + help="early stopping on val mIoU; 0 = run all epochs") + # --- housekeeping -------------------------------------------------------- + ap.add_argument("--print_every", type=int, default=5) + ap.add_argument("--limit_batches", type=int, default=0, + help=">0: truncate train/val loops (smoke test)") + ap.add_argument("--resume", type=str, default="auto", + help="'auto' resumes from /latest.tar if present; " + "'none' starts fresh; or an explicit .tar path") + ap.add_argument('--research', choices=['l2sp','sam','contrast','consistency','swa'], required=True) + args = ap.parse_args() + if args.research == 'swa' and args.resume != 'none': + ap.error('SWA requires --resume none until averaging state supports resume') + + if args.official_crops: + args.crop_size = 32 + args.no_aug = True + + if args.fixed_crops and args.crop_size not in (32, 64): + ap.error("--fixed_crops requires --crop_size 32 or 64") + + out_dir = (Path(args.out_dir) if args.out_dir else + C.EXP_ROOT / "checkpoints" / "finetune_v2" / args.tag) + + rank, world, local_rank, device = setup_distributed() + + # Seed BEFORE model creation so all ranks build identical weights... + torch.backends.cuda.matmul.allow_tf32 = True + torch.backends.cudnn.allow_tf32 = True + torch.set_num_threads(min(8, os.cpu_count() or 1)) + torch.manual_seed(args.seed) + torch.cuda.manual_seed_all(args.seed) + + train_ids = train_patch_ids() + val_ids = val_patch_ids() + + train_ds = PASTISPatchDataset(train_ids) + val_ds = PASTISPatchDataset(val_ids) + + sampler = (DistributedSampler(train_ds, num_replicas=world, rank=rank, + shuffle=True) + if world > 1 else None) + train_dl = DataLoader( + train_ds, batch_size=args.batch, sampler=sampler, + shuffle=(sampler is None), num_workers=2, pin_memory=True, + persistent_workers=True, collate_fn=pad_collate) + val_dl = DataLoader( + val_ds, batch_size=args.batch, shuffle=False, + num_workers=2, pin_memory=True, collate_fn=pad_collate) + + n_crops = len(C.FT_CROP_IJ) if (args.official_crops or args.fixed_crops) else args.crops_per_patch + steps_per_epoch = len(train_dl) * n_crops + total_steps = steps_per_epoch * args.epochs + warmup_steps = int(args.warmup_epochs * steps_per_epoch) + + if rank == 0: + print(f"[FT-v2] train={len(train_ids)} patches ({len(set(train_ids))} unique) " + f"val={len(val_ids)} patches ({len(set(val_ids))} unique)", flush=True) + print(f"[FT-v2] world={world} batch={args.batch} patches x {n_crops} crops " + f"-> {steps_per_epoch} steps/epoch/rank", flush=True) + print(f"[FT-v2] crop_size={args.crop_size} " + f"({'fixed diagonal' if (args.official_crops or args.fixed_crops) else 'RANDOM'}) " + f"aug={'off' if args.no_aug else 'dihedral+temporal+spectral'}", + flush=True) + print(f"[FT-v2] base_lr={args.base_lr} enc_mult={args.encoder_lr_mult} " + f"wd={args.wd} ls={args.label_smoothing} ema={args.ema_decay} " + f"warmup_ep={args.warmup_epochs} min_lr_ratio={args.min_lr_ratio} " + f"patience={args.patience}", flush=True) + print(f"[FT-v2] seed={args.seed} epochs={args.epochs} " + f"checkpoints -> {out_dir}", flush=True) + + # ---- model + pretrained encoder ---------------------------------------- + encoder = UTAE_ASPP( + n_channels=C.N_CHANNELS, d_model=C.D_MODEL, n_heads=C.N_HEADS, + T_pad=C.T_PAD, windows=C.TSE_WINDOWS, shifts=C.TSE_SHIFTS) + if rank == 0: + print(f"[FT-v2] loading encoder: {args.pretrain_pth}", flush=True) + ckpt = torch.load(args.pretrain_pth, map_location="cpu", weights_only=False) + sd = ckpt["model_state_dict"] + if not any(k.startswith("spatial_encoder.") for k in sd): + # full pretrain graph (latest.tar) -> strip the "utae." prefix + sd = {k[len("utae."):]: v for k, v in sd.items() if k.startswith("utae.")} + if rank == 0: + print("[FT-v2] (extracted encoder weights from full pretrain " + "checkpoint)", flush=True) + encoder.load_state_dict(sd, strict=True) + anchor = {n: p.detach().clone().to(device) for n,p in encoder.named_parameters()} + + network = UTAEClassificationDual( + encoder, d_model=C.D_MODEL, num_classes=C.N_CLASSES).to(device) + net_ref = network + if world > 1: + network = DDP(network, device_ids=[local_rank]) + net_ref = network.module + + # ...and only AFTER model construction diverge the per-rank RNGs used for + # shuffling/augmentation, so the two GPUs see different crops/transforms. + torch.manual_seed(args.seed + 1000 * rank) + random.seed(args.seed + 1000 * rank) + + if args.init_finetuned: + initial = torch.load(args.init_finetuned, map_location="cpu", weights_only=False) + net_ref.load_state_dict(initial["model_state_dict"], strict=True) + if rank == 0: + print(f"[INIT] fine-tuned weights from {args.init_finetuned}; optimizer/schedule start fresh", flush=True) + + # ---- losses: uniform weights (inv-freq was a catastrophic regression) --- + class_weights = torch.ones(C.N_CLASSES, device=device) + class_weights[0] = 0.0 + class_weights[C.N_CLASSES - 1] = 0.0 + + ce_loss = nn.CrossEntropyLoss(weight=class_weights, + label_smoothing=args.label_smoothing) + if args.mask_ce_invalid: + def masked_ce(logits, target): + valid = (target > 0) & (target < C.N_CLASSES - 1) + if not valid.any(): + return logits.sum() * 0.0 + return torch.nn.functional.cross_entropy( + logits.permute(0, 2, 3, 1)[valid], target[valid], + weight=class_weights, label_smoothing=args.label_smoothing) + ce_loss = masked_ce + lovasz_loss = LovaszSoftmaxLoss(ignore_indices=[0, C.N_CLASSES - 1]) + bce_loss = nn.BCEWithLogitsLoss() + + # ---- optimizer / EMA ---------------------------------------------------- + optimizer = torch.optim.AdamW( + build_param_groups(net_ref, args.base_lr, args.encoder_lr_mult, + args.wd), + lr=args.base_lr, betas=(0.9, 0.95)) + scaler = GradScaler() + ema = ModelEMA(network, decay=args.ema_decay) + from research_methods import pixel_contrast + features = {} + if args.research == 'contrast': + net_ref.sta.register_forward_hook(lambda module, inputs, output: features.update(value=output)) + swa = torch.optim.swa_utils.AveragedModel(net_ref) if args.research == 'swa' else None + best_swa = -1.0 + + def training_loss(x, positions, target, boundary): + with autocast(dtype=torch.bfloat16 if args.research == 'contrast' else torch.float16): + outputs = network(x, positions) + sem = outputs['sem_logits'].float() + refined = outputs['refined_logits'].float() + loss = (ce_loss(sem,target) + .75*lovasz_loss(sem,target) + + ce_loss(refined,target) + .75*lovasz_loss(refined,target) + + args.boundary_weight*bce_loss(outputs['bnd_logits'].float().squeeze(1),boundary)) + if args.research == 'l2sp': + # Sum of squared distance, encoder only; original pretrained anchor. + loss = loss + .001*sum((p-anchor[n]).square().sum() for n,p in net_ref.utae.named_parameters()) + elif args.research == 'contrast': + loss = loss + .05*pixel_contrast(features['value'], target) + elif args.research == 'consistency' and epoch >= 3: + with torch.no_grad(), autocast(): + teacher = ema.module(aug_spectral(x, gain_std=.02, bias_std=.01, noise_std=.005),positions)['refined_logits'].float().softmax(1) + valid = (target>0)&(target=.8) + if valid.any(): + kl = torch.nn.functional.kl_div(refined.log_softmax(1),teacher,reduction='none').sum(1) + loss = loss + .1*min(1.,(epoch-2)/5)*kl[valid].mean() + return loss + + if rank == 0: + n_params = sum(p.numel() for p in network.parameters() if p.requires_grad) + n_enc = sum(p.numel() for n_, p in net_ref.named_parameters() + if n_.startswith("utae.")) + print(f"[FT-v2] params={n_params/1e6:.2f}M (encoder {n_enc/1e6:.2f}M)", + flush=True) + + # ---- resume -------------------------------------------------------------- + os.makedirs(out_dir, exist_ok=True) + latest_path = out_dir / "latest.tar" + start_epoch, best_raw, best_ema = 0, {"miou": -1.0}, {"miou": -1.0} + best_monitor, patience_counter, history = -1.0, 0, [] + + resume_from = None + if args.resume == "auto": + resume_from = latest_path if latest_path.is_file() else None + elif args.resume not in ("none", ""): + resume_from = Path(args.resume) + if not resume_from.is_file(): + raise FileNotFoundError(f"--resume: no such file {resume_from}") + + if resume_from is not None: + ck = torch.load(resume_from, map_location="cpu", weights_only=False) + net_ref.load_state_dict(ck["model_state_dict"]) + ema.module.load_state_dict(ck["ema_state_dict"]) + ema.updates = ck.get("ema_updates", 0) + optimizer.load_state_dict(ck["optimizer_state_dict"]) + scaler.load_state_dict(ck["scaler_state_dict"]) + best_raw = ck["best_raw"]; best_ema = ck["best_ema"] + best_monitor = ck.get("best_monitor", -1.0) + patience_counter = ck.get("patience_counter", 0) + history = ck.get("history", []) + start_epoch = int(ck["epoch"]) + 1 + if rank == 0: + print(f"[FT-v2] RESUMED from {resume_from} (finished epoch " + f"{ck['epoch']}) -> epoch {start_epoch}/{args.epochs}", + flush=True) + if start_epoch >= args.epochs: + print("[FT-v2] already complete; nothing to do.", flush=True) + cleanup_distributed() + return + elif rank == 0: + print(f"[FT-v2] starting fresh (--resume={args.resume})", flush=True) + + if rank == 0: + print(f"[HYPOTHESIS] temporal_aug={not args.no_temporal_aug} " + f"mask_ce_invalid={args.mask_ce_invalid} boundary_weight={args.boundary_weight} " + f"ema_decay={args.ema_decay}", flush=True) + if args.init_finetuned and start_epoch == 0: + m_init = validate(net_ref, val_dl, device, args.crop_size, args.limit_batches) + if rank == 0: + with open(out_dir / "initial_metrics.json", "w") as f: + json.dump(m_init, f, indent=2) + print(f"[INITIAL] mIoU={m_init['miou']:.6f}", flush=True) + + # ---- training loop ------------------------------------------------------- + gstep = start_epoch * steps_per_epoch + hi = C.PATCH_SIZE - args.crop_size + + for epoch in range(start_epoch, args.epochs): + if sampler is not None: + sampler.set_epoch(epoch) + network.train() + frozen = epoch < args.freeze_encoder_epochs + for parameter in net_ref.utae.parameters(): + parameter.requires_grad_(not frozen) + if frozen: + net_ref.utae.eval() # freeze BatchNorm statistics and encoder dropout + if rank == 0: + print(f"[ENCODER] frozen={frozen}", flush=True) + ep_start = time.time() + ep_loss, n_steps = 0.0, 0 + stop_flag = False + + for it, ((xp, pos, _days), yp) in enumerate(train_dl): + if args.limit_batches and it >= args.limit_batches: + break + xp = xp.to(device, non_blocking=True) # (B,T,10,128,128) + pos = pos.to(device, non_blocking=True) + yp = yp.to(device, non_blocking=True) # (B,128,128) + + if args.official_crops or args.fixed_crops: + crop_list = [crop_ij(xp, yp, i, j, C.PATCH_SIZE // args.crop_size) + for (i, j) in [tuple(x) for x in C.FT_CROP_IJ]] + else: + crop_list = [] + for _ in range(n_crops): + i = int(torch.randint(0, hi + 1, ())) + j = int(torch.randint(0, hi + 1, ())) + crop_list.append( + (xp[:, :, :, i:i + args.crop_size, + j:j + args.crop_size], + yp[:, i:i + args.crop_size, j:j + args.crop_size])) + + for xc, yc in crop_list: + pos_c = pos + if not args.no_aug: + xc, yc = aug_dihedral(xc, yc) + if not args.no_temporal_aug: + xc, pos_c = aug_temporal_subsample(xc, pos_c) + xc = aug_frame_dropout(xc) + xc = aug_spectral(xc) + bnd_gt = compute_boundary_target(yc) + + optimizer.zero_grad(set_to_none=True) + loss = training_loss(xc,pos_c,yc,bnd_gt) + if not torch.isfinite(loss): + raise RuntimeError('Nonfinite research loss') + scaler.scale(loss).backward() + if args.research == 'sam': + parameters = [p for p in net_ref.parameters() if p.grad is not None] + norm = torch.linalg.vector_norm(torch.stack([p.grad.float().norm()/scaler.get_scale() for p in parameters])) + if not torch.isfinite(norm): + # AMP overflow: let GradScaler skip this update and lower + # its scale before the next crop. No SAM perturbation made. + scaler.unscale_(optimizer) + scaler.step(optimizer) + scaler.update() + optimizer.zero_grad(set_to_none=True) + print('[SAM AMP] skipped overflowing first pass; scale=', scaler.get_scale(), flush=True) + continue + offsets = [] + with torch.no_grad(): + for parameter in parameters: + offset = parameter.grad / scaler.get_scale() * (.02/(norm+1e-12)) + parameter.add_(offset) + offsets.append(offset) + optimizer.zero_grad(set_to_none=True) + bn = [m for m in net_ref.modules() if isinstance(m, torch.nn.modules.batchnorm._BatchNorm)] + states = [m.training for m in bn] + for m in bn: m.eval() + try: + second_loss = training_loss(xc,pos_c,yc,bnd_gt) + scaler.scale(second_loss).backward() + finally: + with torch.no_grad(): + for parameter,offset in zip(parameters,offsets): parameter.sub_(offset) + for m,state in zip(bn,states): m.train(state) + scaler.unscale_(optimizer) + torch.nn.utils.clip_grad_norm_(network.parameters(),max_norm=5.0) + factor = 1.0 if args.research == 'swa' else lr_factor(gstep,total_steps,warmup_steps,args.min_lr_ratio) + set_lrs(optimizer,factor) + scaler.step(optimizer) + scaler.update() + ema.update(network) + gstep += 1 + + ep_loss += loss.item() + n_steps += 1 + + if rank == 0 and it % 10 == 0: + print(f" ep {epoch:3d} batch {it:3d}/{len(train_dl)} " + f"step {n_steps:3d}/{steps_per_epoch} " + f"loss={loss.item():.4f} " + f"lr={optimizer.param_groups[-1]['lr']:.2e} " + f"t={time.time()-ep_start:.0f}s", flush=True) + + if swa is not None and epoch >= 5: + swa.update_parameters(net_ref) + # Calibrate BN only on the same two fixed training crops. Dropout off. + swa.module.eval() + bn = [m for m in swa.module.modules() if isinstance(m, torch.nn.modules.batchnorm._BatchNorm)] + momenta = [m.momentum for m in bn] + for m in bn: + m.reset_running_stats(); m.momentum = None; m.train() + with torch.no_grad(): + for bi, ((xx,pp,_), yy) in enumerate(train_dl): + if args.limit_batches and bi >= args.limit_batches: break + xx,pp,yy = xx.to(device),pp.to(device),yy.to(device) + for i,j in C.FT_CROP_IJ: + crop,_ = crop_ij(xx,yy,i,j,C.PATCH_SIZE//args.crop_size) + with autocast(): swa.module(crop,pp) + for m,momentum in zip(bn,momenta): m.momentum=momentum; m.eval() + + # ---- validation: raw + EMA ------------------------------------------ + if rank == 0: + m_raw = validate(net_ref, val_dl, device, args.crop_size, + args.limit_batches) + m_ema = validate(ema.module, val_dl, device, args.crop_size, + args.limit_batches) + m_swa = validate(swa.module,val_dl,device,args.crop_size,args.limit_batches) if swa is not None and epoch >= 5 else None + if m_swa is not None and m_swa['miou'] > best_swa: + best_swa = m_swa['miou'] + torch.save(pack_checkpoint(swa.module.state_dict(),epoch,m_swa,args.seed,'swa'),out_dir/'model_best_swa.tar') + ep_sec = time.time() - ep_start + mean_loss = ep_loss / max(n_steps, 1) + + history.append({ + "epoch": epoch, "train_loss": mean_loss, + "lr": optimizer.param_groups[-1]["lr"], + "raw": {k: m_raw[k] for k in ("miou", "oa", "mf1", "kappa")}, + "ema": {k: m_ema[k] for k in ("miou", "oa", "mf1", "kappa")}, + "epoch_sec": ep_sec, "swa": m_swa, "research": args.research, + }) + with open(out_dir / "history.json", "w") as f: + json.dump(history, f, indent=1) + + improved = False + if m_raw["miou"] > best_raw["miou"]: + best_raw = {"miou": m_raw["miou"], "epoch": epoch} + torch.save(pack_checkpoint(net_ref.state_dict(), epoch, + m_raw, args.seed, "raw"), + out_dir / "model_best_raw.tar") + improved = True + if m_ema["miou"] > best_ema["miou"]: + best_ema = {"miou": m_ema["miou"], "epoch": epoch} + torch.save(pack_checkpoint(ema.module.state_dict(), epoch, + m_ema, args.seed, "ema"), + out_dir / "model_best_ema.tar") + improved = True + + monitor = max(m_raw["miou"], m_ema["miou"]) + if monitor > best_monitor: + best_monitor = monitor + patience_counter = 0 + else: + patience_counter += 1 + + print(f"[ep {epoch:3d} DONE] loss={mean_loss:.4f} " + f"raw_mIoU={m_raw['miou']:.4f} ema_mIoU={m_ema['miou']:.4f} " + f"best_raw={best_raw['miou']:.4f}@{best_raw['epoch']} " + f"best_ema={best_ema['miou']:.4f}@{best_ema['epoch']} " + f"patience={patience_counter}/{args.patience} " + f"t={ep_sec:.0f}s", flush=True) + if improved or (epoch % args.print_every == 0): + print_metrics(m_raw, f"ep {epoch} RAW") + print_metrics(m_ema, f"ep {epoch} EMA") + + # resumable latest.tar every epoch + tmp = out_dir / "latest.tar.tmp" + torch.save({ + "epoch": epoch, + "model_state_dict": net_ref.state_dict(), + "ema_state_dict": ema.module.state_dict(), + "ema_updates": ema.updates, + "optimizer_state_dict": optimizer.state_dict(), + "scaler_state_dict": scaler.state_dict(), + "best_raw": best_raw, "best_ema": best_ema, + "best_monitor": best_monitor, + "patience_counter": patience_counter, + "history": history, + "args": vars(args), + }, tmp) + os.replace(tmp, latest_path) + + if args.patience > 0 and patience_counter >= args.patience: + print(f"[EARLY STOP] best_raw={best_raw} best_ema={best_ema}", + flush=True) + stop_flag = True + + # keep ranks in step and share rank 0's early-stop decision + if world > 1: + flag = torch.tensor([1 if stop_flag else 0], device=device) + dist.broadcast(flag, src=0) + stop_flag = bool(flag.item()) + if stop_flag: + break + + if rank == 0: + print(f"\n[FT-v2 COMPLETE] best_raw={best_raw} best_ema={best_ema}", + flush=True) + print(f"[FT-v2] checkpoints in {out_dir}", flush=True) + cleanup_distributed() + + +if __name__ == "__main__": + main() diff --git a/ablations/10_plateau_breakthrough/workspace/finetune_temporal_research.py b/ablations/10_plateau_breakthrough/workspace/finetune_temporal_research.py new file mode 100644 index 0000000000000000000000000000000000000000..b76f98623ce50eb81db8f9c5dc12f5cdf353d81a --- /dev/null +++ b/ablations/10_plateau_breakthrough/workspace/finetune_temporal_research.py @@ -0,0 +1,116 @@ +"""Independent ten-band temporal models; fixed32 protocol, validation-only blending.""" +import argparse, json, random, time +from pathlib import Path +import numpy as np +import torch +from torch import nn +from torch.utils.data import DataLoader +import config as C +from dataset import PASTISPatchDataset, train_patch_ids, val_patch_ids, test_patch_ids, pad_collate, crop_ij +from top5_models import valid_from_index_positions +from plateau_probes import metrics_cm, write_json, frozen_model, DepthCollector, probability, OUT as PROBE_OUT +from finetune_plateau import aug_dihedral, aug_temporal_subsample, aug_frame_dropout, aug_spectral, lr_factor + +ROOT=Path(__file__).resolve().parent +OUT=ROOT/'temporal_research' +CEREALS=[2,3,4,6,10,11,17,18] + +from temporal_research_models import make_model + +class TemporalCNN(nn.Module): + def __init__(self, classes=18): + super().__init__() + self.input=nn.Linear(10,64) + self.norms=nn.ModuleList([nn.LayerNorm(64) for _ in range(4)]) + self.convs=nn.ModuleList([nn.Conv1d(64,64,3,padding=d,dilation=d,groups=64) for d in [1,2,4,8]]) + self.mix=nn.ModuleList([nn.Linear(64,64) for _ in range(4)]) + self.head=nn.Sequential(nn.Linear(128,64),nn.GELU(),nn.Linear(64,classes)) + + def forward(self,x,pos): + b,t,c,h,w=x.shape + valid=valid_from_index_positions(pos)[:,None,None].expand(b,h,w,t).reshape(-1,t,1) + flat=x.permute(0,3,4,1,2).reshape(-1,t,c) + outputs=[] + for start in range(0,len(flat),2048): + mask=valid[start:start+2048];z=self.input(flat[start:start+2048])*mask + for norm,conv,mix in zip(self.norms,self.convs,self.mix): + z=(z+mix(torch.nn.functional.gelu(conv(norm(z).transpose(1,2)).transpose(1,2))))*mask + mean=z.sum(1)/mask.sum(1).clamp_min(1) + maximum=z.masked_fill(~mask,torch.finfo(z.dtype).min).amax(1) + outputs.append(self.head(torch.cat([mean,maximum],-1))) + return torch.cat(outputs).reshape(b,h,w,-1).permute(0,3,1,2) + +def loader(ids,batch,shuffle=False): + return DataLoader(PASTISPatchDataset(ids),batch_size=batch,shuffle=shuffle,num_workers=2,pin_memory=True,persistent_workers=True,collate_fn=pad_collate) + +def target_for(y,classes): + target=torch.full_like(y,-100) + for i,c in enumerate(classes):target[y==c]=i + return target + +@torch.inference_mode() +def validate(model,dl,classes): + model.eval();cm=np.zeros((20,20),np.int64) + for (x,pos,_),y in dl: + x,pos=x.cuda(),pos.cuda() + for i,j in C.FT_CROP_IJ: + xc,yc=crop_ij(x,y,i,j,4) + with torch.autocast('cuda',dtype=torch.float16):pred=model(xc,pos).argmax(1) + pred=np.array(classes)[pred.cpu().numpy().ravel()];gt=yc.numpy().ravel() + valid=np.isin(gt,classes);cm+=np.bincount(20*gt[valid]+pred[valid],minlength=400).reshape(20,20) + result=metrics_cm(cm) + if len(classes)<18:result['selection_score']=float(np.array(result['per_class_iou'])[np.array(classes)-1].mean()) + else:result['selection_score']=result['miou'] + return result + +def train(args): + classes=CEREALS if args.kind=='cereal' else list(range(1,19)) + folder=OUT/f'32X32_{args.kind}_seed{args.seed}';folder.mkdir(parents=True,exist_ok=True) + model=make_model(args.kind,len(classes)).cuda();optimizer=torch.optim.AdamW(model.parameters(),lr=1e-3,weight_decay=.01) + torch.manual_seed(args.seed);random.seed(args.seed) + scaler=torch.amp.GradScaler('cuda');td=loader(train_patch_ids(),2,True);vd=loader(val_patch_ids(),2) + start=0;best=-1. + if (folder/'latest.tar').exists(): + ck=torch.load(folder/'latest.tar',weights_only=False);model.load_state_dict(ck['state']);optimizer.load_state_dict(ck['optimizer']);scaler.load_state_dict(ck['scaler']);start=ck['epoch']+1;best=ck['best'];torch.set_rng_state(ck['rng']);torch.cuda.set_rng_state_all(ck['cuda_rng']);random.setstate(ck['python_rng']) + for epoch in range(start,args.epochs): + model.train();started=time.monotonic();total=0.;steps=0 + for (x,pos,_),y in td: + x,pos,y=x.cuda(),pos.cuda(),y.cuda() + for i,j in C.FT_CROP_IJ: + xc,yc=crop_ij(x,y,i,j,4);xc,yc=aug_dihedral(xc,yc);xc,pc=aug_temporal_subsample(xc,pos);xc=aug_frame_dropout(xc);xc=aug_spectral(xc) + target=target_for(yc,classes);optimizer.zero_grad(set_to_none=True) + factor=lr_factor(epoch*76+steps,args.epochs*76,3*76,.01) + for g in optimizer.param_groups:g['lr']=1e-3*factor + with torch.autocast('cuda',dtype=torch.float16):logits=model(xc,pc) + loss=torch.nn.functional.cross_entropy(logits.float(),target,ignore_index=-100,label_smoothing=.05) if (target!=-100).any() else logits.float().sum()*0 + if not torch.isfinite(loss):raise RuntimeError('Nonfinite specialist loss') + scaler.scale(loss).backward();scaler.unscale_(optimizer);torch.nn.utils.clip_grad_norm_(model.parameters(),1.);scaler.step(optimizer);scaler.update();total+=loss.item();steps+=1 + assert steps==76 + metric=validate(model,vd,classes) + if metric['selection_score']>best: + best=metric['selection_score'];torch.save({'state':model.state_dict(),'classes':classes,'kind':args.kind,'seed':args.seed,'epoch':epoch,'validation':metric},folder/'best.tar') + torch.save({'state':model.state_dict(),'optimizer':optimizer.state_dict(),'scaler':scaler.state_dict(),'epoch':epoch,'best':best,'rng':torch.get_rng_state(),'cuda_rng':torch.cuda.get_rng_state_all(),'python_rng':random.getstate()},folder/'latest.tar') + write_json(folder/'progress.json',{'epoch_completed':epoch+1,'epochs':args.epochs,'best_selection_score':best,'seconds_per_epoch':time.monotonic()-started}) + print('epoch',epoch+1,'loss',total/steps,'selection',metric['selection_score'],'best',best,'seconds',time.monotonic()-started,flush=True) + +@torch.inference_mode() +def baseline_validation(): + # Reuse already verified baseline probabilities in exactly the cached order. + return np.load(PROBE_OUT/'cache/sam/val/labels.npy'),np.load(PROBE_OUT/'cache/sam/val/patch_ids.npy') + +def combine(base,special,classes,alpha): + if len(classes)==18:return (1-alpha)*base+alpha*special + out=base.copy();mass=base[:,classes].sum(1,keepdims=True) + out[:,classes]=(1-alpha)*base[:,classes]+alpha*mass*special[:,classes] + return out + +def evaluate(args): + from evaluate_temporal_research import evaluate_candidate + evaluate_candidate(args.kind,args.seed,args.action) + +def main(): + ap=argparse.ArgumentParser();ap.add_argument('action',choices=['train','select','test']);ap.add_argument('--kind',choices=['cnn_control','attention','transformer'],required=True);ap.add_argument('--seed',type=int,default=3407);ap.add_argument('--epochs',type=int,default=100);args=ap.parse_args() + torch.set_num_threads(4);torch.manual_seed(args.seed);random.seed(args.seed);np.random.seed(args.seed);torch.backends.cuda.matmul.allow_tf32=True;torch.backends.cudnn.allow_tf32=True + if args.action=='train':train(args) + else:evaluate(args) +if __name__=='__main__':main() diff --git a/ablations/10_plateau_breakthrough/workspace/finetune_top5.py b/ablations/10_plateau_breakthrough/workspace/finetune_top5.py new file mode 100644 index 0000000000000000000000000000000000000000..69a8e96ce3250cb972c0f229cfd9221100a0496b --- /dev/null +++ b/ablations/10_plateau_breakthrough/workspace/finetune_top5.py @@ -0,0 +1,811 @@ +""" +T-SRDA finetune v2 — improved recipe for Kaggle (T4 x 2). + +The v1 run (official STCLN protocol: fixed 32x32 diagonal crops, no +augmentation, flat LR 1e-4, wd=0) peaked at val mIoU 0.4759 around epoch 37 +and then DECLINED to 0.4207 by epoch 99 — textbook overfitting to the 152 +fixed training crops. v2 attacks exactly that, while keeping everything that +made v1 comparable intact. + +NEW in v2 +--------- +1. RANDOM CROPS anywhere in the 128x128 patch (default 64x64, 2 per patch + per epoch) instead of the two fixed 32x32 diagonal crops (0,0)/(1,1). + Every epoch sees different windows, and 64x64 gives 4x the spatial + context of the official 32x32 plus more parcel boundaries per crop. +2. AUGMENTATION (v1/official: none): + - dihedral-8 (h/v flip + rot90) always sampled + - temporal subsample (drop up to 20% of frames, order kept) p=0.5 + - frame dropout (zero 1-2 whole frames ~ cloudy acquisition) p=0.25 + - per-band gain/bias jitter + small gaussian noise always +3. AdamW with weight decay 0.02 on >1-dim params (v1 used wd=0 == Adam). +4. DISCRIMINATIVE LR: the pretrained encoder trains at 0.5x the head LR, + so 43 h of pretraining is not washed out by the randomly-init heads. +5. WARMUP (3 ep) + COSINE decay to 1% (v1: flat 1e-4, no schedule). +6. EMA of weights (decay 0.999) — raw AND EMA are validated every epoch and + each keeps its own best checkpoint. EMA is usually the better one. +7. Label smoothing 0.05 on the CE terms. +8. Best-val checkpointing + early stopping (--patience), and a resumable + latest.tar every epoch (Kaggle sessions can die — --resume auto). + +KEPT IDENTICAL to v1 (so numbers stay comparable to the 0.4124/0.4433 run) +-------------------------------------------------------------------------- + - model architecture (UTAE_ASPP + UTAEClassificationDual); the pretrained + encoder is loaded strict=True from the .utae.tar checkpoint + - loss family: CE + 0.75*Lovász on the sem & refined heads + 0.5*BCE on + the boundary head; uniform class weights with 0/19 ignored (the + inverse-frequency weighting experiment is NOT repeated — it was a + catastrophic regression in this project) + - splits: the same 76 train / 76 val hardcoded patch IDs, fold-4 test + - index positions (arange(T)), AMP, grad clip 5.0, seed protocol + - same optimizer-step budget: 2 patches/batch x 2 crops = 76 steps/epoch + +DDP: launch with torchrun to use both T4s (one run, half the wall time): + torchrun --standalone --nproc_per_node=2 finetune_v2.py --pretrain_pth ... +""" +import argparse +import copy +import json +import math +import os +import random +import time +from pathlib import Path + +import numpy as np +import torch +import torch.nn as nn +import torch.distributed as dist +from torch.utils.data import DataLoader, DistributedSampler +from torch.cuda.amp import autocast, GradScaler +from torch.nn.parallel import DistributedDataParallel as DDP +from sklearn.metrics import confusion_matrix, cohen_kappa_score + +import config as C +from dataset import (PASTISPatchDataset, train_patch_ids, val_patch_ids, + pad_collate, crop_ij) +from model import UTAE_ASPP, UTAEClassificationDual, compute_boundary_target +from top5_models import MaskedUTAE_ASPP, MaskedUTAEClassificationDual, SeasonalUTAEClassificationDual +from losses import LovaszSoftmaxLoss + +PASTIS_NAMES = C.PASTIS_CLASSES # single source of truth — see config.py + + +# ───────────────────────────────────────────────────────────────────────────── +# Distributed helpers (same contract as v1: torchrun env vars, else single GPU) +# ───────────────────────────────────────────────────────────────────────────── +def setup_distributed(): + if "RANK" in os.environ: + dist.init_process_group(backend="nccl") + local_rank = int(os.environ["LOCAL_RANK"]) + rank = int(os.environ["RANK"]) + world = int(os.environ["WORLD_SIZE"]) + torch.cuda.set_device(local_rank) + return rank, world, local_rank, torch.device(f"cuda:{local_rank}") + return 0, 1, 0, torch.device("cuda:0") + + +def cleanup_distributed(): + if dist.is_initialized(): + dist.destroy_process_group() + + +# ───────────────────────────────────────────────────────────────────────────── +# Metrics — identical to v1 finetune.py +# ───────────────────────────────────────────────────────────────────────────── +def compute_all_metrics(preds_np, labels_np, num_classes=20): + class_ids = list(range(1, num_classes - 1)) # 1..18 scored + + valid = (labels_np > 0) & (labels_np < num_classes - 1) + pv = preds_np[valid] + lv = labels_np[valid] + + if len(lv) == 0: + return dict(miou=0.0, oa=0.0, mf1=0.0, kappa=0.0, + per_iou={}, per_f1={}) + + # Full matrix counts foreground pixels predicted as background/void as FN. + cm = confusion_matrix(lv, pv, labels=list(range(num_classes))) + diag = np.diag(cm)[1:-1].astype(np.float64) + sum0 = cm.sum(0)[1:-1].astype(np.float64) + sum1 = cm.sum(1)[1:-1].astype(np.float64) + + iou = diag / (sum0 + sum1 - diag + 1e-8) + f1 = (2 * diag) / (sum0 + sum1 + 1e-8) + miou = float(iou.mean()) + mf1 = float(f1.mean()) + oa = float((pv == lv).mean()) + kappa = float(cohen_kappa_score(lv, pv)) + + return dict(miou=miou, oa=oa, mf1=mf1, kappa=kappa, + per_iou={c: float(iou[i]) for i, c in enumerate(class_ids)}, + per_f1={c: float(f1[i]) for i, c in enumerate(class_ids)}) + + +def print_metrics(metrics, tag): + print(f" [{tag}] mIoU={metrics['miou']:.4f} OA={metrics['oa']:.4f} " + f"mF1={metrics['mf1']:.4f} Kappa={metrics['kappa']:.4f}", flush=True) + print(f" {'Cls':>4} {'Name':<28} {'IoU':>8} {'F1':>8}", flush=True) + print(f" {'-'*44}", flush=True) + for c in range(1, C.N_CLASSES - 1): + iv = metrics['per_iou'].get(c, 0.0) + fv = metrics['per_f1'].get(c, 0.0) + name = PASTIS_NAMES.get(c, f"cls{c}") + flag = " **DEAD**" if iv < 0.001 else (" *rare*" if iv < 0.10 else "") + print(f" {c:>4} {name:<28} {iv:>8.4f} {fv:>8.4f}{flag}", flush=True) + + +# ───────────────────────────────────────────────────────────────────────────── +# v2 augmentations. All operate on one batch of crops: +# xc (B, T, C, h, w) normalized S2 +# yc (B, h, w) labels +# pos (B, T) index positions (arange(T) upstream) +# ───────────────────────────────────────────────────────────────────────────── +def aug_dihedral(xc, yc): + """One dihedral-8 transform per crop-batch, image and label together.""" + if torch.rand(()) > 0.5: + xc, yc = xc.flip(-2), yc.flip(-2) + if torch.rand(()) > 0.5: + xc, yc = xc.flip(-1), yc.flip(-1) + k = int(torch.randint(0, 4, ())) + if k: + xc, yc = torch.rot90(xc, k, (-2, -1)), torch.rot90(yc, k, (-2, -1)) + return xc.contiguous(), yc.contiguous() + + +def aug_temporal_subsample(xc, pos, p=0.5, drop_max=0.2, keep_min=24): + """Drop up to `drop_max` of the frames, order preserved. Positions keep + their original index values -> emulates missing acquisitions of an + otherwise identical season. No-op with probability 1-p.""" + if torch.rand(()) > p: + return xc, pos + T = xc.shape[1] + keep = int(round(T * (1.0 - random.uniform(0.0, drop_max)))) + keep = max(keep_min, min(T, keep)) + if keep >= T: + return xc, pos + idx = torch.randperm(T)[:keep].sort().values.to(xc.device) + return (xc.index_select(1, idx).contiguous(), + pos.index_select(1, idx).contiguous()) + + +def aug_frame_dropout(xc, p=0.25, max_frames=2): + """Zero 1-2 whole frames (0 == dataset mean after normalisation) — + emulates cloudy/lost acquisitions.""" + if torch.rand(()) > p: + return xc + T = xc.shape[1] + n = random.randint(1, max_frames) + idx = torch.randperm(T)[:n].to(xc.device) + xc = xc.clone() + xc[:, idx] = 0.0 + return xc + + +def aug_spectral(xc, gain_std=0.05, bias_std=0.03, noise_std=0.01): + """Per-sample, per-band gain/bias jitter + small gaussian noise (data is + z-normalised, so these are fractions of one std).""" + B, T, Ch, H, W = xc.shape + dev = xc.device + gain = 1.0 + gain_std * torch.randn(B, 1, Ch, 1, 1, device=dev) + bias = bias_std * torch.randn(B, 1, Ch, 1, 1, device=dev) + xc = xc * gain + bias + if noise_std > 0: + xc = xc + noise_std * torch.randn_like(xc) + return xc.contiguous() + + +# ───────────────────────────────────────────────────────────────────────────── +# EMA of the raw (unwrapped) network +# ───────────────────────────────────────────────────────────────────────────── +class ModelEMA: + def __init__(self, model, decay=0.999): + self.decay = decay + self.updates = 0 + raw = model.module if isinstance(model, DDP) else model + self.module = copy.deepcopy(raw).eval() + for p in self.module.parameters(): + p.requires_grad_(False) + + @torch.no_grad() + def update(self, model): + self.updates += 1 + d = min(self.decay, (1.0 + self.updates) / (10.0 + self.updates)) + raw = model.module if isinstance(model, DDP) else model + msd = raw.state_dict() + for k, v in self.module.state_dict().items(): + if v.dtype.is_floating_point: + v.lerp_(msd[k].detach().float(), 1.0 - d) + else: + v.copy_(msd[k]) + + +# ───────────────────────────────────────────────────────────────────────────── +# Optimizer param groups: encoder vs heads x decay vs no-decay +# ───────────────────────────────────────────────────────────────────────────── +def build_param_groups(net_raw, base_lr, encoder_mult, wd): + buckets = {"enc_dec": [], "enc_nd": [], "head_dec": [], "head_nd": []} + for name, p in net_raw.named_parameters(): + if not p.requires_grad: + continue + is_enc = name.startswith("utae.") + no_dec = p.ndim <= 1 # LN/BN weights + all biases + buckets[("enc_" if is_enc else "head_") + ("nd" if no_dec else "dec") + ].append(p) + groups = [ + {"params": buckets["enc_dec"], "lr0": base_lr * encoder_mult, + "weight_decay": wd}, + {"params": buckets["enc_nd"], "lr0": base_lr * encoder_mult, + "weight_decay": 0.0}, + {"params": buckets["head_dec"], "lr0": base_lr, + "weight_decay": wd}, + {"params": buckets["head_nd"], "lr0": base_lr, + "weight_decay": 0.0}, + ] + return [g for g in groups if len(g["params"]) > 0] + + +def lr_factor(step, total_steps, warmup_steps, min_ratio): + """Linear warmup then cosine decay to min_ratio.""" + if step < warmup_steps: + return (step + 1) / max(1, warmup_steps) + p = (step - warmup_steps) / max(1, total_steps - warmup_steps) + p = min(1.0, p) + cos = 0.5 * (1.0 + math.cos(math.pi * p)) + return min_ratio + (1.0 - min_ratio) * cos + + +def set_lrs(optimizer, factor): + for g in optimizer.param_groups: + g["lr"] = g["lr0"] * factor + + +# ───────────────────────────────────────────────────────────────────────────── +# Validation on the two fixed diagonal crops of the val patches +# (grid = PATCH_SIZE / crop_size; for 64 -> (0,0),(1,1) of a 2x2 grid, +# for 32 -> exactly the official v1 validation crops) +# ───────────────────────────────────────────────────────────────────────────── +@torch.no_grad() +def validate(net, val_dl, device, crop_size, limit_batches=0): + net.eval() + grid = max(1, C.PATCH_SIZE // crop_size) + positions = [(0, 0), (1, 1)] if grid >= 2 else [(0, 0)] + all_preds, all_labels = [], [] + for bi, ((xv, pv_, _dv), yv) in enumerate(val_dl): + if limit_batches and bi >= limit_batches: + break + xv = xv.to(device, non_blocking=True) + pv_ = pv_.to(device, non_blocking=True) + yv = yv.to(device, non_blocking=True) + for (i, j) in positions: + xc, yc = crop_ij(xv, yv, i, j, grid) + with autocast(): + out = net(xc, pv_) + pred = out["refined_logits"].float().argmax(dim=1) + all_preds.append(pred.cpu().numpy().ravel()) + all_labels.append(yc.cpu().numpy().ravel()) + return compute_all_metrics(np.concatenate(all_preds), + np.concatenate(all_labels), C.N_CLASSES) + + +def pack_checkpoint(state_dict, epoch, metrics, seed, which, architecture_variant='plain'): + return {"epoch": epoch, + "model_state_dict": state_dict, + "val_miou": metrics["miou"], + "val_oa": metrics["oa"], + "val_mf1": metrics["mf1"], + "val_kappa": metrics["kappa"], + "val_per_iou": metrics["per_iou"], + "seed": seed, "which": which, "recipe": "top5_fixed32", + "architecture_variant": architecture_variant} + + +# ───────────────────────────────────────────────────────────────────────────── +def main(): + ap = argparse.ArgumentParser() + ap.add_argument("--pretrain_pth", type=str, required=True) + ap.add_argument("--seed", type=int, default=C.SEED) + ap.add_argument("--tag", type=str, default="v2") + ap.add_argument("--out_dir", type=str, default="", + help="default: /checkpoints/finetune_v2/") + ap.add_argument("--epochs", type=int, default=C.FT_EPOCHS) + ap.add_argument("--batch", type=int, default=C.FT_BATCH) + # --- the v2 recipe knobs ------------------------------------------------- + ap.add_argument("--crop_size", type=int, default=64, + help="random-crop side; 32 = official crop size") + ap.add_argument("--crops_per_patch", type=int, default=2, + help="random crops per patch per epoch (2 keeps the " + "official 76 steps/epoch)") + ap.add_argument("--official_crops", action="store_true", + help="control run: fixed 32x32 diagonal crops, no augs " + "(= v1 recipe with v2 plumbing)") + ap.add_argument("--fixed_crops", action="store_true", + help="fixed diagonal crops at --crop_size; keeps augmentation settings") + ap.add_argument("--freeze_encoder_epochs", type=int, default=0) + ap.add_argument("--no_aug", action="store_true") + ap.add_argument("--no_temporal_aug", action="store_true") + ap.add_argument("--mask_ce_invalid", action="store_true") + ap.add_argument("--boundary_weight", type=float, default=0.5) + ap.add_argument("--init_finetuned", type=str, default="", + help="initialize all weights from fine-tuned checkpoint; reset optimizer and schedule") + ap.add_argument("--base_lr", type=float, default=1e-4) + ap.add_argument("--encoder_lr_mult", type=float, default=0.5) + ap.add_argument("--min_lr_ratio", type=float, default=0.01) + ap.add_argument("--warmup_epochs", type=float, default=3.0) + ap.add_argument("--wd", type=float, default=0.02) + ap.add_argument("--label_smoothing", type=float, default=0.05) + ap.add_argument("--ema_decay", type=float, default=0.999) + ap.add_argument("--patience", type=int, default=30, + help="early stopping on val mIoU; 0 = run all epochs") + # --- housekeeping -------------------------------------------------------- + ap.add_argument("--print_every", type=int, default=5) + ap.add_argument("--limit_batches", type=int, default=0, + help=">0: truncate train/val loops (smoke test)") + ap.add_argument("--resume", type=str, default="auto", + help="'auto' resumes from /latest.tar if present; " + "'none' starts fresh; or an explicit .tar path") + ap.add_argument('--research', choices=['plain','sam','temporal_mask','seasonal','l2sp','contrast','consistency','swa'], required=True) + ap.add_argument('--sam_bn_mode', choices=['legacy','batch_no_update'], default='legacy') + ap.add_argument('--sam_rho', type=float, default=0.02) + ap.add_argument('--seasonal_lr', type=float, default=1e-4) + args = ap.parse_args() + if args.research == 'swa' and args.resume != 'none': + ap.error('SWA requires --resume none until averaging state supports resume') + + if args.official_crops: + args.crop_size = 32 + args.no_aug = True + + if args.fixed_crops and args.crop_size not in (32, 64): + ap.error("--fixed_crops requires --crop_size 32 or 64") + + out_dir = (Path(args.out_dir) if args.out_dir else + C.EXP_ROOT / "checkpoints" / "finetune_v2" / args.tag) + + rank, world, local_rank, device = setup_distributed() + + # Seed BEFORE model creation so all ranks build identical weights... + torch.backends.cuda.matmul.allow_tf32 = True + torch.backends.cudnn.allow_tf32 = True + torch.set_num_threads(min(8, os.cpu_count() or 1)) + torch.manual_seed(args.seed) + torch.cuda.manual_seed_all(args.seed) + + train_ids = train_patch_ids() + val_ids = val_patch_ids() + + train_ds = PASTISPatchDataset(train_ids) + val_ds = PASTISPatchDataset(val_ids) + + sampler = (DistributedSampler(train_ds, num_replicas=world, rank=rank, + shuffle=True) + if world > 1 else None) + train_dl = DataLoader( + train_ds, batch_size=args.batch, sampler=sampler, + shuffle=(sampler is None), num_workers=2, pin_memory=True, + persistent_workers=True, collate_fn=pad_collate) + val_dl = DataLoader( + val_ds, batch_size=args.batch, shuffle=False, + num_workers=2, pin_memory=True, collate_fn=pad_collate) + + n_crops = len(C.FT_CROP_IJ) if (args.official_crops or args.fixed_crops) else args.crops_per_patch + steps_per_epoch = len(train_dl) * n_crops + total_steps = steps_per_epoch * args.epochs + warmup_steps = int(args.warmup_epochs * steps_per_epoch) + + if rank == 0: + print(f"[FT-v2] train={len(train_ids)} patches ({len(set(train_ids))} unique) " + f"val={len(val_ids)} patches ({len(set(val_ids))} unique)", flush=True) + print(f"[FT-v2] world={world} batch={args.batch} patches x {n_crops} crops " + f"-> {steps_per_epoch} steps/epoch/rank", flush=True) + print(f"[FT-v2] crop_size={args.crop_size} " + f"({'fixed diagonal' if (args.official_crops or args.fixed_crops) else 'RANDOM'}) " + f"aug={'off' if args.no_aug else 'dihedral+temporal+spectral'}", + flush=True) + print(f"[FT-v2] base_lr={args.base_lr} enc_mult={args.encoder_lr_mult} " + f"wd={args.wd} ls={args.label_smoothing} ema={args.ema_decay} " + f"warmup_ep={args.warmup_epochs} min_lr_ratio={args.min_lr_ratio} " + f"patience={args.patience}", flush=True) + print(f"[FT-v2] seed={args.seed} epochs={args.epochs} " + f"checkpoints -> {out_dir}", flush=True) + + # ---- model + pretrained encoder ---------------------------------------- + encoder_type = MaskedUTAE_ASPP if args.research == 'temporal_mask' else UTAE_ASPP + encoder = encoder_type( + n_channels=C.N_CHANNELS, d_model=C.D_MODEL, n_heads=C.N_HEADS, + T_pad=C.T_PAD, windows=C.TSE_WINDOWS, shifts=C.TSE_SHIFTS) + if rank == 0: + print(f"[FT-v2] loading encoder: {args.pretrain_pth}", flush=True) + ckpt = torch.load(args.pretrain_pth, map_location="cpu", weights_only=False) + sd = ckpt["model_state_dict"] + if not any(k.startswith("spatial_encoder.") for k in sd): + # full pretrain graph (latest.tar) -> strip the "utae." prefix + sd = {k[len("utae."):]: v for k, v in sd.items() if k.startswith("utae.")} + if rank == 0: + print("[FT-v2] (extracted encoder weights from full pretrain " + "checkpoint)", flush=True) + encoder.load_state_dict(sd, strict=True) + anchor = {n: p.detach().clone().to(device) for n,p in encoder.named_parameters()} + + network_type = (MaskedUTAEClassificationDual if args.research == 'temporal_mask' + else SeasonalUTAEClassificationDual if args.research == 'seasonal' + else UTAEClassificationDual) + network = network_type( + encoder, d_model=C.D_MODEL, num_classes=C.N_CLASSES).to(device) + net_ref = network + if world > 1: + network = DDP(network, device_ids=[local_rank]) + net_ref = network.module + + # ...and only AFTER model construction diverge the per-rank RNGs used for + # shuffling/augmentation, so the two GPUs see different crops/transforms. + torch.manual_seed(args.seed + 1000 * rank) + random.seed(args.seed + 1000 * rank) + + if args.init_finetuned: + initial = torch.load(args.init_finetuned, map_location="cpu", weights_only=False) + incompatible = net_ref.load_state_dict( + initial["model_state_dict"], strict=args.research != 'seasonal') + if args.research == 'seasonal': + expected = { + 'sta.seasonal_scores.weight', 'sta.seasonal_scores.bias', + 'sta.seasonal_projection.weight', 'sta.seasonal_projection.bias', + } + if set(incompatible.missing_keys) != expected or incompatible.unexpected_keys: + raise RuntimeError(f'Unexpected seasonal loading differences: {incompatible}') + if rank == 0: + print(f"[INIT] fine-tuned weights from {args.init_finetuned}; optimizer/schedule start fresh", flush=True) + + # ---- losses: uniform weights (inv-freq was a catastrophic regression) --- + class_weights = torch.ones(C.N_CLASSES, device=device) + class_weights[0] = 0.0 + class_weights[C.N_CLASSES - 1] = 0.0 + + ce_loss = nn.CrossEntropyLoss(weight=class_weights, + label_smoothing=args.label_smoothing) + if args.mask_ce_invalid: + def masked_ce(logits, target): + valid = (target > 0) & (target < C.N_CLASSES - 1) + if not valid.any(): + return logits.sum() * 0.0 + return torch.nn.functional.cross_entropy( + logits.permute(0, 2, 3, 1)[valid], target[valid], + weight=class_weights, label_smoothing=args.label_smoothing) + ce_loss = masked_ce + lovasz_loss = LovaszSoftmaxLoss(ignore_indices=[0, C.N_CLASSES - 1]) + bce_loss = nn.BCEWithLogitsLoss() + + # ---- optimizer / EMA ---------------------------------------------------- + parameter_groups = build_param_groups( + net_ref, args.base_lr, args.encoder_lr_mult, args.wd) + if args.research == 'seasonal': + # Keep the pretrained encoder / existing heads at their declared LRs. + # Only the newly initialized seasonal branch uses the higher LR. + seasonal_parameters = [(name, p) for name, p in net_ref.named_parameters() + if name.startswith('sta.seasonal_')] + seasonal_ids = {id(p) for _, p in seasonal_parameters} + for group in parameter_groups: + group['params'] = [p for p in group['params'] if id(p) not in seasonal_ids] + parameter_groups = [g for g in parameter_groups if g['params']] + for no_decay in (False, True): + selected = [p for _, p in seasonal_parameters if (p.ndim <= 1) == no_decay] + if selected: + parameter_groups.append({ + 'params': selected, 'lr0': args.seasonal_lr, + 'weight_decay': 0.0 if no_decay else args.wd, + }) + optimizer = torch.optim.AdamW( + parameter_groups, + lr=args.base_lr, betas=(0.9, 0.95)) + scaler = GradScaler() + ema = ModelEMA(network, decay=args.ema_decay) + from research_methods import pixel_contrast + features = {} + if args.research == 'contrast': + net_ref.sta.register_forward_hook(lambda module, inputs, output: features.update(value=output)) + swa = torch.optim.swa_utils.AveragedModel(net_ref) if args.research == 'swa' else None + best_swa = -1.0 + + def training_loss(x, positions, target, boundary): + with autocast(dtype=torch.bfloat16 if args.research == 'contrast' else torch.float16): + outputs = network(x, positions) + sem = outputs['sem_logits'].float() + refined = outputs['refined_logits'].float() + loss = (ce_loss(sem,target) + .75*lovasz_loss(sem,target) + + ce_loss(refined,target) + .75*lovasz_loss(refined,target) + + args.boundary_weight*bce_loss(outputs['bnd_logits'].float().squeeze(1),boundary)) + if args.research == 'l2sp': + # Sum of squared distance, encoder only; original pretrained anchor. + loss = loss + .001*sum((p-anchor[n]).square().sum() for n,p in net_ref.utae.named_parameters()) + elif args.research == 'contrast': + loss = loss + .05*pixel_contrast(features['value'], target) + elif args.research == 'consistency' and epoch >= 3: + with torch.no_grad(), autocast(): + teacher = ema.module(aug_spectral(x, gain_std=.02, bias_std=.01, noise_std=.005),positions)['refined_logits'].float().softmax(1) + valid = (target>0)&(target=.8) + if valid.any(): + kl = torch.nn.functional.kl_div(refined.log_softmax(1),teacher,reduction='none').sum(1) + loss = loss + .1*min(1.,(epoch-2)/5)*kl[valid].mean() + return loss + + if rank == 0: + n_params = sum(p.numel() for p in network.parameters() if p.requires_grad) + n_enc = sum(p.numel() for n_, p in net_ref.named_parameters() + if n_.startswith("utae.")) + print(f"[FT-v2] params={n_params/1e6:.2f}M (encoder {n_enc/1e6:.2f}M)", + flush=True) + + # ---- resume -------------------------------------------------------------- + os.makedirs(out_dir, exist_ok=True) + latest_path = out_dir / "latest.tar" + start_epoch, best_raw, best_ema = 0, {"miou": -1.0}, {"miou": -1.0} + best_monitor, patience_counter, history = -1.0, 0, [] + + resume_from = None + if args.resume == "auto": + resume_from = latest_path if latest_path.is_file() else None + elif args.resume not in ("none", ""): + resume_from = Path(args.resume) + if not resume_from.is_file(): + raise FileNotFoundError(f"--resume: no such file {resume_from}") + + if resume_from is not None: + ck = torch.load(resume_from, map_location="cpu", weights_only=False) + net_ref.load_state_dict(ck["model_state_dict"]) + ema.module.load_state_dict(ck["ema_state_dict"]) + ema.updates = ck.get("ema_updates", 0) + optimizer.load_state_dict(ck["optimizer_state_dict"]) + scaler.load_state_dict(ck["scaler_state_dict"]) + best_raw = ck["best_raw"]; best_ema = ck["best_ema"] + best_monitor = ck.get("best_monitor", -1.0) + patience_counter = ck.get("patience_counter", 0) + history = ck.get("history", []) + start_epoch = int(ck["epoch"]) + 1 + if rank == 0: + print(f"[FT-v2] RESUMED from {resume_from} (finished epoch " + f"{ck['epoch']}) -> epoch {start_epoch}/{args.epochs}", + flush=True) + if start_epoch >= args.epochs: + print("[FT-v2] already complete; nothing to do.", flush=True) + cleanup_distributed() + return + elif rank == 0: + print(f"[FT-v2] starting fresh (--resume={args.resume})", flush=True) + + if rank == 0: + print(f"[HYPOTHESIS] temporal_aug={not args.no_temporal_aug} " + f"mask_ce_invalid={args.mask_ce_invalid} boundary_weight={args.boundary_weight} " + f"ema_decay={args.ema_decay}", flush=True) + if args.init_finetuned and start_epoch == 0: + m_init = validate(net_ref, val_dl, device, args.crop_size, args.limit_batches) + if rank == 0: + with open(out_dir / "initial_metrics.json", "w") as f: + json.dump(m_init, f, indent=2) + print(f"[INITIAL] mIoU={m_init['miou']:.6f}", flush=True) + + # ---- training loop ------------------------------------------------------- + gstep = start_epoch * steps_per_epoch + hi = C.PATCH_SIZE - args.crop_size + + for epoch in range(start_epoch, args.epochs): + if sampler is not None: + sampler.set_epoch(epoch) + network.train() + frozen = epoch < args.freeze_encoder_epochs + for parameter in net_ref.utae.parameters(): + parameter.requires_grad_(not frozen) + if frozen: + net_ref.utae.eval() # freeze BatchNorm statistics and encoder dropout + if rank == 0: + print(f"[ENCODER] frozen={frozen}", flush=True) + ep_start = time.time() + ep_loss, n_steps = 0.0, 0 + stop_flag = False + + for it, ((xp, pos, _days), yp) in enumerate(train_dl): + if args.limit_batches and it >= args.limit_batches: + break + xp = xp.to(device, non_blocking=True) # (B,T,10,128,128) + pos = pos.to(device, non_blocking=True) + yp = yp.to(device, non_blocking=True) # (B,128,128) + + if args.official_crops or args.fixed_crops: + crop_list = [crop_ij(xp, yp, i, j, C.PATCH_SIZE // args.crop_size) + for (i, j) in [tuple(x) for x in C.FT_CROP_IJ]] + else: + crop_list = [] + for _ in range(n_crops): + i = int(torch.randint(0, hi + 1, ())) + j = int(torch.randint(0, hi + 1, ())) + crop_list.append( + (xp[:, :, :, i:i + args.crop_size, + j:j + args.crop_size], + yp[:, i:i + args.crop_size, j:j + args.crop_size])) + + for xc, yc in crop_list: + pos_c = pos + if not args.no_aug: + xc, yc = aug_dihedral(xc, yc) + if not args.no_temporal_aug: + xc, pos_c = aug_temporal_subsample(xc, pos_c) + xc = aug_frame_dropout(xc) + xc = aug_spectral(xc) + bnd_gt = compute_boundary_target(yc) + + optimizer.zero_grad(set_to_none=True) + loss = training_loss(xc,pos_c,yc,bnd_gt) + if not torch.isfinite(loss): + raise RuntimeError('Nonfinite research loss') + scaler.scale(loss).backward() + if args.research == 'sam': + parameters = [p for p in net_ref.parameters() if p.grad is not None] + norm = torch.linalg.vector_norm(torch.stack([p.grad.float().norm()/scaler.get_scale() for p in parameters])) + if not torch.isfinite(norm): + # AMP overflow: let GradScaler skip this update and lower + # its scale before the next crop. No SAM perturbation made. + scaler.unscale_(optimizer) + scaler.step(optimizer) + scaler.update() + optimizer.zero_grad(set_to_none=True) + print('[SAM AMP] skipped overflowing first pass; scale=', scaler.get_scale(), flush=True) + continue + offsets = [] + with torch.no_grad(): + for parameter in parameters: + offset = parameter.grad / scaler.get_scale() * (args.sam_rho/(norm+1e-12)) + parameter.add_(offset) + offsets.append(offset) + optimizer.zero_grad(set_to_none=True) + bn = [m for m in net_ref.modules() if isinstance(m, torch.nn.modules.batchnorm._BatchNorm)] + states = [m.training for m in bn] + momenta = [m.momentum for m in bn] + tracked = [m.num_batches_tracked.detach().clone() if m.num_batches_tracked is not None else None for m in bn] + if args.sam_bn_mode == 'legacy': + for m in bn: m.eval() + else: + for m in bn: + m.train() + m.momentum = 0.0 + try: + second_loss = training_loss(xc,pos_c,yc,bnd_gt) + scaler.scale(second_loss).backward() + finally: + with torch.no_grad(): + for parameter,offset in zip(parameters,offsets): parameter.sub_(offset) + if args.sam_bn_mode == 'batch_no_update': + for m,count in zip(bn,tracked): + if count is not None: m.num_batches_tracked.copy_(count) + for m,state,momentum in zip(bn,states,momenta): + m.train(state) + m.momentum = momentum + scaler.unscale_(optimizer) + torch.nn.utils.clip_grad_norm_(network.parameters(),max_norm=5.0) + factor = 1.0 if args.research == 'swa' else lr_factor(gstep,total_steps,warmup_steps,args.min_lr_ratio) + set_lrs(optimizer,factor) + scaler.step(optimizer) + scaler.update() + ema.update(network) + gstep += 1 + + ep_loss += loss.item() + n_steps += 1 + + if rank == 0 and it % 10 == 0: + print(f" ep {epoch:3d} batch {it:3d}/{len(train_dl)} " + f"step {n_steps:3d}/{steps_per_epoch} " + f"loss={loss.item():.4f} " + f"lr={optimizer.param_groups[-1]['lr']:.2e} " + f"t={time.time()-ep_start:.0f}s", flush=True) + + if swa is not None and epoch >= 5: + swa.update_parameters(net_ref) + # Calibrate BN only on the same two fixed training crops. Dropout off. + swa.module.eval() + bn = [m for m in swa.module.modules() if isinstance(m, torch.nn.modules.batchnorm._BatchNorm)] + momenta = [m.momentum for m in bn] + for m in bn: + m.reset_running_stats(); m.momentum = None; m.train() + with torch.no_grad(): + for bi, ((xx,pp,_), yy) in enumerate(train_dl): + if args.limit_batches and bi >= args.limit_batches: break + xx,pp,yy = xx.to(device),pp.to(device),yy.to(device) + for i,j in C.FT_CROP_IJ: + crop,_ = crop_ij(xx,yy,i,j,C.PATCH_SIZE//args.crop_size) + with autocast(): swa.module(crop,pp) + for m,momentum in zip(bn,momenta): m.momentum=momentum; m.eval() + + # ---- validation: raw + EMA ------------------------------------------ + if rank == 0: + m_raw = validate(net_ref, val_dl, device, args.crop_size, + args.limit_batches) + m_ema = validate(ema.module, val_dl, device, args.crop_size, + args.limit_batches) + m_swa = validate(swa.module,val_dl,device,args.crop_size,args.limit_batches) if swa is not None and epoch >= 5 else None + if m_swa is not None and m_swa['miou'] > best_swa: + best_swa = m_swa['miou'] + torch.save(pack_checkpoint(swa.module.state_dict(),epoch,m_swa,args.seed,'swa'),out_dir/'model_best_swa.tar') + ep_sec = time.time() - ep_start + mean_loss = ep_loss / max(n_steps, 1) + + history.append({ + "epoch": epoch, "train_loss": mean_loss, + "lr": optimizer.param_groups[-1]["lr"], + "raw": {k: m_raw[k] for k in ("miou", "oa", "mf1", "kappa")}, + "ema": {k: m_ema[k] for k in ("miou", "oa", "mf1", "kappa")}, + "epoch_sec": ep_sec, "swa": m_swa, "research": args.research, + }) + with open(out_dir / "history.json", "w") as f: + json.dump(history, f, indent=1) + + improved = False + if m_raw["miou"] > best_raw["miou"]: + best_raw = {"miou": m_raw["miou"], "epoch": epoch} + torch.save(pack_checkpoint(net_ref.state_dict(), epoch, + m_raw, args.seed, "raw", + args.research if args.research in ('temporal_mask','seasonal') else 'plain'), + out_dir / "model_best_raw.tar") + improved = True + if m_ema["miou"] > best_ema["miou"]: + best_ema = {"miou": m_ema["miou"], "epoch": epoch} + torch.save(pack_checkpoint(ema.module.state_dict(), epoch, + m_ema, args.seed, "ema", + args.research if args.research in ('temporal_mask','seasonal') else 'plain'), + out_dir / "model_best_ema.tar") + improved = True + + monitor = max(m_raw["miou"], m_ema["miou"]) + if monitor > best_monitor: + best_monitor = monitor + patience_counter = 0 + else: + patience_counter += 1 + + print(f"[ep {epoch:3d} DONE] loss={mean_loss:.4f} " + f"raw_mIoU={m_raw['miou']:.4f} ema_mIoU={m_ema['miou']:.4f} " + f"best_raw={best_raw['miou']:.4f}@{best_raw['epoch']} " + f"best_ema={best_ema['miou']:.4f}@{best_ema['epoch']} " + f"patience={patience_counter}/{args.patience} " + f"t={ep_sec:.0f}s", flush=True) + if improved or (epoch % args.print_every == 0): + print_metrics(m_raw, f"ep {epoch} RAW") + print_metrics(m_ema, f"ep {epoch} EMA") + + # resumable latest.tar every epoch + tmp = out_dir / "latest.tar.tmp" + torch.save({ + "epoch": epoch, + "model_state_dict": net_ref.state_dict(), + "ema_state_dict": ema.module.state_dict(), + "ema_updates": ema.updates, + "optimizer_state_dict": optimizer.state_dict(), + "scaler_state_dict": scaler.state_dict(), + "best_raw": best_raw, "best_ema": best_ema, + "best_monitor": best_monitor, + "patience_counter": patience_counter, + "history": history, + "args": vars(args), + }, tmp) + os.replace(tmp, latest_path) + + if args.patience > 0 and patience_counter >= args.patience: + print(f"[EARLY STOP] best_raw={best_raw} best_ema={best_ema}", + flush=True) + stop_flag = True + + # keep ranks in step and share rank 0's early-stop decision + if world > 1: + flag = torch.tensor([1 if stop_flag else 0], device=device) + dist.broadcast(flag, src=0) + stop_flag = bool(flag.item()) + if stop_flag: + break + + if rank == 0: + print(f"\n[FT-v2 COMPLETE] best_raw={best_raw} best_ema={best_ema}", + flush=True) + print(f"[FT-v2] checkpoints in {out_dir}", flush=True) + cleanup_distributed() + + +if __name__ == "__main__": + main() diff --git a/ablations/10_plateau_breakthrough/workspace/finetune_v2.py b/ablations/10_plateau_breakthrough/workspace/finetune_v2.py new file mode 100644 index 0000000000000000000000000000000000000000..88dceb838419f0873ef2c1c75a162b824da5b641 --- /dev/null +++ b/ablations/10_plateau_breakthrough/workspace/finetune_v2.py @@ -0,0 +1,656 @@ +""" +T-SRDA finetune v2 — improved recipe for Kaggle (T4 x 2). + +The v1 run (official STCLN protocol: fixed 32x32 diagonal crops, no +augmentation, flat LR 1e-4, wd=0) peaked at val mIoU 0.4759 around epoch 37 +and then DECLINED to 0.4207 by epoch 99 — textbook overfitting to the 152 +fixed training crops. v2 attacks exactly that, while keeping everything that +made v1 comparable intact. + +NEW in v2 +--------- +1. RANDOM CROPS anywhere in the 128x128 patch (default 64x64, 2 per patch + per epoch) instead of the two fixed 32x32 diagonal crops (0,0)/(1,1). + Every epoch sees different windows, and 64x64 gives 4x the spatial + context of the official 32x32 plus more parcel boundaries per crop. +2. AUGMENTATION (v1/official: none): + - dihedral-8 (h/v flip + rot90) always sampled + - temporal subsample (drop up to 20% of frames, order kept) p=0.5 + - frame dropout (zero 1-2 whole frames ~ cloudy acquisition) p=0.25 + - per-band gain/bias jitter + small gaussian noise always +3. AdamW with weight decay 0.02 on >1-dim params (v1 used wd=0 == Adam). +4. DISCRIMINATIVE LR: the pretrained encoder trains at 0.5x the head LR, + so 43 h of pretraining is not washed out by the randomly-init heads. +5. WARMUP (3 ep) + COSINE decay to 1% (v1: flat 1e-4, no schedule). +6. EMA of weights (decay 0.999) — raw AND EMA are validated every epoch and + each keeps its own best checkpoint. EMA is usually the better one. +7. Label smoothing 0.05 on the CE terms. +8. Best-val checkpointing + early stopping (--patience), and a resumable + latest.tar every epoch (Kaggle sessions can die — --resume auto). + +KEPT IDENTICAL to v1 (so numbers stay comparable to the 0.4124/0.4433 run) +-------------------------------------------------------------------------- + - model architecture (UTAE_ASPP + UTAEClassificationDual); the pretrained + encoder is loaded strict=True from the .utae.tar checkpoint + - loss family: CE + 0.75*Lovász on the sem & refined heads + 0.5*BCE on + the boundary head; uniform class weights with 0/19 ignored (the + inverse-frequency weighting experiment is NOT repeated — it was a + catastrophic regression in this project) + - splits: the same 76 train / 76 val hardcoded patch IDs, fold-4 test + - index positions (arange(T)), AMP, grad clip 5.0, seed protocol + - same optimizer-step budget: 2 patches/batch x 2 crops = 76 steps/epoch + +DDP: launch with torchrun to use both T4s (one run, half the wall time): + torchrun --standalone --nproc_per_node=2 finetune_v2.py --pretrain_pth ... +""" +import argparse +import copy +import json +import math +import os +import random +import time +from pathlib import Path + +import numpy as np +import torch +import torch.nn as nn +import torch.distributed as dist +from torch.utils.data import DataLoader, DistributedSampler +from torch.cuda.amp import autocast, GradScaler +from torch.nn.parallel import DistributedDataParallel as DDP +from sklearn.metrics import confusion_matrix, cohen_kappa_score + +import config as C +from dataset import (PASTISPatchDataset, train_patch_ids, val_patch_ids, + pad_collate, crop_ij) +from model import UTAE_ASPP, UTAEClassificationDual, compute_boundary_target +from losses import LovaszSoftmaxLoss + +PASTIS_NAMES = C.PASTIS_CLASSES # single source of truth — see config.py + + +# ───────────────────────────────────────────────────────────────────────────── +# Distributed helpers (same contract as v1: torchrun env vars, else single GPU) +# ───────────────────────────────────────────────────────────────────────────── +def setup_distributed(): + if "RANK" in os.environ: + dist.init_process_group(backend="nccl") + local_rank = int(os.environ["LOCAL_RANK"]) + rank = int(os.environ["RANK"]) + world = int(os.environ["WORLD_SIZE"]) + torch.cuda.set_device(local_rank) + return rank, world, local_rank, torch.device(f"cuda:{local_rank}") + return 0, 1, 0, torch.device("cuda:0") + + +def cleanup_distributed(): + if dist.is_initialized(): + dist.destroy_process_group() + + +# ───────────────────────────────────────────────────────────────────────────── +# Metrics — identical to v1 finetune.py +# ───────────────────────────────────────────────────────────────────────────── +def compute_all_metrics(preds_np, labels_np, num_classes=20): + class_ids = list(range(1, num_classes - 1)) # 1..18 scored + + valid = (labels_np > 0) & (labels_np < num_classes - 1) + pv = preds_np[valid] + lv = labels_np[valid] + + if len(lv) == 0: + return dict(miou=0.0, oa=0.0, mf1=0.0, kappa=0.0, + per_iou={}, per_f1={}) + + cm = confusion_matrix(lv, pv, labels=class_ids) + diag = np.diag(cm).astype(np.float64) + sum0 = cm.sum(0).astype(np.float64) + sum1 = cm.sum(1).astype(np.float64) + + iou = diag / (sum0 + sum1 - diag + 1e-8) + f1 = (2 * diag) / (sum0 + sum1 + 1e-8) + miou = float(iou.mean()) + mf1 = float(f1.mean()) + oa = float((pv == lv).mean()) + kappa = float(cohen_kappa_score(lv, pv)) + + return dict(miou=miou, oa=oa, mf1=mf1, kappa=kappa, + per_iou={c: float(iou[i]) for i, c in enumerate(class_ids)}, + per_f1={c: float(f1[i]) for i, c in enumerate(class_ids)}) + + +def print_metrics(metrics, tag): + print(f" [{tag}] mIoU={metrics['miou']:.4f} OA={metrics['oa']:.4f} " + f"mF1={metrics['mf1']:.4f} Kappa={metrics['kappa']:.4f}", flush=True) + print(f" {'Cls':>4} {'Name':<28} {'IoU':>8} {'F1':>8}", flush=True) + print(f" {'-'*44}", flush=True) + for c in range(1, C.N_CLASSES - 1): + iv = metrics['per_iou'].get(c, 0.0) + fv = metrics['per_f1'].get(c, 0.0) + name = PASTIS_NAMES.get(c, f"cls{c}") + flag = " **DEAD**" if iv < 0.001 else (" *rare*" if iv < 0.10 else "") + print(f" {c:>4} {name:<28} {iv:>8.4f} {fv:>8.4f}{flag}", flush=True) + + +# ───────────────────────────────────────────────────────────────────────────── +# v2 augmentations. All operate on one batch of crops: +# xc (B, T, C, h, w) normalized S2 +# yc (B, h, w) labels +# pos (B, T) index positions (arange(T) upstream) +# ───────────────────────────────────────────────────────────────────────────── +def aug_dihedral(xc, yc): + """One dihedral-8 transform per crop-batch, image and label together.""" + if torch.rand(()) > 0.5: + xc, yc = xc.flip(-2), yc.flip(-2) + if torch.rand(()) > 0.5: + xc, yc = xc.flip(-1), yc.flip(-1) + k = int(torch.randint(0, 4, ())) + if k: + xc, yc = torch.rot90(xc, k, (-2, -1)), torch.rot90(yc, k, (-2, -1)) + return xc.contiguous(), yc.contiguous() + + +def aug_temporal_subsample(xc, pos, p=0.5, drop_max=0.2, keep_min=24): + """Drop up to `drop_max` of the frames, order preserved. Positions keep + their original index values -> emulates missing acquisitions of an + otherwise identical season. No-op with probability 1-p.""" + if torch.rand(()) > p: + return xc, pos + T = xc.shape[1] + keep = int(round(T * (1.0 - random.uniform(0.0, drop_max)))) + keep = max(keep_min, min(T, keep)) + if keep >= T: + return xc, pos + idx = torch.randperm(T)[:keep].sort().values.to(xc.device) + return (xc.index_select(1, idx).contiguous(), + pos.index_select(1, idx).contiguous()) + + +def aug_frame_dropout(xc, p=0.25, max_frames=2): + """Zero 1-2 whole frames (0 == dataset mean after normalisation) — + emulates cloudy/lost acquisitions.""" + if torch.rand(()) > p: + return xc + T = xc.shape[1] + n = random.randint(1, max_frames) + idx = torch.randperm(T)[:n].to(xc.device) + xc = xc.clone() + xc[:, idx] = 0.0 + return xc + + +def aug_spectral(xc, gain_std=0.05, bias_std=0.03, noise_std=0.01): + """Per-sample, per-band gain/bias jitter + small gaussian noise (data is + z-normalised, so these are fractions of one std).""" + B, T, Ch, H, W = xc.shape + dev = xc.device + gain = 1.0 + gain_std * torch.randn(B, 1, Ch, 1, 1, device=dev) + bias = bias_std * torch.randn(B, 1, Ch, 1, 1, device=dev) + xc = xc * gain + bias + if noise_std > 0: + xc = xc + noise_std * torch.randn_like(xc) + return xc.contiguous() + + +# ───────────────────────────────────────────────────────────────────────────── +# EMA of the raw (unwrapped) network +# ───────────────────────────────────────────────────────────────────────────── +class ModelEMA: + def __init__(self, model, decay=0.999): + self.decay = decay + self.updates = 0 + raw = model.module if isinstance(model, DDP) else model + self.module = copy.deepcopy(raw).eval() + for p in self.module.parameters(): + p.requires_grad_(False) + + @torch.no_grad() + def update(self, model): + self.updates += 1 + d = min(self.decay, (1.0 + self.updates) / (10.0 + self.updates)) + raw = model.module if isinstance(model, DDP) else model + msd = raw.state_dict() + for k, v in self.module.state_dict().items(): + if v.dtype.is_floating_point: + v.lerp_(msd[k].detach().float(), 1.0 - d) + else: + v.copy_(msd[k]) + + +# ───────────────────────────────────────────────────────────────────────────── +# Optimizer param groups: encoder vs heads x decay vs no-decay +# ───────────────────────────────────────────────────────────────────────────── +def build_param_groups(net_raw, base_lr, encoder_mult, wd): + buckets = {"enc_dec": [], "enc_nd": [], "head_dec": [], "head_nd": []} + for name, p in net_raw.named_parameters(): + if not p.requires_grad: + continue + is_enc = name.startswith("utae.") + no_dec = p.ndim <= 1 # LN/BN weights + all biases + buckets[("enc_" if is_enc else "head_") + ("nd" if no_dec else "dec") + ].append(p) + groups = [ + {"params": buckets["enc_dec"], "lr0": base_lr * encoder_mult, + "weight_decay": wd}, + {"params": buckets["enc_nd"], "lr0": base_lr * encoder_mult, + "weight_decay": 0.0}, + {"params": buckets["head_dec"], "lr0": base_lr, + "weight_decay": wd}, + {"params": buckets["head_nd"], "lr0": base_lr, + "weight_decay": 0.0}, + ] + return [g for g in groups if len(g["params"]) > 0] + + +def lr_factor(step, total_steps, warmup_steps, min_ratio): + """Linear warmup then cosine decay to min_ratio.""" + if step < warmup_steps: + return (step + 1) / max(1, warmup_steps) + p = (step - warmup_steps) / max(1, total_steps - warmup_steps) + p = min(1.0, p) + cos = 0.5 * (1.0 + math.cos(math.pi * p)) + return min_ratio + (1.0 - min_ratio) * cos + + +def set_lrs(optimizer, factor): + for g in optimizer.param_groups: + g["lr"] = g["lr0"] * factor + + +# ───────────────────────────────────────────────────────────────────────────── +# Validation on the two fixed diagonal crops of the val patches +# (grid = PATCH_SIZE / crop_size; for 64 -> (0,0),(1,1) of a 2x2 grid, +# for 32 -> exactly the official v1 validation crops) +# ───────────────────────────────────────────────────────────────────────────── +@torch.no_grad() +def validate(net, val_dl, device, crop_size, limit_batches=0): + net.eval() + grid = max(1, C.PATCH_SIZE // crop_size) + positions = [(0, 0), (1, 1)] if grid >= 2 else [(0, 0)] + all_preds, all_labels = [], [] + for bi, ((xv, pv_, _dv), yv) in enumerate(val_dl): + if limit_batches and bi >= limit_batches: + break + xv = xv.to(device, non_blocking=True) + pv_ = pv_.to(device, non_blocking=True) + yv = yv.to(device, non_blocking=True) + for (i, j) in positions: + xc, yc = crop_ij(xv, yv, i, j, grid) + with autocast(): + out = net(xc, pv_) + pred = out["refined_logits"].float().argmax(dim=1) + all_preds.append(pred.cpu().numpy().ravel()) + all_labels.append(yc.cpu().numpy().ravel()) + return compute_all_metrics(np.concatenate(all_preds), + np.concatenate(all_labels), C.N_CLASSES) + + +def pack_checkpoint(state_dict, epoch, metrics, seed, which): + return {"epoch": epoch, + "model_state_dict": state_dict, + "val_miou": metrics["miou"], + "val_oa": metrics["oa"], + "val_mf1": metrics["mf1"], + "val_kappa": metrics["kappa"], + "val_per_iou": metrics["per_iou"], + "seed": seed, "which": which, "recipe": "v2"} + + +# ───────────────────────────────────────────────────────────────────────────── +def main(): + ap = argparse.ArgumentParser() + ap.add_argument("--pretrain_pth", type=str, required=True) + ap.add_argument("--seed", type=int, default=C.SEED) + ap.add_argument("--tag", type=str, default="v2") + ap.add_argument("--out_dir", type=str, default="", + help="default: /checkpoints/finetune_v2/") + ap.add_argument("--epochs", type=int, default=C.FT_EPOCHS) + ap.add_argument("--batch", type=int, default=C.FT_BATCH) + # --- the v2 recipe knobs ------------------------------------------------- + ap.add_argument("--crop_size", type=int, default=64, + help="random-crop side; 32 = official crop size") + ap.add_argument("--crops_per_patch", type=int, default=2, + help="random crops per patch per epoch (2 keeps the " + "official 76 steps/epoch)") + ap.add_argument("--official_crops", action="store_true", + help="control run: fixed 32x32 diagonal crops, no augs " + "(= v1 recipe with v2 plumbing)") + ap.add_argument("--fixed_crops", action="store_true", + help="fixed diagonal crops at --crop_size; keeps augmentation settings") + ap.add_argument("--no_aug", action="store_true") + ap.add_argument("--base_lr", type=float, default=1e-4) + ap.add_argument("--encoder_lr_mult", type=float, default=0.5) + ap.add_argument("--min_lr_ratio", type=float, default=0.01) + ap.add_argument("--warmup_epochs", type=float, default=3.0) + ap.add_argument("--wd", type=float, default=0.02) + ap.add_argument("--label_smoothing", type=float, default=0.05) + ap.add_argument("--ema_decay", type=float, default=0.999) + ap.add_argument("--patience", type=int, default=30, + help="early stopping on val mIoU; 0 = run all epochs") + # --- housekeeping -------------------------------------------------------- + ap.add_argument("--print_every", type=int, default=5) + ap.add_argument("--limit_batches", type=int, default=0, + help=">0: truncate train/val loops (smoke test)") + ap.add_argument("--resume", type=str, default="auto", + help="'auto' resumes from /latest.tar if present; " + "'none' starts fresh; or an explicit .tar path") + args = ap.parse_args() + + if args.official_crops: + args.crop_size = 32 + args.no_aug = True + + if args.fixed_crops and args.crop_size not in (32, 64): + ap.error("--fixed_crops requires --crop_size 32 or 64") + + out_dir = (Path(args.out_dir) if args.out_dir else + C.EXP_ROOT / "checkpoints" / "finetune_v2" / args.tag) + + rank, world, local_rank, device = setup_distributed() + + # Seed BEFORE model creation so all ranks build identical weights... + torch.backends.cuda.matmul.allow_tf32 = True + torch.backends.cudnn.allow_tf32 = True + torch.set_num_threads(min(8, os.cpu_count() or 1)) + torch.manual_seed(args.seed) + torch.cuda.manual_seed_all(args.seed) + + train_ids = train_patch_ids() + val_ids = val_patch_ids() + + train_ds = PASTISPatchDataset(train_ids) + val_ds = PASTISPatchDataset(val_ids) + + sampler = (DistributedSampler(train_ds, num_replicas=world, rank=rank, + shuffle=True) + if world > 1 else None) + train_dl = DataLoader( + train_ds, batch_size=args.batch, sampler=sampler, + shuffle=(sampler is None), num_workers=2, pin_memory=True, + persistent_workers=True, collate_fn=pad_collate) + val_dl = DataLoader( + val_ds, batch_size=args.batch, shuffle=False, + num_workers=2, pin_memory=True, collate_fn=pad_collate) + + n_crops = len(C.FT_CROP_IJ) if (args.official_crops or args.fixed_crops) else args.crops_per_patch + steps_per_epoch = len(train_dl) * n_crops + total_steps = steps_per_epoch * args.epochs + warmup_steps = int(args.warmup_epochs * steps_per_epoch) + + if rank == 0: + print(f"[FT-v2] train={len(train_ids)} patches ({len(set(train_ids))} unique) " + f"val={len(val_ids)} patches ({len(set(val_ids))} unique)", flush=True) + print(f"[FT-v2] world={world} batch={args.batch} patches x {n_crops} crops " + f"-> {steps_per_epoch} steps/epoch/rank", flush=True) + print(f"[FT-v2] crop_size={args.crop_size} " + f"({'fixed diagonal' if (args.official_crops or args.fixed_crops) else 'RANDOM'}) " + f"aug={'off' if args.no_aug else 'dihedral+temporal+spectral'}", + flush=True) + print(f"[FT-v2] base_lr={args.base_lr} enc_mult={args.encoder_lr_mult} " + f"wd={args.wd} ls={args.label_smoothing} ema={args.ema_decay} " + f"warmup_ep={args.warmup_epochs} min_lr_ratio={args.min_lr_ratio} " + f"patience={args.patience}", flush=True) + print(f"[FT-v2] seed={args.seed} epochs={args.epochs} " + f"checkpoints -> {out_dir}", flush=True) + + # ---- model + pretrained encoder ---------------------------------------- + encoder = UTAE_ASPP( + n_channels=C.N_CHANNELS, d_model=C.D_MODEL, n_heads=C.N_HEADS, + T_pad=C.T_PAD, windows=C.TSE_WINDOWS, shifts=C.TSE_SHIFTS) + if rank == 0: + print(f"[FT-v2] loading encoder: {args.pretrain_pth}", flush=True) + ckpt = torch.load(args.pretrain_pth, map_location="cpu", weights_only=False) + sd = ckpt["model_state_dict"] + if not any(k.startswith("spatial_encoder.") for k in sd): + # full pretrain graph (latest.tar) -> strip the "utae." prefix + sd = {k[len("utae."):]: v for k, v in sd.items() if k.startswith("utae.")} + if rank == 0: + print("[FT-v2] (extracted encoder weights from full pretrain " + "checkpoint)", flush=True) + encoder.load_state_dict(sd, strict=True) + + network = UTAEClassificationDual( + encoder, d_model=C.D_MODEL, num_classes=C.N_CLASSES).to(device) + net_ref = network + if world > 1: + network = DDP(network, device_ids=[local_rank]) + net_ref = network.module + + # ...and only AFTER model construction diverge the per-rank RNGs used for + # shuffling/augmentation, so the two GPUs see different crops/transforms. + torch.manual_seed(args.seed + 1000 * rank) + random.seed(args.seed + 1000 * rank) + + # ---- losses: uniform weights (inv-freq was a catastrophic regression) --- + class_weights = torch.ones(C.N_CLASSES, device=device) + class_weights[0] = 0.0 + class_weights[C.N_CLASSES - 1] = 0.0 + + ce_loss = nn.CrossEntropyLoss(weight=class_weights, + label_smoothing=args.label_smoothing) + lovasz_loss = LovaszSoftmaxLoss(ignore_indices=[0, C.N_CLASSES - 1]) + bce_loss = nn.BCEWithLogitsLoss() + + # ---- optimizer / EMA ---------------------------------------------------- + optimizer = torch.optim.AdamW( + build_param_groups(net_ref, args.base_lr, args.encoder_lr_mult, + args.wd), + lr=args.base_lr, betas=(0.9, 0.95)) + scaler = GradScaler() + ema = ModelEMA(network, decay=args.ema_decay) + + if rank == 0: + n_params = sum(p.numel() for p in network.parameters() if p.requires_grad) + n_enc = sum(p.numel() for n_, p in net_ref.named_parameters() + if n_.startswith("utae.")) + print(f"[FT-v2] params={n_params/1e6:.2f}M (encoder {n_enc/1e6:.2f}M)", + flush=True) + + # ---- resume -------------------------------------------------------------- + os.makedirs(out_dir, exist_ok=True) + latest_path = out_dir / "latest.tar" + start_epoch, best_raw, best_ema = 0, {"miou": -1.0}, {"miou": -1.0} + best_monitor, patience_counter, history = -1.0, 0, [] + + resume_from = None + if args.resume == "auto": + resume_from = latest_path if latest_path.is_file() else None + elif args.resume not in ("none", ""): + resume_from = Path(args.resume) + if not resume_from.is_file(): + raise FileNotFoundError(f"--resume: no such file {resume_from}") + + if resume_from is not None: + ck = torch.load(resume_from, map_location="cpu", weights_only=False) + net_ref.load_state_dict(ck["model_state_dict"]) + ema.module.load_state_dict(ck["ema_state_dict"]) + ema.updates = ck.get("ema_updates", 0) + optimizer.load_state_dict(ck["optimizer_state_dict"]) + scaler.load_state_dict(ck["scaler_state_dict"]) + best_raw = ck["best_raw"]; best_ema = ck["best_ema"] + best_monitor = ck.get("best_monitor", -1.0) + patience_counter = ck.get("patience_counter", 0) + history = ck.get("history", []) + start_epoch = int(ck["epoch"]) + 1 + if rank == 0: + print(f"[FT-v2] RESUMED from {resume_from} (finished epoch " + f"{ck['epoch']}) -> epoch {start_epoch}/{args.epochs}", + flush=True) + if start_epoch >= args.epochs: + print("[FT-v2] already complete; nothing to do.", flush=True) + cleanup_distributed() + return + elif rank == 0: + print(f"[FT-v2] starting fresh (--resume={args.resume})", flush=True) + + # ---- training loop ------------------------------------------------------- + gstep = start_epoch * steps_per_epoch + hi = C.PATCH_SIZE - args.crop_size + + for epoch in range(start_epoch, args.epochs): + if sampler is not None: + sampler.set_epoch(epoch) + network.train() + ep_start = time.time() + ep_loss, n_steps = 0.0, 0 + stop_flag = False + + for it, ((xp, pos, _days), yp) in enumerate(train_dl): + if args.limit_batches and it >= args.limit_batches: + break + xp = xp.to(device, non_blocking=True) # (B,T,10,128,128) + pos = pos.to(device, non_blocking=True) + yp = yp.to(device, non_blocking=True) # (B,128,128) + + if args.official_crops or args.fixed_crops: + crop_list = [crop_ij(xp, yp, i, j, C.PATCH_SIZE // args.crop_size) + for (i, j) in [tuple(x) for x in C.FT_CROP_IJ]] + else: + crop_list = [] + for _ in range(n_crops): + i = int(torch.randint(0, hi + 1, ())) + j = int(torch.randint(0, hi + 1, ())) + crop_list.append( + (xp[:, :, :, i:i + args.crop_size, + j:j + args.crop_size], + yp[:, i:i + args.crop_size, j:j + args.crop_size])) + + for xc, yc in crop_list: + pos_c = pos + if not args.no_aug: + xc, yc = aug_dihedral(xc, yc) + xc, pos_c = aug_temporal_subsample(xc, pos_c) + xc = aug_frame_dropout(xc) + xc = aug_spectral(xc) + bnd_gt = compute_boundary_target(yc) + + optimizer.zero_grad(set_to_none=True) + with autocast(): + out = network(xc, pos_c) + + sem_logits = out["sem_logits"].float() + bnd_logits = out["bnd_logits"].float().squeeze(1) + refined_logits = out["refined_logits"].float() + + loss = (ce_loss(sem_logits, yc) + + 0.75 * lovasz_loss(sem_logits, yc) + + ce_loss(refined_logits, yc) + + 0.75 * lovasz_loss(refined_logits, yc) + + 0.5 * bce_loss(bnd_logits, bnd_gt)) + + if not torch.isfinite(loss): + optimizer.zero_grad(set_to_none=True) + continue + + scaler.scale(loss).backward() + scaler.unscale_(optimizer) + torch.nn.utils.clip_grad_norm_(network.parameters(), + max_norm=5.0) + set_lrs(optimizer, + lr_factor(gstep, total_steps, warmup_steps, + args.min_lr_ratio)) + scaler.step(optimizer) + scaler.update() + ema.update(network) + gstep += 1 + + ep_loss += loss.item() + n_steps += 1 + + if rank == 0 and it % 10 == 0: + print(f" ep {epoch:3d} batch {it:3d}/{len(train_dl)} " + f"step {n_steps:3d}/{steps_per_epoch} " + f"loss={loss.item():.4f} " + f"lr={optimizer.param_groups[-1]['lr']:.2e} " + f"t={time.time()-ep_start:.0f}s", flush=True) + + # ---- validation: raw + EMA ------------------------------------------ + if rank == 0: + m_raw = validate(net_ref, val_dl, device, args.crop_size, + args.limit_batches) + m_ema = validate(ema.module, val_dl, device, args.crop_size, + args.limit_batches) + ep_sec = time.time() - ep_start + mean_loss = ep_loss / max(n_steps, 1) + + history.append({ + "epoch": epoch, "train_loss": mean_loss, + "lr": optimizer.param_groups[-1]["lr"], + "raw": {k: m_raw[k] for k in ("miou", "oa", "mf1", "kappa")}, + "ema": {k: m_ema[k] for k in ("miou", "oa", "mf1", "kappa")}, + "epoch_sec": ep_sec, + }) + with open(out_dir / "history.json", "w") as f: + json.dump(history, f, indent=1) + + improved = False + if m_raw["miou"] > best_raw["miou"]: + best_raw = {"miou": m_raw["miou"], "epoch": epoch} + torch.save(pack_checkpoint(net_ref.state_dict(), epoch, + m_raw, args.seed, "raw"), + out_dir / "model_best_raw.tar") + improved = True + if m_ema["miou"] > best_ema["miou"]: + best_ema = {"miou": m_ema["miou"], "epoch": epoch} + torch.save(pack_checkpoint(ema.module.state_dict(), epoch, + m_ema, args.seed, "ema"), + out_dir / "model_best_ema.tar") + improved = True + + monitor = max(m_raw["miou"], m_ema["miou"]) + if monitor > best_monitor: + best_monitor = monitor + patience_counter = 0 + else: + patience_counter += 1 + + print(f"[ep {epoch:3d} DONE] loss={mean_loss:.4f} " + f"raw_mIoU={m_raw['miou']:.4f} ema_mIoU={m_ema['miou']:.4f} " + f"best_raw={best_raw['miou']:.4f}@{best_raw['epoch']} " + f"best_ema={best_ema['miou']:.4f}@{best_ema['epoch']} " + f"patience={patience_counter}/{args.patience} " + f"t={ep_sec:.0f}s", flush=True) + if improved or (epoch % args.print_every == 0): + print_metrics(m_raw, f"ep {epoch} RAW") + print_metrics(m_ema, f"ep {epoch} EMA") + + # resumable latest.tar every epoch + tmp = out_dir / "latest.tar.tmp" + torch.save({ + "epoch": epoch, + "model_state_dict": net_ref.state_dict(), + "ema_state_dict": ema.module.state_dict(), + "ema_updates": ema.updates, + "optimizer_state_dict": optimizer.state_dict(), + "scaler_state_dict": scaler.state_dict(), + "best_raw": best_raw, "best_ema": best_ema, + "best_monitor": best_monitor, + "patience_counter": patience_counter, + "history": history, + "args": vars(args), + }, tmp) + os.replace(tmp, latest_path) + + if args.patience > 0 and patience_counter >= args.patience: + print(f"[EARLY STOP] best_raw={best_raw} best_ema={best_ema}", + flush=True) + stop_flag = True + + # keep ranks in step and share rank 0's early-stop decision + if world > 1: + flag = torch.tensor([1 if stop_flag else 0], device=device) + dist.broadcast(flag, src=0) + stop_flag = bool(flag.item()) + if stop_flag: + break + + if rank == 0: + print(f"\n[FT-v2 COMPLETE] best_raw={best_raw} best_ema={best_ema}", + flush=True) + print(f"[FT-v2] checkpoints in {out_dir}", flush=True) + cleanup_distributed() + + +if __name__ == "__main__": + main() diff --git a/ablations/10_plateau_breakthrough/workspace/foundation_models/tessera_small/README.md b/ablations/10_plateau_breakthrough/workspace/foundation_models/tessera_small/README.md new file mode 100644 index 0000000000000000000000000000000000000000..606a67777900a1a4a7a56352c2717ad3b59da1e9 --- /dev/null +++ b/ablations/10_plateau_breakthrough/workspace/foundation_models/tessera_small/README.md @@ -0,0 +1,274 @@ +--- +language: +- en +library_name: pytorch +license: cc0-1.0 +license_name: cc0 +license_link: https://creativecommons.org/publicdomain/zero/1.0/ +pipeline_tag: image-feature-extraction +tags: +- geospatial +- earth-observation +- remote-sensing +- foundation-model +- sentinel-1 +- sentinel-2 +- sar +- multispectral +- temporal +- pixel-embedding +- self-supervised-learning +- barlow-twins +- knowledge-distillation +- matryoshka +provider: University of Cambridge / ucam-eo +funder: UKRI MR/Z505456/1; AIRR DAWN; AMD; Vultr; AIRR Isambard AI; STFC Durham DiRAC + HPC Facility; Microsoft AI For Good Lab; Tarides; Jane Street; Google; Dr. Robert + Sansom; John Bernstein +embedding_spatial_types: +- pixel +embedding_temporal_type: +- multi-date +embedding_spatial_context: spatial context determined by embedding spatial type +embedding_temporal_context: annual multi-temporal context from valid Sentinel-1 and + Sentinel-2 observations for the same pixel +embedding_dimension: 128 +description: TESSERA v2 Small (7.11M parameters) is a compact pixel-wise geospatial + foundation encoder for multimodal Sentinel-1/2 time series, distilled from the 2.06-billion-parameter + TESSERA v2 2B teacher (geotessera/TESSERA-V-2.0-2B-Teacher). It emits a 128-dimensional + Matryoshka embedding whose first K coordinates are independently usable for K in + {16, 32, 64, 128}, so storage can be traded against accuracy without retraining. +compression: 'Native output is fp32 128-d. Two orthogonal compression paths are supported: + (1) Matryoshka truncation -- keep the first 16/32/64 dimensions with no retraining; + (2) linear int8 quantization via the bundled quantize.py, storing an int8 array + plus a float32 per-pixel scale, reconstructed as int8.astype(float32) * scales[..., + None].' +intention: Scientific research and downstream geospatial analysis, including environmental + monitoring, conservation, habitat mapping, carbon and biomass estimation, agricultural + monitoring, crop mapping, food security analysis, climate change research, and sustainable + land-use applications. +cautions: TESSERA embeddings are annual, 10m spectral-temporal representations, not + raw imagery and not real-time monitoring data. Accuracy may degrade in regions or + years with very few valid observations, and users should validate performance for + their own task and geography. The Sentinel-2 input channel order used by this model + is NOT the conventional ascending-wavelength order -- see the Input contract section. + Benchmark scores reported in the TESSERA v2 preprint were measured on students distilled + from the 1B teacher and do not describe these checkpoints; numbers for the 2B-distilled + students will be published separately. +precomputed_embeddings: 'no' +publication_link: https://arxiv.org/abs/2607.03949 +model_architecture: Two per-modality backbones (Sentinel-2 and merged Sentinel-1), + each an MLP band embedding plus sinusoidal day-of-year positional encoding, a 4-layer + post-LN Transformer encoder (d_model=256, 4 heads, FFN=1024, ReLU) and single-head + softmax attention pooling over time; concat fusion into an MLP dim_reducer ending + in a non-affine LayerNorm that yields a scale-locked 128-d output. QK-norm is disabled. +distillation: + teacher: TESSERA v2 2B pixel-wise teacher (2,064,266,242 parameters, 1024-d output) + — geotessera/TESSERA-V-2.0-2B-Teacher + objective: Matryoshka distillation -- a separate linear head per prefix length K + in {16, 32, 64, 128} reconstructs the full frozen teacher embedding from the student's + first K coordinates, which imposes an ordering on the student's coordinates that + self-supervision alone cannot supply. + projector: training-only; discarded at inference + student_parameters: 7112322 +inference: + data_types: + - multispectral + - SAR + product_names: + - Sentinel-2 L2A + - Sentinel-1 RTC + patch_size: 1 + temporal_context: annual multi-date time series; every valid observation per pixel + is used and the observation count is bucketized to the nearest bin in 8, 16, ..., + 256 +--- + +# TESSERA v2 — Small pixel student (7.11 M) + +A compact per-pixel encoder for Sentinel-2 + Sentinel-1 satellite time series, +**distilled from the [TESSERA v2 2B teacher](https://huggingface.co/geotessera/TESSERA-V-2.0-2B-Teacher)**. It maps one +pixel's annual observation history to a **128-dimensional Matryoshka +embedding**: the first K dimensions are independently usable for +K ∈ {16, 32, 64, 128}, so you can truncate to 16/32/64 dims with no +retraining and no separate checkpoint. + +Part of the TESSERA v2 release described in +[*TESSERA v2: Scaling Pixel-wise Earth Foundation Models*](https://arxiv.org/abs/2607.03949). + +## Where this model comes from + +The teacher — [`geotessera/TESSERA-V-2.0-2B-Teacher`](https://huggingface.co/geotessera/TESSERA-V-2.0-2B-Teacher) — is a +2,064,266,242-parameter pixel-wise encoder producing 1024-d representations. +Evaluating 2.06 B parameters per pixel makes it impractical to deploy at tile +or global scale, so it is released mainly as a distillation target. This +student is one of four compact encoders distilled from it for actual use. + +Distillation uses a **Matryoshka objective**: a separate linear head per prefix +length K ∈ {16, 32, 64, 128} reconstructs the *full* frozen teacher embedding +from the student's first K coordinates. That is what imposes an ordering on the +student's coordinates — a redundancy-reduction objective like Barlow Twins +identifies subspaces only up to a rotation, so self-supervised prefix losses +alone cannot produce a usable nesting. The projection heads are training-only +and are discarded at inference; this checkpoint contains the encoder alone. + +> **Note on normalization.** The students z-score Sentinel-1 ascending and +> descending with **their own per-source statistics before merging** the two +> into one stream. The teacher instead merges them in raw units and applies a +> single set of pooled statistics. If you move data between the two, do not +> carry the normalization across. + +## The family + +| Variant | Repo | Parameters | `latent_dim` | `d_model` | Layers | FFN | +|---|---|---|---|---|---|---| +| Nano | [`geotessera/TESSERA-V-2.0-2B-N`](https://huggingface.co/geotessera/TESSERA-V-2.0-2B-N) | 1.07 M | 36 | 144 | 2 | 384 | +| Small | [`geotessera/TESSERA-V-2.0-2B-S`](https://huggingface.co/geotessera/TESSERA-V-2.0-2B-S) | 7.11 M | 64 | 256 | 4 | 1024 | +| Medium | [`geotessera/TESSERA-V-2.0-2B-M`](https://huggingface.co/geotessera/TESSERA-V-2.0-2B-M) | 21.03 M | 110 | 440 | 4 | 1792 | +| Large | [`geotessera/TESSERA-V-2.0-2B-L`](https://huggingface.co/geotessera/TESSERA-V-2.0-2B-L) | 43.83 M | 160 | 640 | 4 | 2560 | + +All four share identical inference code and the same 128-d Matryoshka output +contract — only capacity differs. Nano targets edge/on-device use, Medium is +the balanced default, Large is intended for provider-side global inference. + +## Architecture + +| `latent_dim` | `d_model` | layers | heads | FFN | output | parameters | +|---|---|---|---|---|---|---| +| 64 | 256 | 4 | 4 | 1024 | 128 (Matryoshka) | **7,112,322** | + +Two per-modality backbones (Sentinel-2, and ascending+descending Sentinel-1 +merged into one stream). Each backbone is an MLP band embedding plus a +sinusoidal day-of-year positional encoding, a post-LN Transformer encoder +(ReLU FFN, QK-norm **off**), and single-head softmax attention pooling over +time. The two pooled vectors are concatenated and passed through an MLP +`dim_reducer` that ends in a **non-affine LayerNorm** — so every output +embedding is exactly mean 0 / std 1 across its 128 dimensions. + +## Input contract + +> [!IMPORTANT] +> **The Sentinel-2 channel order is not the conventional ascending-wavelength +> order.** Feeding bands in the usual B02→B12 order will silently produce +> garbage embeddings. The model expects exactly: +> +> ``` +> B04 B02 B03 B08 B8A B05 B06 B07 B11 B12 +> ``` +> +> Sentinel-1 is `VV VH`, ascending and descending concatenated along time. + +- **Sentinel-2**: `(T, 10)` per pixel, raw L2A reflectance (unscaled DN), plus a + `(T,)` day-of-year array and a `(T,)` validity mask (1 = clear, 0 = cloud). +- **Sentinel-1**: `(T, 2)` per pixel, raw RTC values, plus day-of-year. + All-zero timesteps are treated as missing. +- Day-of-year is passed as a **raw integer 1–365** (not normalized). + +`infer.py` performs standardization internally (`standardize=True`, the +default): Sentinel-2 uses per-band statistics, and Sentinel-1 ascending and +descending each use **their own** statistics, applied *before* the two are +merged into a single stream. Pass `standardize=False` only if your arrays are +already z-scored with those exact constants (they are in `model.py`). + +Per pixel, the number of valid observations is bucketized to the nearest bin in +`{8, 16, 24, ..., 256}`, then padded or subsampled to that bin size — matching +the training-time procedure. Pixels sharing a bin are batched together. + +## Usage + +```python +from huggingface_hub import snapshot_download +import sys, torch, numpy as np + +path = snapshot_download("geotessera/TESSERA-V-2.0-2B-S") +sys.path.insert(0, path) + +from model import load_model +from infer import encode_tile, encode_pixels +from quantize import quantize as quantize_int8 + +model = load_model(f"{path}/ckpt/student_small.pt", torch.device("cuda")) + +# One tile -> (H, W, 128) embedding map. +# s2_bands (T,H,W,10) raw reflectance, s2_doys (T,), s2_masks (T,H,W) 1=valid +# s1_asc / s1_desc (T,H,W,2) raw + their own doys +emb = encode_tile( + model, s2_bands, s2_doys, s2_masks=s2_masks, + s1_asc_bands=s1_asc, s1_asc_doys=s1_asc_doys, + s1_desc_bands=s1_desc, s1_desc_doys=s1_desc_doys, + batch_pixels=4096, device=torch.device("cuda"), +) # -> (H, W, 128) float32 + +emb16 = emb[..., :16] # Matryoshka truncation, 1/8 the storage + +code, scale = quantize_int8(emb) # int8 (H,W,128) + per-pixel float32 scale +recon = code.astype("float32") * scale[..., None] +``` + +For per-pixel time series rather than a gridded tile, call `encode_pixels()` on +`(N, T, C)` arrays — same keyword arguments, returns `(N, 128)`. + +## Files + +``` +TESSERA-V-2.0-2B-S/ +├── model.py PixelStudent + load_model() (torch + numpy only) +├── infer.py encode_pixels() / encode_tile() +├── quantize.py linear int8 quantize() / dequantize() +├── __init__.py package-style re-exports +├── requirements.txt torch>=2.0, numpy>=1.21 +└── ckpt/student_small.pt +``` + +The checkpoint is a plain `torch.save` payload with two keys, `model` (the +`state_dict`) and `args` (the architecture config `load_model` reads). No +custom classes are pickled, and nothing outside `torch` and `numpy` is needed. + +## Intended use and limitations + +Intended for scientific research and downstream geospatial analysis: +environmental monitoring, conservation and habitat mapping, biomass and carbon +estimation, crop mapping and agricultural monitoring, land-use and land-cover +work. + +Limitations: + +- Embeddings are **annual, 10 m spectral-temporal representations** — not raw + imagery, and not a real-time monitoring product. +- Quality degrades where a pixel has very few valid observations (persistent + cloud, sparse revisit). +- Validate on your own task and geography before operational use. +- **No benchmark scores are quoted here.** The results in the TESSERA v2 + preprint were measured on students distilled from the **1B** teacher; these + checkpoints are distilled from the **2B** teacher and their evaluation will + be published separately. + +## License + +Released under **CC0 1.0** (public domain dedication), matching the rest of the +TESSERA release. Use of TESSERA is additionally governed by the project's +[Acceptable Use Policy](https://github.com/ucam-eo/tessera/blob/master/aup.md). + +## Citation + +```bibtex +@article{tessera_v2_2026, + title = {TESSERA v2: Scaling Pixel-wise Earth Foundation Models}, + author = {Feng, Zhengpeng and Jaffer, Sadiq and Shokar, Ira and + Knezevic, Jovana and Elvers, Mark and Atzberger, Clement and + Young, Robin and Naik, Aneesh and Robinson, Niall and + Blake, Andrew and Coomes, David and Madhavapeddy, Anil and + Keshav, Srinivasan}, + journal = {arXiv preprint arXiv:2607.03949}, + year = {2026}, + url = {https://arxiv.org/abs/2607.03949} +} +``` + +## Links + +- Teacher model: [`geotessera/TESSERA-V-2.0-2B-Teacher`](https://huggingface.co/geotessera/TESSERA-V-2.0-2B-Teacher) +- Code and releases: https://github.com/ucam-eo/tessera +- Preprint: https://arxiv.org/abs/2607.03949 +- Project website: https://geotessera.org/ +- Earlier releases: [`TESSERA-V-1.0`](https://huggingface.co/geotessera/TESSERA-V-1.0), [`TESSERA-V-1.1`](https://huggingface.co/geotessera/TESSERA-V-1.1) \ No newline at end of file diff --git a/ablations/10_plateau_breakthrough/workspace/foundation_models/tessera_small/ckpt/student_small.pt b/ablations/10_plateau_breakthrough/workspace/foundation_models/tessera_small/ckpt/student_small.pt new file mode 100644 index 0000000000000000000000000000000000000000..f7656751abb054424e3b19d5e20f927f835e40df --- /dev/null +++ b/ablations/10_plateau_breakthrough/workspace/foundation_models/tessera_small/ckpt/student_small.pt @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:92619d4ffc2936895f145fdcf710140b58c23c860e02f01873828b10c6958d95 +size 28488531 diff --git a/ablations/10_plateau_breakthrough/workspace/foundation_models/tessera_small/infer.py b/ablations/10_plateau_breakthrough/workspace/foundation_models/tessera_small/infer.py new file mode 100644 index 0000000000000000000000000000000000000000..2a4a38308320909e7790417425254d3a96a49523 --- /dev/null +++ b/ablations/10_plateau_breakthrough/workspace/foundation_models/tessera_small/infer.py @@ -0,0 +1,307 @@ +"""All-doy per-pixel inference helpers for Pixel Student V1.1. + +Bin-padding semantics used at training time — at each pixel: + + - n_s2 = count of frames where this pixel's S2 mask == 1 + - n_s1 = count of MERGED s1 frames (asc + desc concat) with non-zero bands + - bin = smallest of {8, 16, 24, ..., 256} >= n_obs (capped at 256) + - pad/subsample: linspace if n>=B, else split-and-repeat + +Pixels in a (batch / tile) sharing the same (s2_bin, s1_bin) tuple are +batched together (consistent T per batch). + +Two entry points: + - encode_pixels(...): batch of independent per-pixel time series. + - encode_tile(...): one (T, H, W, C)-style tile -> (H, W, 128) emb map. + +S1 inputs are MERGED (asc + desc concatenated along time) before binning, +matching how the model was trained. +""" +from collections import defaultdict +from typing import List, Optional + +import numpy as np +import torch + +try: # works both as a package and as a standalone folder + from .model import ( + PixelStudentV11, + S1A_BAND_MEAN, S1A_BAND_STD, S1D_BAND_MEAN, S1D_BAND_STD, + S2_BAND_MEAN, S2_BAND_STD, + ) +except ImportError: # imported as plain modules from inside this folder + from model import ( + PixelStudentV11, + S1A_BAND_MEAN, S1A_BAND_STD, S1D_BAND_MEAN, S1D_BAND_STD, + S2_BAND_MEAN, S2_BAND_STD, + ) + + +BIN_EDGES = list(range(8, 257, 8)) # [8, 16, 24, ..., 256] + + +def get_bin_size(n_obs: int) -> int: + if n_obs <= 0: + return 0 + for b in BIN_EDGES: + if n_obs <= b: + return b + return BIN_EDGES[-1] + + +def _vec_get_bin_size(n_obs: np.ndarray) -> np.ndarray: + out = np.full_like(n_obs, BIN_EDGES[-1]) + out[n_obs <= 0] = 0 + for b in reversed(BIN_EDGES): + out = np.where((n_obs > 0) & (n_obs <= b), b, out) + return out + + +def _pad_pattern(n: int, B: int) -> np.ndarray: + """(B,) int64 indices into [0, n) reproducing the training pad_to_bin.""" + if n == 0: + return np.zeros(B, dtype=np.int64) + if n >= B: + return np.linspace(0, n - 1, B, dtype=np.int64) + remain = B - n + if remain <= n: + groups = np.array_split(np.arange(n), remain) + fill = np.array([gp[len(gp) // 2] for gp in groups], dtype=np.int64) + else: + fill = (np.arange(remain) % n).astype(np.int64) + return np.concatenate([np.arange(n, dtype=np.int64), fill]) + + +def _build_source_indices(valid_per_pix: np.ndarray, B: int) -> np.ndarray: + """Vectorized: O(unique_n) loop instead of O(G). + + Within a bin group all pixels have n_obs in (prev_bin, B], so at most + `bin_step` distinct n values exist (typically <=8). We: + 1) stable-sort `~valid` so valid time-indices come first per row, + 2) group pixels by n_obs and compute the pad pattern once per n-subgroup, + 3) gather sorted_pos[pix, pattern] in one shot per n-subgroup. + + valid_per_pix: (G, T) bool. Returns (G, B) int64. + """ + G, T = valid_per_pix.shape + src = np.zeros((G, B), dtype=np.int64) + if G == 0 or B == 0: + return src + n_per = valid_per_pix.sum(axis=1).astype(np.int64) + sorted_pos = np.argsort(~valid_per_pix, axis=1, kind="stable").astype(np.int64) + unique_n, inverse = np.unique(n_per, return_inverse=True) + for ki, n_val in enumerate(unique_n): + n = int(n_val) + if n == 0: + continue + pix = np.where(inverse == ki)[0] + pattern = _pad_pattern(n, B) + src[pix] = sorted_pos[pix][:, pattern] + return src + + +def _merge_s1(s1_asc_bands, s1_asc_doys, s1_desc_bands, s1_desc_doys): + """Concat asc + desc along the time axis. Either may be None or empty.""" + parts_b, parts_d = [], [] + if s1_asc_bands is not None and s1_asc_bands.size > 0: + parts_b.append(s1_asc_bands); parts_d.append(s1_asc_doys) + if s1_desc_bands is not None and s1_desc_bands.size > 0: + parts_b.append(s1_desc_bands); parts_d.append(s1_desc_doys) + if not parts_b: + return np.zeros((0, 0, 0, 2), dtype=np.float32), np.zeros((0,), dtype=np.float32) + return np.concatenate(parts_b, axis=0), np.concatenate(parts_d, axis=0) + + +@torch.no_grad() +def encode_pixels( + model: PixelStudentV11, + s2_bands: np.ndarray, + s2_doys: np.ndarray, + s1_asc_bands: Optional[np.ndarray] = None, + s1_asc_doys: Optional[np.ndarray] = None, + s1_desc_bands: Optional[np.ndarray] = None, + s1_desc_doys: Optional[np.ndarray] = None, + s2_masks: Optional[np.ndarray] = None, + batch_pixels: int = 1024, + device: torch.device = torch.device("cuda"), + standardize: bool = True, +) -> np.ndarray: + """Encode B independent pixels' time series into 128-d embeddings. + + Inputs are NumPy arrays in raw units — this function handles + standardization with the v1.1 stats. + + Args: + s2_bands : (B, T_s2, 10) + s2_doys : (B, T_s2) ints (1..365) + s1_asc_bands : (B, T_s1a, 2) raw (or None) + s1_asc_doys : (B, T_s1a) + s1_desc_bands: (B, T_s1d, 2) raw (or None) + s1_desc_doys : (B, T_s1d) + s2_masks : (B, T_s2) 1=valid, 0=cloud (or None -> all valid) + batch_pixels : max forward batch per (bin-tuple) group + standardize : z-score with the v1.1 stats (set False if pre-z-scored) + + Returns: (B, 128) float32. + """ + B = s2_bands.shape[0] + out = np.empty((B, model.repr_dim), dtype=np.float32) + if B == 0: + return out + + T_s2 = s2_bands.shape[1] + + # Build per-pixel S1 (merged) arrays. asc and desc each have their own + # mean/std — z-score per-source BEFORE concatenation so the merged S1 + # stream the model consumes is already standardized. + if s1_asc_bands is not None and s1_asc_bands.size > 0: + s1a_b = s1_asc_bands.astype(np.float32) + s1a_valid = np.any(s1a_b != 0, axis=-1) # raw valid BEFORE z-score (bugfix) + if standardize: + s1a_b = (s1a_b - S1A_BAND_MEAN) / (S1A_BAND_STD + 1e-9) + if s1_asc_doys.ndim == 1: + s1a_d = np.broadcast_to(s1_asc_doys[None, :], (B, s1_asc_doys.shape[0])).copy() + else: + s1a_d = s1_asc_doys + else: + s1a_b = np.zeros((B, 0, 2), dtype=np.float32) + s1a_d = np.zeros((B, 0), dtype=np.float32) + s1a_valid = np.zeros((B, 0), dtype=bool) + + if s1_desc_bands is not None and s1_desc_bands.size > 0: + s1d_b = s1_desc_bands.astype(np.float32) + s1d_valid = np.any(s1d_b != 0, axis=-1) # raw valid BEFORE z-score (bugfix) + if standardize: + s1d_b = (s1d_b - S1D_BAND_MEAN) / (S1D_BAND_STD + 1e-9) + if s1_desc_doys.ndim == 1: + s1d_d = np.broadcast_to(s1_desc_doys[None, :], (B, s1_desc_doys.shape[0])).copy() + else: + s1d_d = s1_desc_doys + else: + s1d_b = np.zeros((B, 0, 2), dtype=np.float32) + s1d_d = np.zeros((B, 0), dtype=np.float32) + s1d_valid = np.zeros((B, 0), dtype=bool) + + # Concat along time axis to get merged S1 (already z-scored above). + if s1a_b.shape[1] + s1d_b.shape[1] > 0: + s1_b_merged = np.concatenate([s1a_b, s1d_b], axis=1) # (B, T_s1, 2) + s1_d_merged = np.concatenate([s1a_d, s1d_d], axis=1) # (B, T_s1) + else: + s1_b_merged = np.zeros((B, 0, 2), dtype=np.float32) + s1_d_merged = np.zeros((B, 0), dtype=np.float32) + T_s1 = s1_b_merged.shape[1] + + # Per-pixel valid masks. + if s2_masks is not None: + s2_v = s2_masks.astype(bool) # (B, T_s2) + else: + s2_v = np.ones((B, T_s2), dtype=bool) + s1_v = (np.concatenate([s1a_valid, s1d_valid], axis=1) + if (s1a_valid.shape[1] + s1d_valid.shape[1]) > 0 + else np.zeros((B, 0), dtype=bool)) # (B, T_s1) + + n_s2 = s2_v.sum(axis=1) + n_s1 = s1_v.sum(axis=1) + s2_bin = _vec_get_bin_size(n_s2).astype(np.int32) + s1_bin = _vec_get_bin_size(n_s1).astype(np.int32) + keys = s2_bin * 1000 + s1_bin + unique_keys, inverse = np.unique(keys, return_inverse=True) + + for ki, key in enumerate(unique_keys): + s2_b_size = int(key // 1000); s1_b_size = int(key % 1000) + idxs = np.where(inverse == ki)[0] + if s2_b_size == 0 and s1_b_size == 0: + continue + s2_B = max(s2_b_size, 1); s1_B = max(s1_b_size, 1) + for s in range(0, idxs.size, batch_pixels): + chunk = idxs[s : s + batch_pixels] + G = len(chunk) + s2_in = np.zeros((G, s2_B, 11), dtype=np.float32) + s1_in = np.zeros((G, s1_B, 3), dtype=np.float32) + + if s2_b_size > 0: + src = _build_source_indices(s2_v[chunk], s2_B) + gathered = np.take_along_axis( + s2_bands[chunk], src[:, :, None].repeat(10, axis=2), axis=1 + ) + if standardize: + gathered = (gathered - S2_BAND_MEAN) / (S2_BAND_STD + 1e-9) + s2_in[:, :, :10] = gathered + if s2_doys.ndim == 1: + s2_doys_pix = np.broadcast_to(s2_doys[None, :], (G, T_s2)) + else: + s2_doys_pix = s2_doys[chunk] + s2_in[:, :, 10] = np.take_along_axis(s2_doys_pix, src, axis=1).astype(np.float32) + + if s1_b_size > 0: + src = _build_source_indices(s1_v[chunk], s1_B) + gathered = np.take_along_axis( + s1_b_merged[chunk], src[:, :, None].repeat(2, axis=2), axis=1 + ) + # s1_b_merged was already z-scored per-source (S1A/S1D) above. + s1_in[:, :, :2] = gathered + s1_in[:, :, 2] = np.take_along_axis(s1_d_merged[chunk], src, axis=1).astype(np.float32) + + s2_t = torch.from_numpy(s2_in).to(device, non_blocking=True) + s1_t = torch.from_numpy(s1_in).to(device, non_blocking=True) + emb = model.encode(s2_t, s1_t) + out[chunk] = emb.float().cpu().numpy() + return out + + +@torch.no_grad() +def encode_tile( + model: PixelStudentV11, + s2_bands: np.ndarray, + s2_doys: np.ndarray, + s2_masks: Optional[np.ndarray] = None, + s1_asc_bands: Optional[np.ndarray] = None, + s1_asc_doys: Optional[np.ndarray] = None, + s1_desc_bands: Optional[np.ndarray] = None, + s1_desc_doys: Optional[np.ndarray] = None, + batch_pixels: int = 1024, + device: torch.device = torch.device("cuda"), + standardize: bool = True, +) -> np.ndarray: + """Encode one tile into an (H, W, 128) embedding map. + + Args: + s2_bands : (T_s2, H, W, 10) raw reflectance + s2_doys : (T_s2,) day-of-year per S2 frame + s2_masks : (T_s2, H, W) or None (1=valid) + s1_asc_bands : (T_s1a, H, W, 2) optional + s1_asc_doys : (T_s1a,) optional + s1_desc_bands: (T_s1d, H, W, 2) optional + s1_desc_doys : (T_s1d,) optional + + Returns: (H, W, 128) float32. + """ + T_s2, H, W, _ = s2_bands.shape + N = H * W + s2_flat = s2_bands.transpose(1, 2, 0, 3).reshape(N, T_s2, 10) + s2_doys_flat = np.broadcast_to(s2_doys[None, :], (N, T_s2)).copy() + s2_masks_flat = (s2_masks.transpose(1, 2, 0).reshape(N, T_s2) + if s2_masks is not None else None) + + if s1_asc_bands is not None and s1_asc_bands.size > 0: + Ta = s1_asc_bands.shape[0] + s1a_flat = s1_asc_bands.transpose(1, 2, 0, 3).reshape(N, Ta, 2) + s1a_doys_flat = np.broadcast_to(s1_asc_doys[None, :], (N, Ta)).copy() + else: + s1a_flat = None; s1a_doys_flat = None + + if s1_desc_bands is not None and s1_desc_bands.size > 0: + Td = s1_desc_bands.shape[0] + s1d_flat = s1_desc_bands.transpose(1, 2, 0, 3).reshape(N, Td, 2) + s1d_doys_flat = np.broadcast_to(s1_desc_doys[None, :], (N, Td)).copy() + else: + s1d_flat = None; s1d_doys_flat = None + + out = encode_pixels( + model, s2_flat, s2_doys_flat, + s1_asc_bands=s1a_flat, s1_asc_doys=s1a_doys_flat, + s1_desc_bands=s1d_flat, s1_desc_doys=s1d_doys_flat, + s2_masks=s2_masks_flat, + batch_pixels=batch_pixels, device=device, standardize=standardize, + ) + return out.reshape(H, W, model.repr_dim) diff --git a/ablations/10_plateau_breakthrough/workspace/foundation_models/tessera_small/model.py b/ablations/10_plateau_breakthrough/workspace/foundation_models/tessera_small/model.py new file mode 100644 index 0000000000000000000000000000000000000000..aaf4e894736d569c8aeebfeba2990b71b29b3b66 --- /dev/null +++ b/ablations/10_plateau_breakthrough/workspace/foundation_models/tessera_small/model.py @@ -0,0 +1,281 @@ +"""Standalone TESSERA Pixel Student — 128-d Matryoshka pixel encoder. + +Self-contained: only torch + numpy required. Two backbones (S2 + merged S1), +each a small per-modality TransformerEncoder with attention pooling, then +concat fusion + dim_reducer. Native output 128-d, Matryoshka-ordered: the +first K dims are independently usable for K in {16, 32, 64, 128}. + +Distilled from a TESSERA teacher. This is the encoder only — everything used +solely for training has been removed. +""" +import math +from typing import Dict, Optional, Tuple + +import numpy as np +import torch +import torch.nn as nn +import torch.nn.functional as F + + +# ----- Standardization stats (must match training preprocessing) ----- +# S1 ascending and descending use independent stats — applied per-source +# BEFORE merging into the single S1 stream the model consumes. +S2_BAND_MEAN = np.array( + [1633.0042, 1341.1090, 1539.5536, 3054.8269, 3117.4658, + 2004.1648, 2694.7275, 2945.1504, 2266.6079, 1657.3094], + dtype=np.float32, +) +S2_BAND_STD = np.array( + [1999.4603, 2014.7549, 1929.2201, 1754.2493, 1649.9807, + 1936.8988, 1748.6041, 1708.6991, 1207.5250, 1108.6046], + dtype=np.float32, +) +S1A_BAND_MEAN = np.array([5909.3921, 3405.0322], dtype=np.float32) +S1A_BAND_STD = np.array([1507.1750, 1531.2615], dtype=np.float32) +S1D_BAND_MEAN = np.array([5816.1382, 3277.7576], dtype=np.float32) +S1D_BAND_STD = np.array([1554.6475, 1546.4733], dtype=np.float32) + +# S2 input channel order: +S2_BAND_ORDER = ["B04", "B02", "B03", "B08", "B8A", "B05", "B06", "B07", "B11", "B12"] +# S1 input channel order: +S1_BAND_ORDER = ["VV", "VH"] + + +# ===== Vendored building blocks (no qk_norm, ReLU, attention pooling) ===== + + +class TemporalPositionalEncoder(nn.Module): + """Sinusoidal positional encoding using the (raw integer) DOY value.""" + + def __init__(self, d_model: int) -> None: + super().__init__() + self.d_model = d_model + + def forward(self, doy: torch.Tensor) -> torch.Tensor: + position = doy.unsqueeze(-1).float() + div_term = torch.exp( + torch.arange(0, self.d_model, 2, dtype=torch.float, device=doy.device) + * -(math.log(10000.0) / self.d_model) + ) + pe = torch.zeros(doy.shape[0], doy.shape[1], self.d_model, device=doy.device) + pe[:, :, 0::2] = torch.sin(position * div_term) + pe[:, :, 1::2] = torch.cos(position * div_term) + return pe + + +class AttentionPooling(nn.Module): + """Plain single-head softmax attention pool over T. + + A single `Linear(D, 1) -> softmax -> weighted sum`. No GRU, no + LayerNorm. + """ + + def __init__(self, input_dim: int) -> None: + super().__init__() + self.query = nn.Linear(input_dim, 1) + + def forward(self, x: torch.Tensor) -> torch.Tensor: + # x: (B, T, D) -> (B, D) + B, T, D = x.shape + if T == 0: + return torch.zeros(B, D, device=x.device, dtype=x.dtype) + if T == 1: + return x.squeeze(1) + w = torch.softmax(self.query(x), dim=1) + return (w * x).sum(dim=1) + + +class QKNormEncoderLayer(nn.Module): + """Transformer encoder layer identical to `nn.TransformerEncoderLayer` + (post-LN, ReLU FFN, batch_first) EXCEPT it applies per-head RMSNorm to Q and + K before scaled-dot-product attention (QK-norm). QK-norm is the ONLY + difference, so a model built from these is directly comparable to one built + from the standard layer (≈same param count; q/k/v as 3 separate Linears + matches the standard layer's combined in_proj, plus two tiny RMSNorm gains).""" + + def __init__(self, d_model: int, nhead: int, dim_feedforward: int, + dropout: float = 0.1) -> None: + super().__init__() + assert d_model % nhead == 0, f"d_model {d_model} % nhead {nhead} != 0" + self.nhead = nhead + self.head_dim = d_model // nhead + self.q_proj = nn.Linear(d_model, d_model) + self.k_proj = nn.Linear(d_model, d_model) + self.v_proj = nn.Linear(d_model, d_model) + self.out_proj = nn.Linear(d_model, d_model) + self.q_norm = nn.RMSNorm(self.head_dim) + self.k_norm = nn.RMSNorm(self.head_dim) + self.linear1 = nn.Linear(d_model, dim_feedforward) + self.linear2 = nn.Linear(dim_feedforward, d_model) + self.norm1 = nn.LayerNorm(d_model) + self.norm2 = nn.LayerNorm(d_model) + self.dropout = nn.Dropout(dropout) + self.dropout1 = nn.Dropout(dropout) + self.dropout2 = nn.Dropout(dropout) + self._attn_p = float(dropout) + + def _sa(self, x: torch.Tensor) -> torch.Tensor: + B, T, D = x.shape + H, hd = self.nhead, self.head_dim + q = self.q_proj(x).view(B, T, H, hd) + k = self.k_proj(x).view(B, T, H, hd) + v = self.v_proj(x).view(B, T, H, hd) + q = self.q_norm(q); k = self.k_norm(k) # per-head RMSNorm (QK-norm) + q = q.transpose(1, 2); k = k.transpose(1, 2); v = v.transpose(1, 2) # (B,H,T,hd) + o = F.scaled_dot_product_attention( + q, k, v, dropout_p=self._attn_p if self.training else 0.0) + o = o.transpose(1, 2).reshape(B, T, D) + return self.out_proj(o) + + def forward(self, x: torch.Tensor) -> torch.Tensor: + x = self.norm1(x + self.dropout1(self._sa(x))) # post-LN + x = self.norm2(x + self.dropout2(self.linear2(self.dropout(F.relu(self.linear1(x)))))) + return x + + +class TransformerEncoder(nn.Module): + """Per-pixel band embedding + DOY positional + Transformer + attention pooling. + + `enable_qk_norm=False` (default): standard `nn.TransformerEncoderLayer` + (ReLU, no qk_norm). `True`: `QKNormEncoderLayer` stack (same structure + + per-head RMSNorm on Q/K). + """ + + def __init__(self, band_num: int, latent_dim: int, nhead: int = 4, + num_encoder_layers: int = 3, dim_feedforward: int = 1024, + dropout: float = 0.1, max_seq_len: int = 256, + enable_qk_norm: bool = False) -> None: + super().__init__() + input_dim = band_num + self.embedding = nn.Sequential( + nn.Linear(input_dim, latent_dim * 4), + nn.ReLU(), + nn.Linear(latent_dim * 4, latent_dim * 4), + ) + self.temporal_encoder = TemporalPositionalEncoder(d_model=latent_dim * 4) + + self.enable_qk_norm = bool(enable_qk_norm) + if self.enable_qk_norm: + self.transformer_encoder = nn.ModuleList([ + QKNormEncoderLayer(latent_dim * 4, nhead, dim_feedforward, dropout) + for _ in range(num_encoder_layers) + ]) + else: + encoder_layer = nn.TransformerEncoderLayer( + d_model=latent_dim * 4, nhead=nhead, + dim_feedforward=dim_feedforward, dropout=dropout, + activation="relu", batch_first=True, + ) + self.transformer_encoder = nn.TransformerEncoder(encoder_layer, num_layers=num_encoder_layers) + self.attn_pool = AttentionPooling(latent_dim * 4) + + def forward(self, x: torch.Tensor) -> torch.Tensor: + # x: (B, T, band_num + 1) — last channel is the (raw integer) DOY value + bands = x[:, :, :-1] + doy = x[:, :, -1] + bands_embedded = self.embedding(bands) + temporal_encoding = self.temporal_encoder(doy) + x = bands_embedded + temporal_encoding + if self.enable_qk_norm: + for layer in self.transformer_encoder: + x = layer(x) + else: + x = self.transformer_encoder(x) + return self.attn_pool(x) + + +class PixelStudent(nn.Module): + """2-backbone pixel encoder. emb_dim = 128 (Matryoshka-ordered). + + Inputs (per pixel): + s2_x : (B, T_s2, 11) 10 bands + 1 DOY (raw integer 1..365) + s1_x : (B, T_s1, 3) 2 bands + 1 DOY (raw integer; s1a + s1d MERGED) + + encode() returns (B, 128). The first K dims are usable on their own for + K in {16, 32, 64, 128}. + """ + + def __init__( + self, + repr_dim: int = 128, + latent_dim: int = 64, + num_layers: int = 4, + nhead: int = 4, + dim_feedforward: int = 1024, + dropout: float = 0.0, + max_seq_len: int = 256, + matryoshka_dims: Tuple[int, ...] = (16, 32, 64, 128), + enable_qk_norm: bool = False, + ) -> None: + super().__init__() + self.repr_dim = int(repr_dim) + self.enable_qk_norm = bool(enable_qk_norm) + self.matryoshka_dims = tuple(int(d) for d in matryoshka_dims) + for d in self.matryoshka_dims: + if d > repr_dim: + raise ValueError(f"matryoshka cut {d} > repr_dim {repr_dim}") + + def make_enc(band_num: int) -> TransformerEncoder: + return TransformerEncoder( + band_num=band_num, latent_dim=latent_dim, + nhead=nhead, num_encoder_layers=num_layers, + dim_feedforward=dim_feedforward, dropout=dropout, + max_seq_len=max_seq_len, enable_qk_norm=enable_qk_norm, + ) + + self.s2_backbone = make_enc(10) + self.s1_backbone = make_enc(2) + + backbone_out = latent_dim * 4 + fused_in = 2 * backbone_out + self.dim_reducer = nn.Sequential( + nn.Linear(fused_in, fused_in * 2), + nn.LayerNorm(fused_in * 2), + nn.ReLU(inplace=False), + nn.Dropout(0.2), + nn.Linear(fused_in * 2, repr_dim), + # Final non-affine LayerNorm: normalizes the 128-d output to + # per-pixel mean 0 / std 1 (well-conditioned for downstream use). + # No learnable params -> state_dict + param count unchanged. + nn.LayerNorm(repr_dim, elementwise_affine=False), + ) + + def encode(self, s2_x: torch.Tensor, s1_x: torch.Tensor) -> torch.Tensor: + s2 = self.s2_backbone(s2_x) + s1 = self.s1_backbone(s1_x) + fused = torch.cat([s2, s1], dim=-1) + return self.dim_reducer(fused) + + def forward(self, s2_x: torch.Tensor, s1_x: torch.Tensor) -> torch.Tensor: + return self.encode(s2_x, s1_x) + + +# Backwards-compatible alias. +PixelStudentV11 = PixelStudent + + +def load_model(ckpt_path: str, device: torch.device = torch.device("cpu")): + """Load a pretrained pixel student (encoder) from a .pt file.""" + payload = torch.load(ckpt_path, map_location=device, weights_only=False) + cfg = payload.get("args", {}) or {} + matryoshka_dims = tuple( + int(d) for d in str(cfg.get("matryoshka_dims", "16,32,64,128")).split(",") + ) + model = PixelStudent( + repr_dim=int(cfg.get("repr_dim", 128)), + latent_dim=int(cfg.get("latent_dim", 64)), + num_layers=int(cfg.get("num_layers", 4)), + nhead=int(cfg.get("nhead", 4)), + dim_feedforward=int(cfg.get("dim_feedforward", 1024)), + dropout=0.0, + max_seq_len=int(cfg.get("max_seq_len", 256)), + matryoshka_dims=matryoshka_dims, + enable_qk_norm=bool(cfg.get("enable_qk_norm", False)), + ).to(device) + model.load_state_dict(payload["model"]) + model.eval() + return model + + +def count_params(m: nn.Module) -> int: + return sum(p.numel() for p in m.parameters()) diff --git a/ablations/10_plateau_breakthrough/workspace/losses.py b/ablations/10_plateau_breakthrough/workspace/losses.py new file mode 100644 index 0000000000000000000000000000000000000000..5f7cf82bd748ff9733e932e001e7ac339cb9b5b3 --- /dev/null +++ b/ablations/10_plateau_breakthrough/workspace/losses.py @@ -0,0 +1,94 @@ +""" +Lovász-Softmax loss — NaN-safe version for small-batch training. + +Fixes over v1: + - eps guard on union denominator (prevents /0 on rare classes) + - support for multiple ignore indices (background + void) +""" +import torch +import torch.nn as nn +import torch.nn.functional as F + + +def lovasz_grad(gt_sorted): + """Gradient of Lovász extension w.r.t. sorted errors.""" + p = len(gt_sorted) + gts = gt_sorted.sum() + intersection = gts - gt_sorted.float().cumsum(0) + union = gts + (1.0 - gt_sorted).float().cumsum(0) + jaccard = 1.0 - intersection / (union + 1e-6) # eps guard + if p > 1: + jaccard[1:p] = jaccard[1:p] - jaccard[0:-1] + return jaccard + + +def lovasz_softmax_flat(probas, labels, classes="present"): + """ + Multi-class Lovász-Softmax on flattened tensors. + probas: (N, C) softmax probabilities + labels: (N,) ground truth indices + """ + if probas.numel() == 0: + return probas * 0.0 + + C = probas.shape[1] + + if classes == "all": + class_list = list(range(C)) + elif classes == "present": + class_list = torch.unique(labels).tolist() + else: + class_list = list(classes) + + losses = [] + for c in class_list: + fg = (labels == c).float() + if fg.sum() == 0: + continue + class_pred = probas[:, c] + errors = (fg - class_pred).abs() + errors_sorted, perm = torch.sort(errors, dim=0, descending=True) + fg_sorted = fg[perm.data] + grad = lovasz_grad(fg_sorted) + loss_c = torch.dot(errors_sorted, grad) + if torch.isfinite(loss_c): + losses.append(loss_c) + + if not losses: + return probas.sum() * 0.0 + + return sum(losses) / len(losses) + + +class LovaszSoftmaxLoss(nn.Module): + """ + Lovász-Softmax for 2D segmentation. + logits: (B, C, H, W) + targets: (B, H, W) long + ignore_indices: list of class indices to exclude (e.g. [0, 19]) + """ + def __init__(self, ignore_indices=None, classes="present"): + super().__init__() + self.ignore_indices = ignore_indices or [] + self.classes = classes + + def forward(self, logits, targets): + probas = F.softmax(logits, dim=1) + B, C, H, W = probas.shape + probas_flat = probas.permute(0, 2, 3, 1).contiguous().view(-1, C) + targets_flat = targets.contiguous().view(-1) + + # Mask out all ignore indices + if self.ignore_indices: + valid = torch.ones(targets_flat.shape[0], dtype=torch.bool, + device=targets_flat.device) + for idx in self.ignore_indices: + valid &= (targets_flat != idx) + probas_flat = probas_flat[valid] + targets_flat = targets_flat[valid] + + if probas_flat.numel() == 0: + return logits.sum() * 0.0 + + loss = lovasz_softmax_flat(probas_flat, targets_flat, classes=self.classes) + return torch.nan_to_num(loss, nan=0.0) diff --git a/ablations/10_plateau_breakthrough/workspace/model.py b/ablations/10_plateau_breakthrough/workspace/model.py new file mode 100644 index 0000000000000000000000000000000000000000..93aa6ea6db6d74993302f47fa78dfaa8f2b018f3 --- /dev/null +++ b/ablations/10_plateau_breakthrough/workspace/model.py @@ -0,0 +1,372 @@ +""" +T-SRDA model — AD-STCLN backbone with PDAViT-style Temporal +Spatial-Reduction Dual-Attention (Zhou et al., Neurocomputing 2026) +replacing the DaViT/Swin temporal encoder. + +Pipeline (identical I/O contract to the det experiment): + + UTAE_ASPP encoder: (B,T,C,H,W), (B,T) days + -> out (B,H,W,T,D), x2 (B*T,D,H,W) + UTAEPrediction pretrain wrapper: NDVI-aware masking + MSE recon + -> (recon, recon2, target, mask) [1=visible] + UTAEClassificationDual finetune wrapper: STA temporal collapse + + dual decoder (semantic + boundary) + gated + refinement -> dict(sem_logits, bnd_logits, + refined_logits) + compute_boundary_target morphological-gradient boundary GT (B,H,W) + +Temporal encoder change (the ONLY architectural difference vs det/DaViT): + TemporalDaViTEncoder -> TemporalSRDAEncoder (temporal_srda.py) + KV path: Linear d->d/R, unfold R steps -> (T/R, d), first SA (K-V + self-checking); second SA: full-T queries x reduced KV -> global + temporal receptive field per layer. + +Checkpointing: chunk-level only (TEMPORAL_CHUNK sequences per checkpointed +chunk). The temporal encoder has NO internal checkpointing — layer-level + +chunk-level double-checkpointing wasted ~30% backward compute in the DaViT +version. +""" +import math +import torch +import torch.nn as nn +import torch.nn.functional as F +from torch.utils.checkpoint import checkpoint + +import config as C +from temporal_srda import TemporalSRDAEncoder + +TEMPORAL_CHUNK = 1024 # per-pixel sequences per checkpointed chunk (train) +EVAL_TEMPORAL_CHUNK = 4096 # larger in eval — no checkpointing to pay for +SPATIAL_CHUNK = 32 # frames per spatial-encoder chunk in eval +# +# Eval-mode chunking exists for the official test protocol: test_STCLN.py feeds +# WHOLE 128x128 patches, so one batch-4 sample is 4*61 = 244 frames and +# 4*128*128 = 65,536 per-pixel temporal sequences. Unchunked, the ASPP concat +# alone (1024 ch at 128x128) would need ~16 GB. Training is unaffected: at +# 32x32 crops the chunk paths below are never entered. + + +# ═══════════════════════════════════════════════════════════════════════════ +# 1. Positional encoding over real acquisition days +# ═══════════════════════════════════════════════════════════════════════════ +class PositionalEncoder(nn.Module): + """Sinusoidal PE over day offsets. days: (..., T) -> (..., T, d).""" + + def __init__(self, d_model, T=1000): + super().__init__() + self.d_model = d_model + denom = torch.pow( + T, 2.0 * (torch.arange(d_model).div(2, rounding_mode="floor")) + / d_model) + self.register_buffer("denom", denom, persistent=False) + + def forward(self, days): + pe = days[..., None] / self.denom # (..., T, d) + pe = torch.stack([torch.sin(pe[..., 0::2]), + torch.cos(pe[..., 1::2])], dim=-1) + return pe.flatten(-2) # interleave sin/cos + + +# ═══════════════════════════════════════════════════════════════════════════ +# 2. Atrous spatial encoder: (B*T, C_in, H, W) -> (B*T, D, H, W) +# ═══════════════════════════════════════════════════════════════════════════ +class SEBlock(nn.Module): + def __init__(self, channels, reduction=8): + super().__init__() + self.fc = nn.Sequential( + nn.AdaptiveAvgPool2d(1), + nn.Conv2d(channels, channels // reduction, 1), + nn.ReLU(inplace=True), + nn.Conv2d(channels // reduction, channels, 1), + nn.Sigmoid(), + ) + + def forward(self, x): + return x * self.fc(x) + + +class ASPP(nn.Module): + """Atrous spatial pyramid pooling neck at full 32x32 resolution.""" + + def __init__(self, in_ch, out_ch, dilations=(1, 2, 4)): + super().__init__() + self.branches = nn.ModuleList([ + nn.Sequential( + nn.Conv2d(in_ch, out_ch, 3, padding=d, dilation=d, bias=False), + nn.BatchNorm2d(out_ch), + nn.ReLU(inplace=True)) + for d in dilations + ]) + self.pool = nn.Sequential( + nn.AdaptiveAvgPool2d(1), + nn.Conv2d(in_ch, out_ch, 1, bias=False), + nn.ReLU(inplace=True), + ) + self.project = nn.Sequential( + nn.Conv2d(out_ch * (len(dilations) + 1), out_ch, 1, bias=False), + nn.BatchNorm2d(out_ch), + nn.ReLU(inplace=True), + ) + + def forward(self, x): + feats = [b(x) for b in self.branches] + gp = self.pool(x) + feats.append(F.interpolate(gp, size=x.shape[-2:], mode="nearest")) + return self.project(torch.cat(feats, dim=1)) + + +class AtrousSpatialEncoder(nn.Module): + """Dilated conv stem + ASPP + SE. Keeps full spatial resolution.""" + + def __init__(self, in_channels=10, d_model=256): + super().__init__() + mid = d_model // 4 # 64 + self.stem = nn.Sequential( + nn.Conv2d(in_channels, mid, 3, padding=1, bias=False), + nn.BatchNorm2d(mid), + nn.ReLU(inplace=True), + nn.Conv2d(mid, mid, 3, padding=2, dilation=2, bias=False), + nn.BatchNorm2d(mid), + nn.ReLU(inplace=True), + ) + self.aspp = ASPP(mid, d_model, dilations=(1, 2, 4)) + self.se = SEBlock(d_model) + + def forward(self, x): # (N, C, H, W) + return self.se(self.aspp(self.stem(x))) # (N, D, H, W) + + +# ═══════════════════════════════════════════════════════════════════════════ +# 3. Encoder wrapper: spatial per-frame + T-SRDA temporal per-pixel +# ═══════════════════════════════════════════════════════════════════════════ +class UTAE_ASPP(nn.Module): + """ + forward(x, pos): + x : (B, T, C, H, W) normalized S2 crops + pos : (B, T) day offsets (0 on padded steps) + returns: + out : (B, H, W, T, D) temporally contextualized per-pixel features + x2 : (B*T, D, H, W) spatial features (deep-supervision recon path) + """ + + def __init__(self, n_channels=10, d_model=256, n_heads=8, + T_pad=48, windows=None, shifts=None, **kwargs): + super().__init__() + # T_pad / windows / shifts are absorbed for constructor compatibility + # with pretrain.py / finetune.py / evaluate.py; T-SRDA ignores them + # (the encoder self-pads T to a multiple of max(R_SCHEDULE)). + self.d_model = d_model + self.spatial_encoder = AtrousSpatialEncoder(n_channels, d_model) + self.pos_encoder = PositionalEncoder(d_model) + self.temporal_encoder = TemporalSRDAEncoder( + d_model=d_model, n_heads=n_heads, R_schedule=C.R_SCHEDULE) + + def _run_temporal_chunk(self, x_chunk, pos_chunk): + return self.temporal_encoder(x_chunk, pos_chunk) + + def _encode_spatial(self, frames): + """(N, C, H, W) -> (N, D, H, W). Chunked in eval to cap the ASPP peak.""" + N = frames.shape[0] + if self.training or N <= SPATIAL_CHUNK: + return self.spatial_encoder(frames) + return torch.cat([self.spatial_encoder(frames[s:s + SPATIAL_CHUNK]) + for s in range(0, N, SPATIAL_CHUNK)], dim=0) + + def forward(self, x, pos): + B, T, Cc, H, W = x.shape + + # ---- spatial encoding, frame by frame ------------------------------ + x2 = self._encode_spatial(x.reshape(B * T, Cc, H, W)) # (B*T,D,H,W) + D = x2.shape[1] + + # ---- to per-pixel temporal sequences ------------------------------- + x_te = (x2.reshape(B, T, D, H, W) + .permute(0, 3, 4, 1, 2) # (B,H,W,T,D) + .reshape(B * H * W, T, D)) + + pe = self.pos_encoder(pos) # (B, T, D) + pos_exp = (pe[:, None, None, :, :] + .expand(B, H, W, T, D) + .reshape(B * H * W, T, D)) + + # ---- temporal encoder, chunked + checkpointed in training ---------- + N = x_te.shape[0] + if self.training and N > TEMPORAL_CHUNK: + outs = [] + for s in range(0, N, TEMPORAL_CHUNK): + e = min(s + TEMPORAL_CHUNK, N) + outs.append(checkpoint(self._run_temporal_chunk, + x_te[s:e], pos_exp[s:e], + use_reentrant=False)) + out = torch.cat(outs, dim=0) + elif not self.training and N > EVAL_TEMPORAL_CHUNK: + outs = [] + for s in range(0, N, EVAL_TEMPORAL_CHUNK): + e = min(s + EVAL_TEMPORAL_CHUNK, N) + outs.append(self.temporal_encoder(x_te[s:e], pos_exp[s:e])) + out = torch.cat(outs, dim=0) + else: + out = self.temporal_encoder(x_te, pos_exp) # (B*H*W,T,D) + + out = out.reshape(B, H, W, T, D) + return out, x2 + + +# ═══════════════════════════════════════════════════════════════════════════ +# 4. Pretrain wrapper: NDVI-aware masking + MSE reconstruction +# (logic recovered from the det pipeline — mask: 1=visible, 0=masked) +# ═══════════════════════════════════════════════════════════════════════════ +class UTAEPrediction(nn.Module): + def __init__(self, encoder, n_channels=10, d_model=256, mask_ratio=0.4): + super().__init__() + self.utae = encoder + self.linear = nn.Linear(d_model, n_channels) # main reconstruction + self.midlinear = nn.Linear(d_model, n_channels) # deep supervision + self.mask_ratio = mask_ratio + self.mask_token = nn.Parameter(torch.zeros(1)) + + def forward(self, x, pos): + """Official STCLN masking — STCLN.py:193-202, bit-for-bit. + + The NDVI indicator is per-timestep-per-pixel, but `clusterLmean` + averages it over H and W, so the gate is PER FRAME: a timestep whose + frame is <= CLOUD_GATE vegetated is left ENTIRELY visible. This is + NOT a per-pixel vegetation filter, and getting that wrong changes the + pretext task (measured: the official gate leaves 96.2% of all values + visible, a per-pixel version leaves 82.3%). + """ + # x: (B, T, C, H, W) pos: (B, T) + target = x.clone() + B, T, Cc, H, W = x.shape + + with torch.no_grad(): + # NDVI indicator on normalized bands: (NIR b6 - Red b2)/(Red + NIR) + ndvi = (x[:, :, 6] - x[:, :, 2]) / (x[:, :, 2] + x[:, :, 6] + 1e-20) + cluster = ndvi.gt(C.NDVI_THRESH).float() # (B, T, H, W) + + # F.dropout: kept -> scaled ones, dropped -> zeros; * (1-p) undoes + # the scaling so the mask is exactly {0, 1}. 1 = visible. + mask = torch.ones(B, T, H, W, device=x.device) + mask = F.dropout(mask, p=self.mask_ratio, training=True) \ + * (1.0 - self.mask_ratio) + mask_4d = mask[:, :, None].repeat(1, 1, Cc, 1, 1) + + # per-FRAME vegetation fraction -> exempt whole frames from masking + frame_veg = cluster.mean(dim=[2, 3]) # (B, T) + exempt = (frame_veg <= C.CLOUD_GATE)[:, :, None, None, None] + mask_4d = torch.where(exempt, torch.ones_like(mask_4d), mask_4d) + + x_masked = x * mask_4d + self.mask_token * (1.0 - mask_4d) + + out, x2 = self.utae(x_masked, pos) # (B,H,W,T,D), (B*T,D,H,W) + + recon = self.linear(out).permute(0, 3, 4, 1, 2) # (B,T,C,H,W) + recon2 = (self.midlinear(x2.permute(0, 2, 3, 1)) + .permute(0, 3, 1, 2) + .reshape(B, T, Cc, H, W)) + return recon, recon2, target, mask_4d + + +# ═══════════════════════════════════════════════════════════════════════════ +# 5. Finetune wrapper: STA temporal collapse + dual decoder + gated refine +# ═══════════════════════════════════════════════════════════════════════════ +class STA(nn.Module): + """Spatio-temporal aggregation: attention-pool T, refine spatially. + (Reconstruction of base STCLN's conv1/conv2/conv3/l collapse module.)""" + + def __init__(self, d_model=256): + super().__init__() + self.l = nn.Linear(d_model, 1) # temporal attn scores + self.conv1 = nn.Sequential( + nn.Conv2d(d_model, d_model, 3, padding=1, bias=False), + nn.BatchNorm2d(d_model), nn.ReLU(inplace=True)) + self.conv2 = nn.Sequential( + nn.Conv2d(d_model, d_model, 3, padding=1, bias=False), + nn.BatchNorm2d(d_model), nn.ReLU(inplace=True)) + self.conv3 = nn.Sequential( + nn.Conv2d(d_model, d_model, 1, bias=False), + nn.BatchNorm2d(d_model), nn.ReLU(inplace=True)) + + def forward(self, feats): # (B, H, W, T, D) + w = self.l(feats).softmax(dim=3) # (B, H, W, T, 1) + f = (feats * w).sum(dim=3) # (B, H, W, D) + f = f.permute(0, 3, 1, 2).contiguous() # (B, D, H, W) + f = f + self.conv2(self.conv1(f)) # residual refine + return self.conv3(f) + + +class SemanticDecoder(nn.Module): + def __init__(self, d_model=256, num_classes=20): + super().__init__() + self.net = nn.Sequential( + nn.Conv2d(d_model, d_model // 2, 3, padding=1, bias=False), + nn.BatchNorm2d(d_model // 2), nn.ReLU(inplace=True), + nn.Conv2d(d_model // 2, num_classes, 1)) + + def forward(self, x): + return self.net(x) + + +class BoundaryDecoder(nn.Module): + def __init__(self, d_model=256): + super().__init__() + self.net = nn.Sequential( + nn.Conv2d(d_model, d_model // 4, 3, padding=1, bias=False), + nn.BatchNorm2d(d_model // 4), nn.ReLU(inplace=True), + nn.Conv2d(d_model // 4, 1, 1)) + + def forward(self, x): + return self.net(x) # (B, 1, H, W) + + +class GatedRefinement(nn.Module): + """Boundary-gated fusion of features and semantic logits.""" + + def __init__(self, d_model=256, num_classes=20): + super().__init__() + self.fuse = nn.Sequential( + nn.Conv2d(d_model + num_classes, d_model // 2, 3, padding=1, + bias=False), + nn.BatchNorm2d(d_model // 2), nn.ReLU(inplace=True), + nn.Conv2d(d_model // 2, num_classes, 1)) + + def forward(self, feat, sem_logits, bnd_logits): + gate = torch.sigmoid(bnd_logits) # (B, 1, H, W) + fused = torch.cat([feat * (1.0 + gate), sem_logits], dim=1) + return sem_logits + self.fuse(fused) # residual refinement + + +class UTAEClassificationDual(nn.Module): + def __init__(self, encoder, d_model=256, num_classes=20): + super().__init__() + self.utae = encoder + self.sta = STA(d_model) + self.sem_head = SemanticDecoder(d_model, num_classes) + self.bnd_head = BoundaryDecoder(d_model) + self.refine = GatedRefinement(d_model, num_classes) + + def forward(self, x, pos): + out, _ = self.utae(x, pos) # (B, H, W, T, D) + feat = self.sta(out) # (B, D, H, W) + sem = self.sem_head(feat) # (B, K, H, W) + bnd = self.bnd_head(feat) # (B, 1, H, W) + refined = self.refine(feat, sem, bnd) # (B, K, H, W) + return {"sem_logits": sem, + "bnd_logits": bnd, + "refined_logits": refined} + + +# ═══════════════════════════════════════════════════════════════════════════ +# 6. Boundary ground truth (recovered verbatim from det pipeline) +# ═══════════════════════════════════════════════════════════════════════════ +def compute_boundary_target(mask): + """ + Morphological gradient: a pixel is a boundary iff at least one + 8-neighbour has a different class. + mask: (B, H, W) long -> boundary: (B, H, W) float in {0, 1} + (finetune.py squeezes bnd_logits to (B,H,W), so GT matches that shape.) + """ + m = mask.unsqueeze(1).float() + mx = F.max_pool2d(m, 3, 1, 1) + mn = -F.max_pool2d(-m, 3, 1, 1) + return (mx != mn).float().squeeze(1) diff --git a/ablations/10_plateau_breakthrough/workspace/padding_batch_audit.py b/ablations/10_plateau_breakthrough/workspace/padding_batch_audit.py new file mode 100644 index 0000000000000000000000000000000000000000..d247f1d08cb92357efe334dec01742476d06df85 --- /dev/null +++ b/ablations/10_plateau_breakthrough/workspace/padding_batch_audit.py @@ -0,0 +1,58 @@ +"""Real validation-data audit of inherited auxiliary-CNN padding sensitivity. + +No fitting, no test data and no benchmark configuration changes. Batch-one +evaluations are diagnostics only; all selection still uses original batch two. +""" +import time +from pathlib import Path +import numpy as np +import torch +from temporal_specialist import TemporalCNN, loader +from ceiling_research_models import make_model +from top5_models import valid_from_index_positions +from dataset import val_patch_ids, crop_ij +import config as C +from plateau_probes import write_json, metrics_cm +from convnext_research import cm_for + + +@torch.inference_mode() +def main(): + torch.set_num_threads(2);torch.manual_seed(3407) + torch.backends.cuda.matmul.allow_tf32=False;torch.backends.cudnn.allow_tf32=False + root=Path(__file__).parent + ck=torch.load(root/'temporal_research/32X32_cnn_control_seed3407/best.tar',map_location='cpu',weights_only=False) + original=TemporalCNN().cuda().eval();original.load_state_dict(ck['state']) + safe=make_model('padding_safe_control').cuda().eval() + names=['original_batch2','original_individual_unpadded','corrected_batch2','corrected_individual_unpadded'] + cm={n:np.zeros((20,20),np.int64) for n in names} + differences={n:{'max_logit_difference':0.,'prediction_changes':0,'foreground_prediction_changes':0} for n in ['original','corrected']} + started=time.monotonic();crops=0;pixels=0 + for bi,((x,pos,_),y) in enumerate(loader(val_patch_ids(),2)): + x,pos=x.cuda(),pos.cuda();valid=valid_from_index_positions(pos) + for i,j in C.FT_CROP_IJ: + crop,target=crop_ij(x,y,i,j,4);gt=target.numpy() + for name,model in [('original',original),('corrected',safe)]: + batch=model(crop,pos);singles=[] + for k in range(len(crop)): + singles.append(model(crop[k:k+1,valid[k]],pos[k:k+1,valid[k]])) + single=torch.cat(singles) + delta=float((batch-single).abs().max());record=differences[name] + record['max_logit_difference']=max(record['max_logit_difference'],delta) + bp=batch.argmax(1).cpu().numpy()+1;sp=single.argmax(1).cpu().numpy()+1 + changed=bp!=sp;foreground=(gt>0)&(gt<19) + record['prediction_changes']+=int(changed.sum()) + record['foreground_prediction_changes']+=int((changed&foreground).sum()) + cm[name+'_batch2']+=cm_for(gt,bp);cm[name+'_individual_unpadded']+=cm_for(gt,sp) + if name=='corrected':assert delta<.001,delta + crops+=len(crop);pixels+=int(((gt>0)&(gt<19)).sum()) + if bi%10==0:print('PADDING AUDIT',bi,38,flush=True) + result={'split':'validation_only','seed':3407,'training':False,'test_data_used':False, + 'fixed32_crops':crops,'foreground_pixels':pixels,'seconds':time.monotonic()-started, + 'metrics':{n:metrics_cm(v) for n,v in cm.items()},'differences':differences, + 'note':'Uses original CNN weights, with and without the LayerNorm-output validity mask; individual unpadded passes are diagnostics, not replacement benchmark batches.'} + write_json(root/'ceiling_research_20261010/padding_batch_audit.json',result) + print('AUDIT COMPLETE',differences,{n:v['miou'] for n,v in result['metrics'].items()},flush=True) + + +if __name__=='__main__':main() diff --git a/ablations/10_plateau_breakthrough/workspace/plateau_models.py b/ablations/10_plateau_breakthrough/workspace/plateau_models.py new file mode 100644 index 0000000000000000000000000000000000000000..d435f2b9fffb2db0e641c9df5b2c6c8522b58668 --- /dev/null +++ b/ablations/10_plateau_breakthrough/workspace/plateau_models.py @@ -0,0 +1,119 @@ +"""Fixed32 research architectures. Historical top5 model semantics are preserved.""" +import torch +from torch import nn +import torch.nn.functional as F +import config as C +from model import STA, UTAE_ASPP, UTAEClassificationDual +from top5_models import ( + MaskedTemporalSRDABlock, MaskedTemporalSRDAEncoder, MaskedUTAE_ASPP, + MaskedUTAEClassificationDual, valid_from_index_positions, +) + + +class CorrectedMaskedBlock(MaskedTemporalSRDABlock): + def forward(self, x, valid): + n, t, d = x.shape + x = x * valid.unsqueeze(-1) + z = self.pw(self.norm_kv(x)) * valid.unsqueeze(-1) + z = z.reshape(n, t // self.R, d) + group_valid = valid.reshape(n, t // self.R, self.R).any(-1) + zn = self.norm_first(z) + z_sa, _ = self.first_sa(zn, zn, zn, key_padding_mask=~group_valid, + need_weights=False) + kv = (z + z_sa) * group_valid.unsqueeze(-1) + q = self.q_proj(self.norm_q(x)) + k, v = self.kv_proj(kv).chunk(2, -1) + q = q.reshape(n, t, self.h, self.dh).transpose(1, 2) + k = k.reshape(n, -1, self.h, self.dh).transpose(1, 2) + v = v.reshape(n, -1, self.h, self.dh).transpose(1, 2) + scores = (q @ k.transpose(-2, -1)) * self.scale + scores = scores.masked_fill(~group_valid[:, None, None], + torch.finfo(scores.dtype).min) + weights = self.attn_drop(scores.softmax(-1)) + out = (weights @ v).transpose(1, 2).reshape(n, t, d) + x = (x + self.proj_drop(self.out_proj(out))) * valid.unsqueeze(-1) + # Parallel DW branch receives the pre-GELU activation, as in the parent. + u = self.fc1(self.norm_mlp(x)) * valid.unsqueeze(-1) + y = F.gelu(u) + self.dw(u.transpose(1, 2)).transpose(1, 2) + return (x + self.fc2(y)) * valid.unsqueeze(-1) + + +class CorrectedMaskedEncoder(MaskedTemporalSRDAEncoder): + def __init__(self, d_model=256, n_heads=8, R_schedule=(4, 4, 4), **kwargs): + super().__init__(d_model=d_model, n_heads=n_heads, R_schedule=R_schedule, **kwargs) + self.blocks = nn.ModuleList([ + CorrectedMaskedBlock(d_model, n_heads, R=r) for r in R_schedule + ]) + + +class CorrectedMaskedUTAE(MaskedUTAE_ASPP): + def __init__(self, n_channels=10, d_model=256, n_heads=8, **kwargs): + super().__init__(n_channels=n_channels, d_model=d_model, n_heads=n_heads, **kwargs) + self.temporal_encoder = CorrectedMaskedEncoder( + d_model=d_model, n_heads=n_heads, R_schedule=C.R_SCHEDULE) + + +class ClassQuerySTA(STA): + """20 queries, of which 18 receive foreground target supervision. + + A query retains its own temporal summary and directly produces its class + score. The concatenated summaries also supply the existing spatial decoder. + Encoder attention and acquisition-index inputs are unchanged. + """ + def __init__(self, d_model=256, num_classes=20, query_width=64): + super().__init__(d_model) + del self.l + self.query_width = query_width + self.norm = nn.LayerNorm(d_model) + self.key = nn.Linear(d_model, query_width, bias=False) + self.value = nn.Linear(d_model, query_width, bias=False) + self.queries = nn.Parameter(torch.randn(num_classes, query_width) * .02) + self.class_vectors = nn.Parameter(torch.randn(num_classes, query_width) * .02) + self.class_bias = nn.Parameter(torch.zeros(num_classes)) + self.project = nn.Linear(num_classes * query_width, d_model) + + def forward(self, feats, pos): + b, h, w, t, d = feats.shape + flat = feats.reshape(b * h * w, t, d) + valid = valid_from_index_positions(pos) + valid = valid[:, None, None].expand(b, h, w, t).reshape(-1, t) + summaries, logits = [], [] + for start in range(0, len(flat), 512): + f = self.norm(flat[start:start + 512]) + scores = torch.einsum('ntd,cd->nct', self.key(f), self.queries) + scores = scores / self.query_width ** .5 + scores = scores.masked_fill(~valid[start:start + 512, None], + torch.finfo(scores.dtype).min) + pooled = scores.softmax(-1) @ self.value(f) + logits.append((pooled * self.class_vectors).sum(-1) + self.class_bias) + summaries.append(self.project(pooled.flatten(1))) + dense = torch.cat(summaries).reshape(b, h, w, d).permute(0, 3, 1, 2).contiguous() + dense = self.conv3(dense + self.conv2(self.conv1(dense))) + semantic = torch.cat(logits).reshape(b, h, w, -1).permute(0, 3, 1, 2).contiguous() + return dense, semantic + + +class ClassQueryClassification(UTAEClassificationDual): + def __init__(self, encoder, d_model=256, num_classes=20): + super().__init__(encoder, d_model=d_model, num_classes=num_classes) + self.sta = ClassQuerySTA(d_model, num_classes) + del self.sem_head + + def forward(self, x, pos): + features, _ = self.utae(x, pos) + dense, semantic = self.sta(features, pos) + boundary = self.bnd_head(dense) + return {'sem_logits': semantic, 'bnd_logits': boundary, + 'refined_logits': self.refine(dense, semantic, boundary)} + + +def architecture(variant): + if variant == 'mask_corrected': + return CorrectedMaskedUTAE, MaskedUTAEClassificationDual + if variant == 'class_queries': + return UTAE_ASPP, ClassQueryClassification + if variant == 'shared_pool_mask': + return UTAE_ASPP, MaskedUTAEClassificationDual + if variant == 'plain': + return UTAE_ASPP, UTAEClassificationDual + raise ValueError(variant) diff --git a/ablations/10_plateau_breakthrough/workspace/plateau_probes.py b/ablations/10_plateau_breakthrough/workspace/plateau_probes.py new file mode 100644 index 0000000000000000000000000000000000000000..7fddba5873ef3d42123c076928b4b226d0a79913 --- /dev/null +++ b/ablations/10_plateau_breakthrough/workspace/plateau_probes.py @@ -0,0 +1,377 @@ +"""Frozen-depth probes and patch-balanced prototype readouts on official fixed32. + +Caches only masked temporal mean/std summaries, not full time-series features. +The readout sees 18 classes; probabilities are mapped to the original 20 channels. +Validation is selection-only. Prototype banks and normalization use training only. +""" +import argparse +import json +import time +from pathlib import Path +import numpy as np +import torch +import torch.nn.functional as F +from torch.utils.data import DataLoader +from sklearn.cluster import KMeans +import config as C +from dataset import (PASTISPatchDataset, train_patch_ids, val_patch_ids, + test_patch_ids, pad_collate, crop_ij) +from model import UTAE_ASPP, UTAEClassificationDual +from top5_models import valid_from_index_positions + +ROOT = Path(__file__).resolve().parent +OUT = ROOT / 'plateau_experiments' +SAM = ROOT / 'research_round/checkpoints/sam/model_best_raw.tar' +PRETRAIN = ROOT / 'latest.utae.tar' + + +def write_json(path, data): + path.parent.mkdir(parents=True, exist_ok=True) + temp = path.with_suffix('.json.tmp') + temp.write_text(json.dumps(data, indent=2)) + temp.replace(path) + + +def metrics(y, pred): + valid = (y > 0) & (y < 19) + cm = np.bincount(20 * y[valid].astype(np.int64) + pred[valid], + minlength=400).reshape(20, 20) + return metrics_cm(cm) + + +def metrics_cm(cm): + tp = np.diag(cm)[1:19].astype(float) + gt, pp = cm.sum(1)[1:19], cm.sum(0)[1:19] + iou = tp / np.maximum(gt + pp - tp, 1) + f1 = 2 * tp / np.maximum(gt + pp, 1) + total = cm.sum() + oa = cm.trace() / max(total, 1) + chance = np.dot(cm.sum(0).astype(float), cm.sum(1)) / max(total ** 2, 1) + return {'miou': float(iou.mean()), 'oa': float(oa), + 'macro_f1': float(f1.mean()), 'kappa': float((oa-chance)/max(1-chance,1e-12)), + 'per_class_iou': iou.tolist(), 'confusion_matrix': cm.tolist()} + + +def frozen_model(source, device): + enc = UTAE_ASPP(n_channels=C.N_CHANNELS, d_model=C.D_MODEL, n_heads=C.N_HEADS) + net = UTAEClassificationDual(enc, d_model=C.D_MODEL, num_classes=C.N_CLASSES) + ck = torch.load(SAM if source == 'sam' else PRETRAIN, + map_location='cpu', weights_only=False) + state = ck['model_state_dict'] + if source == 'sam': + net.load_state_dict(state, strict=True) + else: + if not any(k.startswith('spatial_encoder.') for k in state): + state = {k[5:]: v for k, v in state.items() if k.startswith('utae.')} + enc.load_state_dict(state, strict=True) + return net.to(device).eval().requires_grad_(False) + + +class DepthCollector: + def __init__(self, encoder): + self.handles = [block.register_forward_hook(self.hook(i)) + for i, block in enumerate(encoder.temporal_encoder.blocks)] + + def begin(self, x, pos): + b, _, _, h, w = x.shape + self.shape = b, h, w + self.valid = valid_from_index_positions(pos)[:, None, None] + self.valid = self.valid.expand(b, h, w, -1).reshape(b*h*w, -1) + self.parts = [[], [], []] + self.offsets = [0, 0, 0] + + def hook(self, depth): + def collect(module, inputs, output): + start = self.offsets[depth] + valid = self.valid[start:start + output.shape[0]] + if valid.shape[1] < output.shape[1]: + valid = F.pad(valid, (0, output.shape[1]-valid.shape[1]), value=False) + weights = valid[..., None].float() + values = output.float() + count = weights.sum(1).clamp_min(1) + mean = (values * weights).sum(1) / count + var = ((values - mean[:, None]).square() * weights).sum(1) / count + summary = torch.cat((mean, var.clamp_min(0).sqrt()), -1) + self.parts[depth].append(summary.detach().half().cpu().numpy()) + self.offsets[depth] += len(output) + return collect + + def end(self): + assert self.offsets == [np.prod(self.shape)] * 3 + return np.stack([np.concatenate(parts) for parts in self.parts], axis=1) + + def close(self): + for handle in self.handles: + handle.remove() + + +def extract_cache(): + device = torch.device('cuda') + started = time.monotonic() + manifest = {'feature': 'valid-timestep mean/std at blocks 1,2,3; float16 summaries', + 'crop_size': 32, 'batch': 2, 'sources': {}, 'normalizer': 'original', + 'positions': 'original acquisition indices'} + for source in ('sam', 'pretrain'): + model = frozen_model(source, device) + collector = DepthCollector(model.utae) + for split, ids in [('train', train_patch_ids()), ('val', val_patch_ids())]: + folder = OUT/'cache'/source/split + folder.mkdir(parents=True, exist_ok=True) + n = len(ids) * 2 * 32 * 32 + files = { + 'features': ((n, 3, 512), np.float16), + 'labels': ((n,), np.uint8), 'patch_ids': ((n,), np.int32), + 'crop_ids': ((n,), np.uint8), + } + if source == 'sam': + files['base_probs'] = ((n, 20), np.float32) + arrays = {k: np.lib.format.open_memmap(folder/f'{k}.npy',mode='w+',dtype=dtype,shape=shape) + for k,(shape,dtype) in files.items()} + loader = DataLoader(PASTISPatchDataset(ids), batch_size=2, shuffle=False, + num_workers=2, pin_memory=True, collate_fn=pad_collate) + offset = 0 + with torch.inference_mode(): + for bi, ((x, pos, _), y) in enumerate(loader): + x, pos = x.to(device), pos.to(device) + batch_ids = ids[2*bi:2*bi+x.shape[0]] + for crop_index, (i, j) in enumerate(C.FT_CROP_IJ): + crop, target = crop_ij(x, y, i, j, C.PRETRAIN_CROP_GRID) + collector.begin(crop, pos) + with torch.autocast('cuda', dtype=torch.float16): + result = model(crop, pos) if source == 'sam' else model.utae(crop,pos) + features = collector.end() + end = offset + len(features) + arrays['features'][offset:end] = features + arrays['labels'][offset:end] = target.numpy().reshape(-1) + arrays['patch_ids'][offset:end] = np.repeat(batch_ids,32*32) + arrays['crop_ids'][offset:end] = crop_index + if source == 'sam': + pp = result['refined_logits'].float().softmax(1) + arrays['base_probs'][offset:end] = pp.permute(0,2,3,1).reshape(-1,20).cpu().numpy() + offset = end + if bi % 10 == 0: + print('cache',source,split,bi,len(loader),flush=True) + assert offset == n + for array in arrays.values(): + array.flush() + manifest['sources'][f'{source}_{split}'] = {'pixels':n,'entries':len(ids), + 'unique_patches':len(set(ids))} + del arrays + collector.close() + del model + torch.cuda.empty_cache() + y = np.load(OUT/'cache/sam/val/labels.npy') + p = np.load(OUT/'cache/sam/val/base_probs.npy',mmap_mode='r') + manifest['sam_baseline'] = metrics(y,p.argmax(1)) + if abs(manifest['sam_baseline']['miou']-.5000673383500418)>1e-6: + raise RuntimeError('Feature-cache SAM baseline does not reproduce its stored score') + manifest['seconds'] = time.monotonic()-started + write_json(OUT/'cache/manifest.json',manifest) + + +def load_cache(source, split): + folder = OUT/'cache'/source/split + return {name:np.load(folder/f'{name}.npy',mmap_mode='r') + for name in ('features','labels','patch_ids','crop_ids')} + + +def rows(features, indices, depth): + data = np.asarray(features[indices]) + return (data[:,depth,:] if depth>=0 else data.reshape(len(data),-1)).astype(np.float32) + + +def train_normalizer(features, indices, depth): + width = 512 if depth>=0 else 1536 + sums, squares = np.zeros(width,np.float64),np.zeros(width,np.float64) + for start in range(0,len(indices),4096): + x = rows(features,indices[start:start+4096],depth).astype(np.float64) + sums += x.sum(0);squares += (x*x).sum(0) + mean = sums/len(indices) + std = np.sqrt(np.maximum(squares/len(indices)-mean*mean,0)).clip(.05) + return torch.from_numpy(mean.astype(np.float32)).cuda(),torch.from_numpy(std.astype(np.float32)).cuda() + + +def normalized(features, indices, depth, mean, std): + return (torch.from_numpy(rows(features,indices,depth)).cuda()-mean)/std + + +def make_prototypes(train, depth, mean, std, seed): + rng = np.random.default_rng(seed) + # Only the first occurrence of each (patch,crop) enters prototype memory. + pid, cid, labels = train['patch_ids'],train['crop_ids'],train['labels'] + unique = np.zeros(len(labels),bool);seen=set() + for start in range(0,len(labels),1024): + key=int(pid[start]),int(cid[start]) + if key not in seen: + unique[start:start+1024]=True;seen.add(key) + protos=[] + for cls in range(1,19): + memory=[] + for patch in np.unique(pid[unique & (labels==cls)]): + eligible=np.flatnonzero(unique & (pid==patch) & (labels==cls)) + memory.extend(rng.choice(eligible,32,replace=len(eligible)<32).tolist()) + if not memory: + raise RuntimeError(f'No training prototype support for class {cls}') + embeddings=F.normalize(normalized(train['features'],np.array(memory),depth,mean,std),dim=1) + km=KMeans(n_clusters=3,n_init=3,random_state=seed).fit(embeddings.cpu().numpy()) + centers=F.normalize(torch.from_numpy(km.cluster_centers_).cuda(),dim=1) + protos.append(centers) + return torch.stack(protos) + + +def fit_linear(train, depth, mean, std, seed): + torch.manual_seed(seed) + width=len(mean) + head=torch.nn.Linear(width,18).cuda() + optimizer=torch.optim.AdamW(head.parameters(),lr=1e-3,weight_decay=1e-3) + rng=np.random.default_rng(seed) + eligible=np.flatnonzero((train['labels']>0)&(train['labels']<19)) + for epoch in range(30): + shuffled=rng.permutation(eligible) + for start in range(0,len(shuffled),4096): + ix=shuffled[start:start+4096] + x=normalized(train['features'],ix,depth,mean,std) + y=torch.from_numpy(np.asarray(train['labels'][ix]).astype(np.int64)-1).cuda() + optimizer.zero_grad(set_to_none=True) + F.cross_entropy(head(x),y).backward();optimizer.step() + return {k:v.detach() for k,v in head.state_dict().items()} + + +def probability(features, depth, mean, std, kind, state): + out=np.zeros((len(features),20),np.float32) + with torch.inference_mode(): + for start in range(0,len(features),4096): + ix=np.arange(start,min(start+4096,len(features))) + x=normalized(features,ix,depth,mean,std) + if kind=='linear': + logits=F.linear(x,state['weight'],state['bias']) + else: + embeddings=F.normalize(x,dim=-1) + logits=torch.einsum('nd,ckd->nck',embeddings,state)/.1 + logits=logits.logsumexp(-1)-np.log(3) + out[start:start+len(ix),1:19]=logits.softmax(-1).cpu().numpy() + return out + + +def bootstrap(y, pred, baseline, patch_ids): + unique=np.unique(patch_ids);a=[];b=[] + for pid in unique: + m=patch_ids==pid;valid=m&(y>0)&(y<19) + a.append(np.bincount(20*y[valid].astype(int)+pred[valid],minlength=400).reshape(20,20)) + b.append(np.bincount(20*y[valid].astype(int)+baseline[valid],minlength=400).reshape(20,20)) + a,b=np.array(a),np.array(b);rng=np.random.default_rng(3407);d=[] + for _ in range(1000): + ix=rng.integers(0,len(unique),len(unique)) + d.append(100*(metrics_cm(a[ix].sum(0))['miou']-metrics_cm(b[ix].sum(0))['miou'])) + return np.percentile(d,[2.5,97.5]).tolist() + + +def fit_readouts(): + if not (OUT/'cache/manifest.json').exists(): + raise RuntimeError('Incomplete feature cache') + started=time.monotonic();records=[];models={};families={} + base=np.load(OUT/'cache/sam/val/base_probs.npy',mmap_mode='r') + target=np.load(OUT/'cache/sam/val/labels.npy') + baseline=metrics(target,base.argmax(1))['miou'] + for source in ('sam','pretrain'): + train,val=load_cache(source,'train'),load_cache(source,'val') + assert np.array_equal(target,val['labels']) + eligible=np.flatnonzero((train['labels']>0)&(train['labels']<19)) + for depth in (0,1,2,-1): + mean,std=train_normalizer(train['features'],eligible,depth) + for seed in (3407,42,1234): + for kind in ('linear','prototype'): + state=fit_linear(train,depth,mean,std,seed) if kind=='linear' else make_prototypes(train,depth,mean,std,seed) + pp=probability(val['features'],depth,mean,std,kind,state) + name=f'{source}_depth{depth}_{kind}_seed{seed}' + path=OUT/'readouts'/f'{name}.tar';path.parent.mkdir(parents=True,exist_ok=True) + cpu_state={k:v.cpu() for k,v in state.items()} if kind=='linear' else state.cpu() + torch.save({'source':source,'depth':depth,'kind':kind,'seed':seed, + 'mean':mean.cpu(),'std':std.cpu(),'state':cpu_state},path) + for alpha in (1.,.1,.25,.5): + pred=((1-alpha)*base+alpha*pp).argmax(1) + m=metrics(target,pred) + family=f'{source}_depth{depth}_{kind}_alpha{alpha}' + entry={'source':source,'depth':depth,'kind':kind,'seed':seed, + 'alpha':alpha,'metrics':m,'checkpoint':str(path),'family':family} + records.append(entry);families.setdefault(family,[]).append(entry) + print(name,'unblended',records[-4]['metrics']['miou'],flush=True) + write_json(OUT/'probe_progress.json',{'completed_readouts':len(records)//4,'total_readouts':48}) + del mean,std + del train,val + ranked=sorted(families.items(),key=lambda kv:np.mean([e['metrics']['miou'] for e in kv[1]]),reverse=True) + family,entries=ranked[0] + mean_score=float(np.mean([e['metrics']['miou'] for e in entries])) + # Fixed seed deployment representative, never choose a seed by test score. + chosen=next(e for e in entries if e['seed']==3407) + ck=torch.load(chosen['checkpoint'],map_location='cpu',weights_only=False) + ck['alpha']=chosen['alpha'];torch.save(ck,OUT/'probe_best.tar') + val=load_cache(chosen['source'],'val') + state={k:v.cuda() for k,v in ck['state'].items()} if ck['kind']=='linear' else ck['state'].cuda() + pp=probability(val['features'],ck['depth'],ck['mean'].cuda(),ck['std'].cuda(),ck['kind'],state) + pred=((1-ck['alpha'])*base+ck['alpha']*pp).argmax(1) + result={'baseline_miou':baseline,'selected_family':family,'family_mean_val_miou':mean_score, + 'family_std_val_miou':float(np.std([e['metrics']['miou'] for e in entries],ddof=1)), + 'delta_mean_pp':100*(mean_score-baseline),'selected':chosen, + 'paired_patch_delta_ci95_pp':bootstrap(target,pred,base.argmax(1),val['patch_ids']), + 'promote':bool(mean_score>=baseline+.005),'records':records, + 'seconds':time.monotonic()-started,'test_used_for_selection':False, + 'scope':'Readout seeds vary on the same frozen encoder; not full encoder training seeds.'} + write_json(OUT/'probe_results.json',result) + print('Selected',family,'mean validation',mean_score,'promote',result['promote'],flush=True) + + +def evaluate_selected(split): + ck=torch.load(OUT/'probe_best.tar',map_location='cpu',weights_only=False) + device=torch.device('cuda');base=frozen_model('sam',device) + encoder_model=base if ck['source']=='sam' else frozen_model('pretrain',device) + collector=DepthCollector(encoder_model.utae) + ids=val_patch_ids() if split=='val' else test_patch_ids() + batch=2 if split=='val' else 1 + loader=DataLoader(PASTISPatchDataset(ids),batch_size=batch,shuffle=False,num_workers=2, + pin_memory=True,collate_fn=pad_collate) + state={k:v.cuda() for k,v in ck['state'].items()} if ck['kind']=='linear' else ck['state'].cuda() + cm=np.zeros((20,20),np.int64);started=time.monotonic() + with torch.inference_mode(): + for bi,((x,pos,_),y) in enumerate(loader): + x,pos=x.to(device),pos.to(device) + grid=4 if split=='val' else 1 + crops=C.FT_CROP_IJ if split=='val' else [(0,0)] + for i,j in crops: + crop,target=crop_ij(x,y,i,j,grid) + collector.begin(crop,pos) + with torch.autocast('cuda',dtype=torch.float16): + output=base(crop,pos) + if encoder_model is not base: + encoder_model.utae(crop,pos) + features=collector.end() + bp=output['refined_logits'].float().softmax(1).permute(0,2,3,1).reshape(-1,20).cpu().numpy() + pp=probability(features,ck['depth'],ck['mean'].cuda(),ck['std'].cuda(),ck['kind'],state) + pred=((1-ck['alpha'])*bp+ck['alpha']*pp).argmax(1) + gt=target.numpy().reshape(-1);valid=(gt>0)&(gt<19) + cm+=np.bincount(20*gt[valid].astype(int)+pred[valid],minlength=400).reshape(20,20) + if bi%25==0:print('probe evaluation',split,bi,len(loader),flush=True) + collector.close() + result={'metrics':metrics_cm(cm),'seconds':time.monotonic()-started, + 'entries':len(ids),'batch':batch,'full_patch':split=='test', + 'checkpoint':str(OUT/'probe_best.tar'),'source':ck['source'],'alpha':ck['alpha']} + write_json(OUT/f'probe_{split}_results.json',result) + if split=='val': + expected=json.loads((OUT/'probe_results.json').read_text())['selected']['metrics']['miou'] + if abs(result['metrics']['miou']-expected)>1e-6: + raise RuntimeError('Online readout validation does not match cache selection') + print(result,flush=True) + + +def main(): + parser=argparse.ArgumentParser();parser.add_argument('action',choices=['cache','fit','validate','test']) + args=parser.parse_args();OUT.mkdir(exist_ok=True) + torch.set_num_threads(4);torch.manual_seed(3407) + torch.backends.cuda.matmul.allow_tf32=True + torch.backends.cudnn.allow_tf32=True + if args.action=='cache':extract_cache() + elif args.action=='fit':fit_readouts() + else:evaluate_selected('val' if args.action=='validate' else 'test') + + +if __name__=='__main__':main() diff --git a/ablations/10_plateau_breakthrough/workspace/pretrain_structured_extended.py b/ablations/10_plateau_breakthrough/workspace/pretrain_structured_extended.py new file mode 100644 index 0000000000000000000000000000000000000000..c55af554d7e7cebedeeadfe3eef34c74e5229654 --- /dev/null +++ b/ablations/10_plateau_breakthrough/workspace/pretrain_structured_extended.py @@ -0,0 +1,67 @@ +"""Matched one-epoch fold5 continuation pilots; never overwrite supplied weights.""" +import argparse,time +from pathlib import Path +import torch +import torch.nn.functional as F +from torch.utils.data import DataLoader +import config as C +from dataset import PASTISPatchDataset,pretrain_patch_ids,pad_collate,crop_ij +from model import UTAE_ASPP,UTAEPrediction +from top5_models import valid_from_index_positions +from plateau_probes import write_json + +class StructuredPrediction(UTAEPrediction): + def forward(self,x,pos): + b,t,c,h,w=x.shape + # Four consecutive acquisitions x 4X4 pixels: all ten bands masked together. + coarse=torch.rand(b,(t+3)//4,(h+3)//4,(w+3)//4,device=x.device)