Dhruv1000 commited on
Commit
71d64bb
·
verified ·
1 Parent(s): bec99d1

Organize complete final models, all ablations, logs and checkpoints with visual guides (part 7)

Browse files
Files changed (37) hide show
  1. main_method/checkpoints/shared/attention_temporal_cnn_seed3407.tar +3 -0
  2. main_method/checkpoints/shared/new_temporal_cnn_seed3407.tar +3 -0
  3. main_method/checkpoints/shared/original_temporal_cnn_seed3407.tar +3 -0
  4. main_method/checkpoints/shared/sam_network_seed3407.tar +3 -0
  5. main_method/checkpoints/shared/training_feature_cluster_centres_seed3407.tar +3 -0
  6. main_method/code/augmentation.py +67 -0
  7. main_method/code/config.py +231 -0
  8. main_method/code/dataset.py +203 -0
  9. main_method/code/evaluate.py +88 -0
  10. main_method/code/losses.py +94 -0
  11. main_method/code/model.py +372 -0
  12. main_method/code/temporal_cnn.py +60 -0
  13. main_method/code/temporal_srda.py +131 -0
  14. main_method/code/train_feature_clusters.py +377 -0
  15. main_method/code/train_spatial_temporal.py +762 -0
  16. main_method/code/train_temporal_cnn.py +76 -0
  17. main_method/code/training_feature_clusters.py +81 -0
  18. main_method/configurations/32X32_highest_observed_test_seed3407/manifest.json +25 -0
  19. main_method/configurations/32X32_highest_observed_test_seed3407/selection.json +4691 -0
  20. main_method/configurations/32X32_highest_observed_test_seed3407/test_results.json +1883 -0
  21. main_method/configurations/32X32_recommended_validation_seed3407/manifest.json +25 -0
  22. main_method/configurations/32X32_recommended_validation_seed3407/selection.json +4691 -0
  23. main_method/configurations/32X32_recommended_validation_seed3407/test_results.json +1883 -0
  24. main_method/verification.json +15 -0
  25. visuals/dataset_protocol.png +3 -0
  26. visuals/dataset_protocol.svg +2073 -0
  27. visuals/dataset_protocol_walkthrough.gif +3 -0
  28. visuals/final_per_class.png +3 -0
  29. visuals/final_per_class.svg +2365 -0
  30. visuals/final_results.png +3 -0
  31. visuals/final_results.svg +2192 -0
  32. visuals/final_system_architecture.png +3 -0
  33. visuals/final_system_architecture.svg +2990 -0
  34. visuals/final_system_walkthrough.gif +3 -0
  35. visuals/temporal_cnn_explained.png +3 -0
  36. visuals/temporal_cnn_explained.svg +1929 -0
  37. visuals/temporal_cnn_walkthrough.gif +3 -0
main_method/checkpoints/shared/attention_temporal_cnn_seed3407.tar ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:de57690bdbae4ff182b983429e1b6c2683a9ad1fc7bfe9011a7a3cfc24f53bf3
3
+ size 123402
main_method/checkpoints/shared/new_temporal_cnn_seed3407.tar ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:a08c3485199d8b519bf1a9dad72c84545b7adee818798acdfe068135be3de833
3
+ size 122582
main_method/checkpoints/shared/original_temporal_cnn_seed3407.tar ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:08ba0ec1c2409596301504f299c40b8eb20346c12241903364d74179b23a1774
3
+ size 122582
main_method/checkpoints/shared/sam_network_seed3407.tar ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:aa834986f0756f8bcf5646f3af63d0ccbd59ad46d33f6a64641e98fe14e679f1
3
+ size 24142864
main_method/checkpoints/shared/training_feature_cluster_centres_seed3407.tar ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:3a17469c8d41370e6808f00c24fc49f8801c88a9e4715b5a19802bba9ec3fb30
3
+ size 116521
main_method/code/augmentation.py ADDED
@@ -0,0 +1,67 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import math,random
2
+ import torch
3
+ import config as C
4
+
5
+ def aug_dihedral(xc, yc):
6
+ """One dihedral-8 transform per crop-batch, image and label together."""
7
+ if torch.rand(()) > 0.5:
8
+ xc, yc = xc.flip(-2), yc.flip(-2)
9
+ if torch.rand(()) > 0.5:
10
+ xc, yc = xc.flip(-1), yc.flip(-1)
11
+ k = int(torch.randint(0, 4, ()))
12
+ if k:
13
+ xc, yc = torch.rot90(xc, k, (-2, -1)), torch.rot90(yc, k, (-2, -1))
14
+ return xc.contiguous(), yc.contiguous()
15
+
16
+
17
+ def aug_temporal_subsample(xc, pos, p=0.5, drop_max=0.2, keep_min=24):
18
+ """Drop up to `drop_max` of the frames, order preserved. Positions keep
19
+ their original index values -> emulates missing acquisitions of an
20
+ otherwise identical season. No-op with probability 1-p."""
21
+ if torch.rand(()) > p:
22
+ return xc, pos
23
+ T = xc.shape[1]
24
+ keep = int(round(T * (1.0 - random.uniform(0.0, drop_max))))
25
+ keep = max(keep_min, min(T, keep))
26
+ if keep >= T:
27
+ return xc, pos
28
+ idx = torch.randperm(T)[:keep].sort().values.to(xc.device)
29
+ return (xc.index_select(1, idx).contiguous(),
30
+ pos.index_select(1, idx).contiguous())
31
+
32
+
33
+ def aug_frame_dropout(xc, p=0.25, max_frames=2):
34
+ """Zero 1-2 whole frames (0 == dataset mean after normalisation) —
35
+ emulates cloudy/lost acquisitions."""
36
+ if torch.rand(()) > p:
37
+ return xc
38
+ T = xc.shape[1]
39
+ n = random.randint(1, max_frames)
40
+ idx = torch.randperm(T)[:n].to(xc.device)
41
+ xc = xc.clone()
42
+ xc[:, idx] = 0.0
43
+ return xc
44
+
45
+
46
+ def aug_spectral(xc, gain_std=0.05, bias_std=0.03, noise_std=0.01):
47
+ """Per-sample, per-band gain/bias jitter + small gaussian noise (data is
48
+ z-normalised, so these are fractions of one std)."""
49
+ B, T, Ch, H, W = xc.shape
50
+ dev = xc.device
51
+ gain = 1.0 + gain_std * torch.randn(B, 1, Ch, 1, 1, device=dev)
52
+ bias = bias_std * torch.randn(B, 1, Ch, 1, 1, device=dev)
53
+ xc = xc * gain + bias
54
+ if noise_std > 0:
55
+ xc = xc + noise_std * torch.randn_like(xc)
56
+ return xc.contiguous()
57
+
58
+
59
+ def lr_factor(step, total_steps, warmup_steps, min_ratio):
60
+ """Linear warmup then cosine decay to min_ratio."""
61
+ if step < warmup_steps:
62
+ return (step + 1) / max(1, warmup_steps)
63
+ p = (step - warmup_steps) / max(1, total_steps - warmup_steps)
64
+ p = min(1.0, p)
65
+ cos = 0.5 * (1.0 + math.cos(math.pi * p))
66
+ return min_ratio + (1.0 - min_ratio) * cos
67
+
main_method/code/config.py ADDED
@@ -0,0 +1,231 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ """Final method configuration. Sampling and seed match STCLN; preprocessing differences are documented in FINAL_REPORT.md."""
2
+ import os
3
+ from pathlib import Path
4
+
5
+ # ─── Paths ──────────────────────────────────────────────────────────────────
6
+ # Derived from this file's own location so the project moves between machines
7
+ # without edits. Current layout on this box:
8
+ #
9
+ # /home/ubuntu/tsrda/ <- REPO_ROOT = EXP_ROOT (code + checkpoints)
10
+ # /home/ubuntu/test/PASTIS/ <- PASTIS_ROOT (dataset)
11
+ #
12
+ # PASTIS_ROOT is searched in the order below; the first existing hit wins.
13
+ # Override either root by env var, e.g.
14
+ # PASTIS_ROOT=/mnt/data/PASTIS python3 check_data.py
15
+ REPO_ROOT = Path(__file__).resolve().parents[2]
16
+
17
+ _PASTIS_CANDIDATES = (
18
+ # Kaggle notebook locations (PASTIS-R dataset attached as an input)
19
+ Path("/home/ubuntu/PASTIS"),
20
+ Path("/home/ubuntu/PASTIS"),
21
+ REPO_ROOT / "PASTIS-R",
22
+ REPO_ROOT / "PASTIS",
23
+ REPO_ROOT.parent / "PASTIS",
24
+ )
25
+
26
+
27
+ def _find_pastis_root():
28
+ env = os.environ.get("PASTIS_ROOT")
29
+ if env:
30
+ return Path(env)
31
+ for cand in _PASTIS_CANDIDATES:
32
+ if (cand / "metadata.geojson").is_file():
33
+ return cand
34
+ raise FileNotFoundError(
35
+ "PASTIS dataset not found. Looked for metadata.geojson in:\n "
36
+ + "\n ".join(str(c) for c in _PASTIS_CANDIDATES)
37
+ + "\nSet the PASTIS_ROOT environment variable to the dataset directory."
38
+ )
39
+
40
+
41
+ PASTIS_ROOT = _find_pastis_root()
42
+ DATA_S2_DIR = PASTIS_ROOT / "DATA_S2"
43
+ ANNOT_DIR = PASTIS_ROOT / "ANNOTATIONS"
44
+ META_PATH = PASTIS_ROOT / "metadata.geojson"
45
+ NORM_PATH = PASTIS_ROOT / "NORM_S2_patch.json"
46
+
47
+ EXP_ROOT = Path(os.environ.get("EXP_ROOT", REPO_ROOT))
48
+ CKPT_DIR_PRE = EXP_ROOT / "checkpoints" / "pretrain"
49
+ CKPT_DIR_FT = EXP_ROOT / "checkpoints" / "finetune"
50
+
51
+ # ─── Reproducibility ────────────────────────────────────────────────────────
52
+ SEED = 3407 # [OFFICIAL] torch.manual_seed in
53
+ # finetuning_STCLN.py:25 and test_STCLN.py:11
54
+ VARIANCE_SEEDS = (3407, 42, 1234)
55
+ # [RESEARCH] additional seeds used for
56
+ # seed-variance runs. Pass with --seed.
57
+
58
+ # ─── Model dimensions ───────────────────────────────────────────────────────
59
+ N_CHANNELS = 10 # [OFFICIAL]
60
+ D_MODEL = 256 # [OFFICIAL]
61
+ N_HEADS = 8 # [OFFICIAL]
62
+ N_CLASSES = 20 # [OFFICIAL] 0=background, 19=void, 1-18 scored
63
+ T_PAD = 48 # inert; UTAE_ASPP absorbs it for constructor
64
+ # compatibility and the encoder self-pads
65
+
66
+ # T-SRDA schedule: KV reduction ratio per block (replaces Swin/DaViT windows).
67
+ R_SCHEDULE = [4, 4, 4] # [TSRDA] the architectural variable
68
+
69
+ # Legacy temporal-Swin params — kept ONLY so the train scripts' constructor
70
+ # call sites compile unchanged. TemporalSRDAEncoder ignores them.
71
+ TSE_WINDOWS = [4, 8, 16]
72
+ TSE_SHIFTS = [0, 4, 0]
73
+
74
+ # ─── Protocol: geometry ─────────────────────────────────────────────────────
75
+ PATCH_SIZE = 128 # [OFFICIAL] PASTIS native patch
76
+ CROP_SIZE = 32 # [OFFICIAL] PATCH_SIZE // 4
77
+ REF_DATE_STR = "2018-09-01" # [OFFICIAL]
78
+ USE_INDEX_POSITIONS = True # [OFFICIAL] the model is fed torch.arange(T),
79
+ # NOT real day offsets. See
80
+ # finetuning_STCLN.py:198 — every forward call
81
+ # passes `torch.tensor(range(T))`. Real days are
82
+ # still returned by the dataset for analysis.
83
+
84
+ # ─── Protocol: pretrain split ───────────────────────────────────────────────
85
+ PRETRAIN_FOLDS = [5] # [OFFICIAL] 496 patches
86
+ PRETRAIN_CROP_GRID = 4 # [OFFICIAL] inner `for i in range(4): for j in
87
+ # range(4)` loop -> 16 crops per patch, each a
88
+ # SEPARATE optimizer step.
89
+ # 496 / 4 = 124 batches x 16 = 1,984 steps/ep
90
+ CROPS_PER_PATCH = PRETRAIN_CROP_GRID ** 2 # 16
91
+
92
+ # ─── Protocol: finetune splits (hardcoded patch IDs, not a fold filter) ─────
93
+ # The official script builds the dataset with folds=[1] / folds=[2] and then
94
+ # OVERWRITES dataset.id_patches with these literal lists. Verified against
95
+ # metadata.geojson: every train ID is fold 1, every val ID is fold 2, the two
96
+ # sets are disjoint, and neither touches the fold-4 test set or fold-5
97
+ # pretrain pool. Duplicates are intentional and are KEPT — they make those
98
+ # patches count twice per epoch.
99
+ FT_CROP_IJ = [(0, 0), (1, 1)] # [OFFICIAL] finetuning_STCLN.py:185 — only the
100
+ # first two diagonal crops of the 4x4 grid.
101
+ # 76 / 2 = 38 batches x 2 crops = 76 steps/ep
102
+
103
+ TRAIN_PATCH_IDS = [
104
+ 10279, 40282, 10174, 40538, 10457, 30088, 10151, 30602, 40275, 20052,
105
+ 20153, 10056, 20147, 40420, 10450, 20614, 20167, 40446, 20251, 20103,
106
+ 20613, 20349, 20384, 40337, 40163, 10030, 10068, 10399, 30327, 10289,
107
+ 30351, 40198, 20167, 20153, 20207, 20203, 10000, 10354, 20214, 10007,
108
+ 10392, 30055, 10054, 20009, 10040, 10147, 10110, 10105, 20398, 20469,
109
+ 20203, 20254, 30402, 30013, 40200, 30689, 20115, 20356, 20345, 20466,
110
+ 40033, 10153, 30153, 30012, 40340, 30140, 40214, 10129, 30211, 20078,
111
+ 30109, 30013, 20116, 20243, 20085, 40271,
112
+ ] # [OFFICIAL] 76 entries, 72 unique (20153, 20167, 20203, 30013 appear 2x)
113
+
114
+ VAL_PATCH_IDS = [
115
+ 10127, 40438, 30643, 30619, 30436, 10306, 10127, 30226, 40027, 40279,
116
+ 40085, 40455, 40426, 40444, 40298, 40231, 20498, 40298, 20149, 20315,
117
+ 20340, 20618, 20412, 20231, 40006, 40138, 40186, 10087, 40430, 30194,
118
+ 10247, 40383, 20364, 20128, 20060, 20118, 40001, 20080, 40063, 30000,
119
+ 40063, 40000, 40348, 10021, 40001, 20023, 30000, 20441, 20235, 20344,
120
+ 20297, 20576, 30014, 30275, 30298, 30083, 20206, 20443, 20423, 20380,
121
+ 30064, 30084, 30145, 10107, 10225, 40558, 10383, 20131, 30010, 20022,
122
+ 30295, 20042, 20031, 40046, 20358, 30142,
123
+ ] # [OFFICIAL] 76 entries, 71 unique (10127, 40298, 40001, 40063, 30000 2x)
124
+
125
+ # ─── Protocol: test split ───────────────────────────────────────────────────
126
+ TEST_FOLDS = [4] # [OFFICIAL] 482 patches, spatially disjoint
127
+ # from folds 1/2/5 with a 1 km buffer
128
+ TEST_FULL_PATCH = True # [OFFICIAL] test_STCLN.py:55 does
129
+ # `split = W // 1` -> the whole 128x128 patch
130
+ # is evaluated, NOT 32x32 crops.
131
+ # 482 patches ~ 482 x 16 = 7,712 crop-equiv
132
+
133
+ # ─── Pretrain hyperparameters ───────────────────────────────────────────────
134
+ PRE_EPOCHS = 100 # [OFFICIAL]
135
+ PRE_BATCH = 4 # [OFFICIAL] PATCHES per batch, not crops. The
136
+ # inner 4x4 loop then does 16 separate
137
+ # optimizer steps on 4 crops each. Raising this
138
+ # changes the optimization trajectory, not just
139
+ # memory — do not tune it for the headline run.
140
+ PRE_LR = 1e-4 # [OFFICIAL] flat, no schedule
141
+ PRE_WD = 0.0 # [OFFICIAL] AdamW with wd=0 reduces to Adam
142
+ # exactly. Set to 0.0 (from 0.01) so the only
143
+ # variable vs A_linear is the temporal encoder.
144
+ PRE_CLIP = 5.0 # [OFFICIAL]
145
+ MASK_RATIO = 0.4 # [OFFICIAL]
146
+ NDVI_THRESH = 0.2 # [OFFICIAL]
147
+ CLOUD_GATE = 0.9 # [OFFICIAL] STCLN.py:200 `mask[clusterLmean
148
+ # <= 0.9] = 1`. clusterLmean averages the NDVI
149
+ # indicator over H and W, so this is a PER-FRAME
150
+ # gate: a timestep whose frame is <=90%
151
+ # vegetated is left ENTIRELY visible. It is NOT
152
+ # a per-pixel vegetation filter. Measured on 20
153
+ # fold-5 patches: fires on 90.6% of frames,
154
+ # leaving 96.2% of all values visible.
155
+ PRE_SAVE_EVERY = 20 # [TSRDA] keep a numbered milestone every N
156
+ # epochs (0, 19, 39, 59, 79, 99 at N=20).
157
+ # Independent of this, `latest.tar` is written
158
+ # EVERY epoch with optimizer + scaler + RNG
159
+ # state, so a crash costs at most one epoch
160
+ # (~26 min) rather than up to N (~8.7 h).
161
+ DEEP_SUP = False # [OFFICIAL] the deep-supervision term is
162
+ # commented out upstream
163
+ # (pretraining_STCLN.py:141
164
+ # `l = loss(output, target)#+loss(x2,target)`).
165
+
166
+ # ─── Finetune hyperparameters ───────────────────────────────────────────────
167
+ FT_EPOCHS = 100 # [OFFICIAL]
168
+ FT_BATCH = 2 # [OFFICIAL] PATCHES per batch (x2 crop-steps)
169
+ FT_LR = 1e-4 # [OFFICIAL] flat Adam, NO scheduler
170
+ FT_WD = 0.0 # [OFFICIAL] AdamW with wd=0 == Adam
171
+ FT_AUGMENT = False # [OFFICIAL] no augmentation in finetuning_STCLN
172
+ FT_SCHEDULER = None # [OFFICIAL] flat LR, no schedule.
173
+ FT_PATIENCE = 0 # [OFFICIAL] no early stopping (grep: 0 matches
174
+ # in the reference). 0 disables it entirely.
175
+ # MUST stay 0: the primary report is the
176
+ # FIXED-EPOCH ep99 number. Early stopping on
177
+ # 152 val crops manufactured a 147x variance
178
+ # effect that vanished at fixed epoch, and if
179
+ # it fires at ep58 there is no ep99 checkpoint
180
+ # to compare against A_linear at all.
181
+
182
+ # ─── Evaluation ─────────────────────────────────────────────────────────────
183
+ EVAL_BATCH = int(os.environ.get("EVAL_BATCH", 2)) # 2 fits a 16 GB T4 (9.5 GB peak measured)
184
+ # [HW] official test_STCLN.py uses 1. Full-patch
185
+ # inference is numerically identical at any
186
+ # batch size (nothing in eval mode depends on
187
+ # the batch), so this is a pure memory/speed
188
+ # knob with no effect on the reported metrics.
189
+ # MEASURED for T-SRDA on this 23.6 GB L4 against
190
+ # the worst case (fold 4 runs to T=61):
191
+ # batch 1 -> 5.05 GB peak 482 batches
192
+ # batch 2 -> 9.50 GB peak 241 batches
193
+ # batch 4 -> 16.86 GB peak 121 batches
194
+ # Default 4 gives the protocol's 121 batches and
195
+ # fits with ~6.7 GB spare ON A FREE CARD.
196
+ # asr-gpu.service is systemd-`enabled` on this
197
+ # box and takes ~8 GB when it comes back after a
198
+ # reboot, leaving ~15.6 GB — under batch 4. If
199
+ # eval OOMs, just rerun with EVAL_BATCH=2; the
200
+ # numbers are unchanged.
201
+ EVAL_TTA = False # [OFFICIAL] test_STCLN.py has no TTA
202
+
203
+ # ─── PASTIS class nomenclature ──────────────────────────────────────────────
204
+ # THE single source of truth for this repo. The list that shipped in the
205
+ # original tsrda scripts was wrong for 12 of 20 classes (it invented
206
+ # "Protein peas", "Flax", "Sugar beet", "Vineyards", "Nuts" and mislabelled
207
+ # 13 as Soy / 17 as Potatoes). Verified identical to PhenoProto-SSL's
208
+ # splits.PASTIS_CLASSES, which preflight.py asserts against the official
209
+ # PASTIS benchmark list. Never redefine this locally in another module.
210
+ PASTIS_CLASSES = {
211
+ 0: "Background",
212
+ 1: "Meadow",
213
+ 2: "Soft winter wheat",
214
+ 3: "Corn",
215
+ 4: "Winter barley",
216
+ 5: "Winter rapeseed",
217
+ 6: "Spring barley",
218
+ 7: "Sunflower",
219
+ 8: "Grapevine",
220
+ 9: "Beet",
221
+ 10: "Winter triticale",
222
+ 11: "Winter durum wheat",
223
+ 12: "Fruits, vegetables, flowers",
224
+ 13: "Potatoes",
225
+ 14: "Leguminous fodder",
226
+ 15: "Soybeans",
227
+ 16: "Orchard",
228
+ 17: "Mixed cereal",
229
+ 18: "Sorghum",
230
+ 19: "Void label",
231
+ }
main_method/code/dataset.py ADDED
@@ -0,0 +1,203 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ """
2
+ PASTIS dataset loader for T-SRDA — OFFICIAL STCLN protocol.
3
+
4
+ Each dataset item is ONE FULL 128x128 patch. Sub-cropping happens in the
5
+ training loop, not here, exactly as the reference implementation does it:
6
+
7
+ pretrain (pretraining_STCLN.py:123) for i in range(4): for j in range(4)
8
+ finetune (finetuning_STCLN.py:185) for i,j in [[0,0],[1,1]]
9
+ test (test_STCLN.py:52) for i in range(1) -> full patch
10
+
11
+ Keeping the crop schedule in the loop is what makes the step counts line up
12
+ with the paper: each (i, j) is a SEPARATE optimizer step, so pretrain does
13
+ 124 batches x 16 crops = 1,984 steps/epoch, not 496 steps.
14
+
15
+ Split builders:
16
+ patches_in_folds([5]) -> 496 pretrain patch IDs
17
+ train_patch_ids() -> 76 IDs (fold 1, duplicates kept)
18
+ val_patch_ids() -> 76 IDs (fold 2, duplicates kept)
19
+ test_patch_ids() -> 482 IDs (fold 4)
20
+ """
21
+ import json
22
+ from datetime import datetime
23
+ import numpy as np
24
+ import torch
25
+ from torch.utils.data import Dataset
26
+
27
+ import config as C
28
+
29
+ REF_DATE = datetime(*map(int, C.REF_DATE_STR.split("-")))
30
+
31
+
32
+ # ---------------------------------------------------------------------------
33
+ # Metadata + normalisation loaders (cached at module level)
34
+ # ---------------------------------------------------------------------------
35
+ def _date_to_days(date_int):
36
+ s = str(int(date_int))
37
+ y, m, d = int(s[:4]), int(s[4:6]), int(s[6:8])
38
+ return (datetime(y, m, d) - REF_DATE).days
39
+
40
+
41
+ def _load_meta():
42
+ raw = json.load(open(C.META_PATH))
43
+ info = {}
44
+ for feat in raw["features"]:
45
+ p = feat["properties"]
46
+ pid = int(p.get("ID_PATCH", p.get("id_patch", -1)))
47
+ fold = int(p.get("Fold", p.get("fold", 0)))
48
+ dates_dict = p.get("dates-S2", {})
49
+ sorted_dates = sorted(dates_dict.items(), key=lambda x: int(x[0]))
50
+ days = [_date_to_days(v) for _, v in sorted_dates]
51
+ info[pid] = {"fold": fold, "dates": days}
52
+ return info
53
+
54
+
55
+ def _load_norm():
56
+ """Mean/std averaged across all folds; differs from fold-selected upstream normalization."""
57
+ raw = json.load(open(C.NORM_PATH))
58
+ if "mean" in raw:
59
+ return (np.array(raw["mean"], dtype=np.float32),
60
+ np.array(raw["std"], dtype=np.float32))
61
+ fold_keys = [k for k in raw if k.startswith("Fold_")]
62
+ means = np.array([raw[k]["mean"] for k in fold_keys], dtype=np.float32)
63
+ stds = np.array([raw[k]["std"] for k in fold_keys], dtype=np.float32)
64
+ return means.mean(axis=0), stds.mean(axis=0)
65
+
66
+
67
+ _META = None
68
+ _NORM = None
69
+
70
+
71
+ def get_meta():
72
+ global _META
73
+ if _META is None:
74
+ _META = _load_meta()
75
+ return _META
76
+
77
+
78
+ def get_norm():
79
+ global _NORM
80
+ if _NORM is None:
81
+ _NORM = _load_norm()
82
+ return _NORM
83
+
84
+
85
+ # ---------------------------------------------------------------------------
86
+ # Split builders (official protocol)
87
+ # ---------------------------------------------------------------------------
88
+ def patches_in_folds(folds):
89
+ """Sorted patch IDs belonging to the given folds."""
90
+ meta = get_meta()
91
+ return sorted(p for p in meta if meta[p]["fold"] in folds)
92
+
93
+
94
+ def pretrain_patch_ids():
95
+ """496 fold-5 patch IDs — the unlabelled pretraining pool."""
96
+ return patches_in_folds(C.PRETRAIN_FOLDS)
97
+
98
+
99
+ def train_patch_ids():
100
+ """76 hardcoded fold-1 IDs. Duplicates are intentional and preserved."""
101
+ return list(C.TRAIN_PATCH_IDS)
102
+
103
+
104
+ def val_patch_ids():
105
+ """76 hardcoded fold-2 IDs. Duplicates are intentional and preserved."""
106
+ return list(C.VAL_PATCH_IDS)
107
+
108
+
109
+ def test_patch_ids():
110
+ """482 fold-4 patch IDs — evaluated as full 128x128 patches."""
111
+ return patches_in_folds(C.TEST_FOLDS)
112
+
113
+
114
+ # ---------------------------------------------------------------------------
115
+ # Patch-level Dataset
116
+ # ---------------------------------------------------------------------------
117
+ class PASTISPatchDataset(Dataset):
118
+ """Returns ONE full 128x128 patch per __getitem__.
119
+
120
+ __getitem__ -> (x, pos, days), y
121
+ x (T, 10, 128, 128) float32, per-band normalised
122
+ pos (T,) what the model is fed: arange(T) if USE_INDEX_POSITIONS
123
+ else real day offsets
124
+ days (T,) real day offsets from REF_DATE, always — for analysis
125
+ y (128, 128) int64 semantic labels
126
+ """
127
+
128
+ def __init__(self, patch_ids, load_target=True):
129
+ self.ids = list(patch_ids) # duplicates preserved on purpose
130
+ self.meta = get_meta()
131
+ self.norm_mean, self.norm_std = get_norm()
132
+ self.load_target = load_target
133
+
134
+ def __len__(self):
135
+ return len(self.ids)
136
+
137
+ def __getitem__(self, idx):
138
+ pid = self.ids[idx]
139
+
140
+ x = np.load(C.DATA_S2_DIR / f"S2_{pid}.npy").astype(np.float32)
141
+ x = (x - self.norm_mean[None, :, None, None]) \
142
+ / (self.norm_std[None, :, None, None] + 1e-8)
143
+
144
+ T = x.shape[0]
145
+ days = np.asarray(self.meta[pid]["dates"][:T], dtype=np.float32)
146
+ if days.shape[0] < T:
147
+ days = np.pad(days, (0, T - days.shape[0]))
148
+
149
+ pos = np.arange(T, dtype=np.float32) if C.USE_INDEX_POSITIONS else days
150
+
151
+ if self.load_target:
152
+ target = np.load(C.ANNOT_DIR / f"TARGET_{pid}.npy")
153
+ y = torch.from_numpy(target[0].astype(np.int64))
154
+ else:
155
+ y = torch.zeros(C.PATCH_SIZE, C.PATCH_SIZE, dtype=torch.long)
156
+
157
+ return (torch.from_numpy(x),
158
+ torch.from_numpy(pos),
159
+ torch.from_numpy(days)), y
160
+
161
+
162
+ # ---------------------------------------------------------------------------
163
+ # Collate (pads variable T to the batch max — official pad_collate behaviour)
164
+ # ---------------------------------------------------------------------------
165
+ def pad_collate(batch, pad_value=0.0):
166
+ xs, ps, ds, ys = [], [], [], []
167
+ for (x, p, d), y in batch:
168
+ xs.append(x); ps.append(p); ds.append(d); ys.append(y)
169
+
170
+ max_T = max(x.shape[0] for x in xs)
171
+
172
+ def pad(t, v=0.0):
173
+ if t.shape[0] == max_T:
174
+ return t
175
+ z = torch.full((max_T - t.shape[0], *t.shape[1:]), v, dtype=t.dtype)
176
+ return torch.cat([t, z], dim=0)
177
+
178
+ return ((torch.stack([pad(x, pad_value) for x in xs]),
179
+ torch.stack([pad(p) for p in ps]),
180
+ torch.stack([pad(d) for d in ds])),
181
+ torch.stack(ys))
182
+
183
+
184
+ # Backwards-compatible alias — the train scripts pass collate_fn=collate_fn.
185
+ collate_fn = pad_collate
186
+
187
+
188
+ # ---------------------------------------------------------------------------
189
+ # Crop helper — the inner (i, j) loop of the official training scripts
190
+ # ---------------------------------------------------------------------------
191
+ def crop_ij(x, y, i, j, grid=None):
192
+ """Slice crop (i, j) out of a batch of full patches.
193
+
194
+ x: (B, T, C, H, W) y: (B, H, W) or None
195
+ grid: 4 -> 32x32 crops (train/finetune); 1 -> the whole patch (test)
196
+
197
+ Mirrors `split = input.shape[-1] // grid` in the reference scripts.
198
+ """
199
+ grid = C.PRETRAIN_CROP_GRID if grid is None else grid
200
+ s = x.shape[-1] // grid
201
+ xc = x[:, :, :, i * s:(i + 1) * s, j * s:(j + 1) * s]
202
+ yc = None if y is None else y[:, i * s:(i + 1) * s, j * s:(j + 1) * s]
203
+ return xc, yc
main_method/code/evaluate.py ADDED
@@ -0,0 +1,88 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ """Evaluate complete final bundles without changing the scored input protocol."""
2
+ import argparse,hashlib,json,time
3
+ from pathlib import Path
4
+ import numpy as np
5
+ import torch
6
+ from torch.utils.data import DataLoader
7
+ import config as C
8
+ from dataset import PASTISPatchDataset,val_patch_ids,test_patch_ids,pad_collate,crop_ij
9
+ from model import UTAE_ASPP,UTAEClassificationDual
10
+ from training_feature_clusters import DepthCollector,probability,metrics_cm
11
+ from temporal_cnn import TemporalCNN,AttentionCNN
12
+
13
+ MAIN=Path(__file__).resolve().parents[1]
14
+
15
+ def digest(path):
16
+ h=hashlib.sha256()
17
+ with path.open('rb') as f:
18
+ for part in iter(lambda:f.read(8*1024*1024),b''):h.update(part)
19
+ return h.hexdigest()
20
+
21
+ def manifest(name):
22
+ folder=MAIN/'configurations'/f'32X32_{name}_seed3407'
23
+ return json.loads((folder/'manifest.json').read_text()),folder
24
+
25
+ def load_state(path):
26
+ return torch.load(path,map_location='cpu',weights_only=False)
27
+
28
+ def load_models(names,device,verify=True):
29
+ specs={n:manifest(n)[0] for n in names};shared=MAIN/'checkpoints/shared'
30
+ for spec in specs.values():
31
+ if verify:
32
+ for key in ['sam_checkpoint','feature_cluster_checkpoint','original_cnn_checkpoint','addition_checkpoint']:
33
+ file=spec[key]
34
+ if digest(shared/file)!=spec['sha256'][file]:raise RuntimeError('Checkpoint hash mismatch: '+file)
35
+ 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)
36
+ first=next(iter(specs.values()));sam.load_state_dict(load_state(shared/first['sam_checkpoint'])['model_state_dict'],strict=True)
37
+ sam=sam.to(device).eval().requires_grad_(False)
38
+ clusters=load_state(shared/first['feature_cluster_checkpoint'])
39
+ old=TemporalCNN(18);old.load_state_dict(load_state(shared/first['original_cnn_checkpoint'])['state'],strict=True);old=old.to(device).eval().requires_grad_(False)
40
+ additions={}
41
+ for name,spec in specs.items():
42
+ model=TemporalCNN(18) if spec['addition_kind']=='cnn_control' else AttentionCNN(18)
43
+ ck=load_state(shared/spec['addition_checkpoint']);assert ck['seed']==3407 and ck['classes']==list(range(1,19))
44
+ model.load_state_dict(ck['state'],strict=True);additions[name]=model.to(device).eval().requires_grad_(False)
45
+ return specs,sam,clusters,old,additions
46
+
47
+ @torch.inference_mode()
48
+ def main():
49
+ ap=argparse.ArgumentParser()
50
+ ap.add_argument('--configuration',choices=['recommended_validation','highest_observed_test','both'],default='recommended_validation')
51
+ ap.add_argument('--split',choices=['val','test'],default='test')
52
+ ap.add_argument('--output',type=Path,default=MAIN/'evaluation_results.json')
53
+ ap.add_argument('--skip_hash_check',action='store_true');args=ap.parse_args()
54
+ if not torch.cuda.is_available():raise RuntimeError('The scored inference recipe requires a working CUDA runtime; CPU loading is checked separately.')
55
+ torch.set_num_threads(4);torch.manual_seed(3407);torch.backends.cuda.matmul.allow_tf32=True;torch.backends.cudnn.allow_tf32=True
56
+ names=['recommended_validation','highest_observed_test'] if args.configuration=='both' else [args.configuration]
57
+ specs,sam,clusters,old,additions=load_models(names,'cuda',not args.skip_hash_check)
58
+ collector=DepthCollector(sam.utae);mean,std=clusters['mean'].cuda(),clusters['std'].cuda()
59
+ state={k:v.cuda() for k,v in clusters['state'].items()} if clusters['kind']=='linear' else clusters['state'].cuda()
60
+ ids=val_patch_ids() if args.split=='val' else test_patch_ids();batch=2 if args.split=='val' else 1
61
+ dl=DataLoader(PASTISPatchDataset(ids),batch_size=batch,shuffle=False,num_workers=2,pin_memory=True,collate_fn=pad_collate)
62
+ matrices={name:np.zeros((20,20),np.int64) for name in names};started=time.monotonic()
63
+ try:
64
+ for bi,((x,pos,_),y) in enumerate(dl):
65
+ x,pos=x.cuda(),pos.cuda()
66
+ for i,j in C.FT_CROP_IJ if args.split=='val' else [(0,0)]:
67
+ xc,yc=crop_ij(x,y,i,j,4 if args.split=='val' else 1);collector.begin(xc,pos)
68
+ with torch.autocast('cuda',dtype=torch.float16):
69
+ output=sam(xc,pos);original_logits=old(xc,pos)
70
+ additional_logits={name:net(xc,pos) for name,net in additions.items()}
71
+ features=collector.end();spatial=output['refined_logits'].float().softmax(1)
72
+ pp=probability(features,clusters['depth'],mean,std,clusters['kind'],state)
73
+ b,_,h,w=spatial.shape;cluster_probs=torch.from_numpy(pp).cuda().reshape(b,h,w,20).permute(0,3,1,2)
74
+ feature_blend=.5*spatial+.5*cluster_probs
75
+ original_probs=torch.zeros_like(spatial);original_probs[:,1:19]=original_logits.float().softmax(1)
76
+ reference=.75*feature_blend+.25*original_probs
77
+ gt=yc.numpy().ravel();valid=(gt>0)&(gt<19)
78
+ for name,spec in specs.items():
79
+ probs=torch.zeros_like(spatial);probs[:,1:19]=additional_logits[name].float().softmax(1)
80
+ alpha=spec['addition_alpha'];prediction=((1-alpha)*reference+alpha*probs).argmax(1).cpu().numpy().ravel()
81
+ matrices[name]+=np.bincount(20*gt[valid]+prediction[valid],minlength=400).reshape(20,20)
82
+ if bi%50==0:print(args.split,bi,len(dl),flush=True)
83
+ finally:collector.close()
84
+ result={'split':args.split,'patch_entries':len(ids),'batch_size':batch,'seed':3407,'seconds':time.monotonic()-started,'configurations':{name:{'metrics':metrics_cm(matrices[name]),'manifest':specs[name]} for name in names}}
85
+ args.output.parent.mkdir(parents=True,exist_ok=True);args.output.write_text(json.dumps(result,indent=2))
86
+ for name,item in result['configurations'].items():print(name,'mIoU',item['metrics']['miou'],flush=True)
87
+
88
+ if __name__=='__main__':main()
main_method/code/losses.py ADDED
@@ -0,0 +1,94 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ """
2
+ Lovász-Softmax loss — NaN-safe version for small-batch training.
3
+
4
+ Fixes over v1:
5
+ - eps guard on union denominator (prevents /0 on rare classes)
6
+ - support for multiple ignore indices (background + void)
7
+ """
8
+ import torch
9
+ import torch.nn as nn
10
+ import torch.nn.functional as F
11
+
12
+
13
+ def lovasz_grad(gt_sorted):
14
+ """Gradient of Lovász extension w.r.t. sorted errors."""
15
+ p = len(gt_sorted)
16
+ gts = gt_sorted.sum()
17
+ intersection = gts - gt_sorted.float().cumsum(0)
18
+ union = gts + (1.0 - gt_sorted).float().cumsum(0)
19
+ jaccard = 1.0 - intersection / (union + 1e-6) # eps guard
20
+ if p > 1:
21
+ jaccard[1:p] = jaccard[1:p] - jaccard[0:-1]
22
+ return jaccard
23
+
24
+
25
+ def lovasz_softmax_flat(probas, labels, classes="present"):
26
+ """
27
+ Multi-class Lovász-Softmax on flattened tensors.
28
+ probas: (N, C) softmax probabilities
29
+ labels: (N,) ground truth indices
30
+ """
31
+ if probas.numel() == 0:
32
+ return probas * 0.0
33
+
34
+ C = probas.shape[1]
35
+
36
+ if classes == "all":
37
+ class_list = list(range(C))
38
+ elif classes == "present":
39
+ class_list = torch.unique(labels).tolist()
40
+ else:
41
+ class_list = list(classes)
42
+
43
+ losses = []
44
+ for c in class_list:
45
+ fg = (labels == c).float()
46
+ if fg.sum() == 0:
47
+ continue
48
+ class_pred = probas[:, c]
49
+ errors = (fg - class_pred).abs()
50
+ errors_sorted, perm = torch.sort(errors, dim=0, descending=True)
51
+ fg_sorted = fg[perm.data]
52
+ grad = lovasz_grad(fg_sorted)
53
+ loss_c = torch.dot(errors_sorted, grad)
54
+ if torch.isfinite(loss_c):
55
+ losses.append(loss_c)
56
+
57
+ if not losses:
58
+ return probas.sum() * 0.0
59
+
60
+ return sum(losses) / len(losses)
61
+
62
+
63
+ class LovaszSoftmaxLoss(nn.Module):
64
+ """
65
+ Lovász-Softmax for 2D segmentation.
66
+ logits: (B, C, H, W)
67
+ targets: (B, H, W) long
68
+ ignore_indices: list of class indices to exclude (e.g. [0, 19])
69
+ """
70
+ def __init__(self, ignore_indices=None, classes="present"):
71
+ super().__init__()
72
+ self.ignore_indices = ignore_indices or []
73
+ self.classes = classes
74
+
75
+ def forward(self, logits, targets):
76
+ probas = F.softmax(logits, dim=1)
77
+ B, C, H, W = probas.shape
78
+ probas_flat = probas.permute(0, 2, 3, 1).contiguous().view(-1, C)
79
+ targets_flat = targets.contiguous().view(-1)
80
+
81
+ # Mask out all ignore indices
82
+ if self.ignore_indices:
83
+ valid = torch.ones(targets_flat.shape[0], dtype=torch.bool,
84
+ device=targets_flat.device)
85
+ for idx in self.ignore_indices:
86
+ valid &= (targets_flat != idx)
87
+ probas_flat = probas_flat[valid]
88
+ targets_flat = targets_flat[valid]
89
+
90
+ if probas_flat.numel() == 0:
91
+ return logits.sum() * 0.0
92
+
93
+ loss = lovasz_softmax_flat(probas_flat, targets_flat, classes=self.classes)
94
+ return torch.nan_to_num(loss, nan=0.0)
main_method/code/model.py ADDED
@@ -0,0 +1,372 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ """
2
+ T-SRDA model — AD-STCLN backbone with PDAViT-style Temporal
3
+ Spatial-Reduction Dual-Attention (Zhou et al., Neurocomputing 2026)
4
+ replacing the DaViT/Swin temporal encoder.
5
+
6
+ Pipeline (identical I/O contract to the det experiment):
7
+
8
+ UTAE_ASPP encoder: (B,T,C,H,W), (B,T) days
9
+ -> out (B,H,W,T,D), x2 (B*T,D,H,W)
10
+ UTAEPrediction pretrain wrapper: NDVI-aware masking + MSE recon
11
+ -> (recon, recon2, target, mask) [1=visible]
12
+ UTAEClassificationDual finetune wrapper: STA temporal collapse +
13
+ dual decoder (semantic + boundary) + gated
14
+ refinement -> dict(sem_logits, bnd_logits,
15
+ refined_logits)
16
+ compute_boundary_target morphological-gradient boundary GT (B,H,W)
17
+
18
+ Temporal encoder change (the ONLY architectural difference vs det/DaViT):
19
+ TemporalDaViTEncoder -> TemporalSRDAEncoder (temporal_srda.py)
20
+ KV path: Linear d->d/R, unfold R steps -> (T/R, d), first SA (K-V
21
+ self-checking); second SA: full-T queries x reduced KV -> global
22
+ temporal receptive field per layer.
23
+
24
+ Checkpointing: chunk-level only (TEMPORAL_CHUNK sequences per checkpointed
25
+ chunk). The temporal encoder has NO internal checkpointing — layer-level +
26
+ chunk-level double-checkpointing wasted ~30% backward compute in the DaViT
27
+ version.
28
+ """
29
+ import math
30
+ import torch
31
+ import torch.nn as nn
32
+ import torch.nn.functional as F
33
+ from torch.utils.checkpoint import checkpoint
34
+
35
+ import config as C
36
+ from temporal_srda import TemporalSRDAEncoder
37
+
38
+ TEMPORAL_CHUNK = 1024 # per-pixel sequences per checkpointed chunk (train)
39
+ EVAL_TEMPORAL_CHUNK = 4096 # larger in eval — no checkpointing to pay for
40
+ SPATIAL_CHUNK = 32 # frames per spatial-encoder chunk in eval
41
+ #
42
+ # Eval-mode chunking exists for the official test protocol: test_STCLN.py feeds
43
+ # WHOLE 128x128 patches, so one batch-4 sample is 4*61 = 244 frames and
44
+ # 4*128*128 = 65,536 per-pixel temporal sequences. Unchunked, the ASPP concat
45
+ # alone (1024 ch at 128x128) would need ~16 GB. Training is unaffected: at
46
+ # 32x32 crops the chunk paths below are never entered.
47
+
48
+
49
+ # ═══════════════════════════════════════════════════════════════════════════
50
+ # 1. Positional encoding over real acquisition days
51
+ # ═══════════════════════════════════════════════════════════════════════════
52
+ class PositionalEncoder(nn.Module):
53
+ """Sinusoidal PE over day offsets. days: (..., T) -> (..., T, d)."""
54
+
55
+ def __init__(self, d_model, T=1000):
56
+ super().__init__()
57
+ self.d_model = d_model
58
+ denom = torch.pow(
59
+ T, 2.0 * (torch.arange(d_model).div(2, rounding_mode="floor"))
60
+ / d_model)
61
+ self.register_buffer("denom", denom, persistent=False)
62
+
63
+ def forward(self, days):
64
+ pe = days[..., None] / self.denom # (..., T, d)
65
+ pe = torch.stack([torch.sin(pe[..., 0::2]),
66
+ torch.cos(pe[..., 1::2])], dim=-1)
67
+ return pe.flatten(-2) # interleave sin/cos
68
+
69
+
70
+ # ═══════════════════════════════════════════════════════════════════════════
71
+ # 2. Atrous spatial encoder: (B*T, C_in, H, W) -> (B*T, D, H, W)
72
+ # ═══════════════════════════════════════════════════════════════════════════
73
+ class SEBlock(nn.Module):
74
+ def __init__(self, channels, reduction=8):
75
+ super().__init__()
76
+ self.fc = nn.Sequential(
77
+ nn.AdaptiveAvgPool2d(1),
78
+ nn.Conv2d(channels, channels // reduction, 1),
79
+ nn.ReLU(inplace=True),
80
+ nn.Conv2d(channels // reduction, channels, 1),
81
+ nn.Sigmoid(),
82
+ )
83
+
84
+ def forward(self, x):
85
+ return x * self.fc(x)
86
+
87
+
88
+ class ASPP(nn.Module):
89
+ """Atrous spatial pyramid pooling neck at full 32x32 resolution."""
90
+
91
+ def __init__(self, in_ch, out_ch, dilations=(1, 2, 4)):
92
+ super().__init__()
93
+ self.branches = nn.ModuleList([
94
+ nn.Sequential(
95
+ nn.Conv2d(in_ch, out_ch, 3, padding=d, dilation=d, bias=False),
96
+ nn.BatchNorm2d(out_ch),
97
+ nn.ReLU(inplace=True))
98
+ for d in dilations
99
+ ])
100
+ self.pool = nn.Sequential(
101
+ nn.AdaptiveAvgPool2d(1),
102
+ nn.Conv2d(in_ch, out_ch, 1, bias=False),
103
+ nn.ReLU(inplace=True),
104
+ )
105
+ self.project = nn.Sequential(
106
+ nn.Conv2d(out_ch * (len(dilations) + 1), out_ch, 1, bias=False),
107
+ nn.BatchNorm2d(out_ch),
108
+ nn.ReLU(inplace=True),
109
+ )
110
+
111
+ def forward(self, x):
112
+ feats = [b(x) for b in self.branches]
113
+ gp = self.pool(x)
114
+ feats.append(F.interpolate(gp, size=x.shape[-2:], mode="nearest"))
115
+ return self.project(torch.cat(feats, dim=1))
116
+
117
+
118
+ class AtrousSpatialEncoder(nn.Module):
119
+ """Dilated conv stem + ASPP + SE. Keeps full spatial resolution."""
120
+
121
+ def __init__(self, in_channels=10, d_model=256):
122
+ super().__init__()
123
+ mid = d_model // 4 # 64
124
+ self.stem = nn.Sequential(
125
+ nn.Conv2d(in_channels, mid, 3, padding=1, bias=False),
126
+ nn.BatchNorm2d(mid),
127
+ nn.ReLU(inplace=True),
128
+ nn.Conv2d(mid, mid, 3, padding=2, dilation=2, bias=False),
129
+ nn.BatchNorm2d(mid),
130
+ nn.ReLU(inplace=True),
131
+ )
132
+ self.aspp = ASPP(mid, d_model, dilations=(1, 2, 4))
133
+ self.se = SEBlock(d_model)
134
+
135
+ def forward(self, x): # (N, C, H, W)
136
+ return self.se(self.aspp(self.stem(x))) # (N, D, H, W)
137
+
138
+
139
+ # ═══════════════════════════════════════════════════════════════════════════
140
+ # 3. Encoder wrapper: spatial per-frame + T-SRDA temporal per-pixel
141
+ # ═══════════════════════════════════════════════════════════════════════════
142
+ class UTAE_ASPP(nn.Module):
143
+ """
144
+ forward(x, pos):
145
+ x : (B, T, C, H, W) normalized S2 crops
146
+ pos : (B, T) day offsets (0 on padded steps)
147
+ returns:
148
+ out : (B, H, W, T, D) temporally contextualized per-pixel features
149
+ x2 : (B*T, D, H, W) spatial features (deep-supervision recon path)
150
+ """
151
+
152
+ def __init__(self, n_channels=10, d_model=256, n_heads=8,
153
+ T_pad=48, windows=None, shifts=None, **kwargs):
154
+ super().__init__()
155
+ # T_pad / windows / shifts are absorbed for constructor compatibility
156
+ # with pretrain.py / finetune.py / evaluate.py; T-SRDA ignores them
157
+ # (the encoder self-pads T to a multiple of max(R_SCHEDULE)).
158
+ self.d_model = d_model
159
+ self.spatial_encoder = AtrousSpatialEncoder(n_channels, d_model)
160
+ self.pos_encoder = PositionalEncoder(d_model)
161
+ self.temporal_encoder = TemporalSRDAEncoder(
162
+ d_model=d_model, n_heads=n_heads, R_schedule=C.R_SCHEDULE)
163
+
164
+ def _run_temporal_chunk(self, x_chunk, pos_chunk):
165
+ return self.temporal_encoder(x_chunk, pos_chunk)
166
+
167
+ def _encode_spatial(self, frames):
168
+ """(N, C, H, W) -> (N, D, H, W). Chunked in eval to cap the ASPP peak."""
169
+ N = frames.shape[0]
170
+ if self.training or N <= SPATIAL_CHUNK:
171
+ return self.spatial_encoder(frames)
172
+ return torch.cat([self.spatial_encoder(frames[s:s + SPATIAL_CHUNK])
173
+ for s in range(0, N, SPATIAL_CHUNK)], dim=0)
174
+
175
+ def forward(self, x, pos):
176
+ B, T, Cc, H, W = x.shape
177
+
178
+ # ---- spatial encoding, frame by frame ------------------------------
179
+ x2 = self._encode_spatial(x.reshape(B * T, Cc, H, W)) # (B*T,D,H,W)
180
+ D = x2.shape[1]
181
+
182
+ # ---- to per-pixel temporal sequences -------------------------------
183
+ x_te = (x2.reshape(B, T, D, H, W)
184
+ .permute(0, 3, 4, 1, 2) # (B,H,W,T,D)
185
+ .reshape(B * H * W, T, D))
186
+
187
+ pe = self.pos_encoder(pos) # (B, T, D)
188
+ pos_exp = (pe[:, None, None, :, :]
189
+ .expand(B, H, W, T, D)
190
+ .reshape(B * H * W, T, D))
191
+
192
+ # ---- temporal encoder, chunked + checkpointed in training ----------
193
+ N = x_te.shape[0]
194
+ if self.training and N > TEMPORAL_CHUNK:
195
+ outs = []
196
+ for s in range(0, N, TEMPORAL_CHUNK):
197
+ e = min(s + TEMPORAL_CHUNK, N)
198
+ outs.append(checkpoint(self._run_temporal_chunk,
199
+ x_te[s:e], pos_exp[s:e],
200
+ use_reentrant=False))
201
+ out = torch.cat(outs, dim=0)
202
+ elif not self.training and N > EVAL_TEMPORAL_CHUNK:
203
+ outs = []
204
+ for s in range(0, N, EVAL_TEMPORAL_CHUNK):
205
+ e = min(s + EVAL_TEMPORAL_CHUNK, N)
206
+ outs.append(self.temporal_encoder(x_te[s:e], pos_exp[s:e]))
207
+ out = torch.cat(outs, dim=0)
208
+ else:
209
+ out = self.temporal_encoder(x_te, pos_exp) # (B*H*W,T,D)
210
+
211
+ out = out.reshape(B, H, W, T, D)
212
+ return out, x2
213
+
214
+
215
+ # ═══════════════════════════════════���═══════════════════════════════════════
216
+ # 4. Pretrain wrapper: NDVI-aware masking + MSE reconstruction
217
+ # (logic recovered from the det pipeline — mask: 1=visible, 0=masked)
218
+ # ═══════════════════════════════════════════════════════════════════════════
219
+ class UTAEPrediction(nn.Module):
220
+ def __init__(self, encoder, n_channels=10, d_model=256, mask_ratio=0.4):
221
+ super().__init__()
222
+ self.utae = encoder
223
+ self.linear = nn.Linear(d_model, n_channels) # main reconstruction
224
+ self.midlinear = nn.Linear(d_model, n_channels) # deep supervision
225
+ self.mask_ratio = mask_ratio
226
+ self.mask_token = nn.Parameter(torch.zeros(1))
227
+
228
+ def forward(self, x, pos):
229
+ """Official STCLN masking — STCLN.py:193-202, bit-for-bit.
230
+
231
+ The NDVI indicator is per-timestep-per-pixel, but `clusterLmean`
232
+ averages it over H and W, so the gate is PER FRAME: a timestep whose
233
+ frame is <= CLOUD_GATE vegetated is left ENTIRELY visible. This is
234
+ NOT a per-pixel vegetation filter, and getting that wrong changes the
235
+ pretext task (measured: the official gate leaves 96.2% of all values
236
+ visible, a per-pixel version leaves 82.3%).
237
+ """
238
+ # x: (B, T, C, H, W) pos: (B, T)
239
+ target = x.clone()
240
+ B, T, Cc, H, W = x.shape
241
+
242
+ with torch.no_grad():
243
+ # NDVI indicator on normalized bands: (NIR b6 - Red b2)/(Red + NIR)
244
+ ndvi = (x[:, :, 6] - x[:, :, 2]) / (x[:, :, 2] + x[:, :, 6] + 1e-20)
245
+ cluster = ndvi.gt(C.NDVI_THRESH).float() # (B, T, H, W)
246
+
247
+ # F.dropout: kept -> scaled ones, dropped -> zeros; * (1-p) undoes
248
+ # the scaling so the mask is exactly {0, 1}. 1 = visible.
249
+ mask = torch.ones(B, T, H, W, device=x.device)
250
+ mask = F.dropout(mask, p=self.mask_ratio, training=True) \
251
+ * (1.0 - self.mask_ratio)
252
+ mask_4d = mask[:, :, None].repeat(1, 1, Cc, 1, 1)
253
+
254
+ # per-FRAME vegetation fraction -> exempt whole frames from masking
255
+ frame_veg = cluster.mean(dim=[2, 3]) # (B, T)
256
+ exempt = (frame_veg <= C.CLOUD_GATE)[:, :, None, None, None]
257
+ mask_4d = torch.where(exempt, torch.ones_like(mask_4d), mask_4d)
258
+
259
+ x_masked = x * mask_4d + self.mask_token * (1.0 - mask_4d)
260
+
261
+ out, x2 = self.utae(x_masked, pos) # (B,H,W,T,D), (B*T,D,H,W)
262
+
263
+ recon = self.linear(out).permute(0, 3, 4, 1, 2) # (B,T,C,H,W)
264
+ recon2 = (self.midlinear(x2.permute(0, 2, 3, 1))
265
+ .permute(0, 3, 1, 2)
266
+ .reshape(B, T, Cc, H, W))
267
+ return recon, recon2, target, mask_4d
268
+
269
+
270
+ # ═══════════════════════════════════════════════════════════════════════════
271
+ # 5. Finetune wrapper: STA temporal collapse + dual decoder + gated refine
272
+ # ═══════════════════════════════════════════════════════════════════════════
273
+ class STA(nn.Module):
274
+ """Spatio-temporal aggregation: attention-pool T, refine spatially.
275
+ (Reconstruction of base STCLN's conv1/conv2/conv3/l collapse module.)"""
276
+
277
+ def __init__(self, d_model=256):
278
+ super().__init__()
279
+ self.l = nn.Linear(d_model, 1) # temporal attn scores
280
+ self.conv1 = nn.Sequential(
281
+ nn.Conv2d(d_model, d_model, 3, padding=1, bias=False),
282
+ nn.BatchNorm2d(d_model), nn.ReLU(inplace=True))
283
+ self.conv2 = nn.Sequential(
284
+ nn.Conv2d(d_model, d_model, 3, padding=1, bias=False),
285
+ nn.BatchNorm2d(d_model), nn.ReLU(inplace=True))
286
+ self.conv3 = nn.Sequential(
287
+ nn.Conv2d(d_model, d_model, 1, bias=False),
288
+ nn.BatchNorm2d(d_model), nn.ReLU(inplace=True))
289
+
290
+ def forward(self, feats): # (B, H, W, T, D)
291
+ w = self.l(feats).softmax(dim=3) # (B, H, W, T, 1)
292
+ f = (feats * w).sum(dim=3) # (B, H, W, D)
293
+ f = f.permute(0, 3, 1, 2).contiguous() # (B, D, H, W)
294
+ f = f + self.conv2(self.conv1(f)) # residual refine
295
+ return self.conv3(f)
296
+
297
+
298
+ class SemanticDecoder(nn.Module):
299
+ def __init__(self, d_model=256, num_classes=20):
300
+ super().__init__()
301
+ self.net = nn.Sequential(
302
+ nn.Conv2d(d_model, d_model // 2, 3, padding=1, bias=False),
303
+ nn.BatchNorm2d(d_model // 2), nn.ReLU(inplace=True),
304
+ nn.Conv2d(d_model // 2, num_classes, 1))
305
+
306
+ def forward(self, x):
307
+ return self.net(x)
308
+
309
+
310
+ class BoundaryDecoder(nn.Module):
311
+ def __init__(self, d_model=256):
312
+ super().__init__()
313
+ self.net = nn.Sequential(
314
+ nn.Conv2d(d_model, d_model // 4, 3, padding=1, bias=False),
315
+ nn.BatchNorm2d(d_model // 4), nn.ReLU(inplace=True),
316
+ nn.Conv2d(d_model // 4, 1, 1))
317
+
318
+ def forward(self, x):
319
+ return self.net(x) # (B, 1, H, W)
320
+
321
+
322
+ class GatedRefinement(nn.Module):
323
+ """Boundary-gated fusion of features and semantic logits."""
324
+
325
+ def __init__(self, d_model=256, num_classes=20):
326
+ super().__init__()
327
+ self.fuse = nn.Sequential(
328
+ nn.Conv2d(d_model + num_classes, d_model // 2, 3, padding=1,
329
+ bias=False),
330
+ nn.BatchNorm2d(d_model // 2), nn.ReLU(inplace=True),
331
+ nn.Conv2d(d_model // 2, num_classes, 1))
332
+
333
+ def forward(self, feat, sem_logits, bnd_logits):
334
+ gate = torch.sigmoid(bnd_logits) # (B, 1, H, W)
335
+ fused = torch.cat([feat * (1.0 + gate), sem_logits], dim=1)
336
+ return sem_logits + self.fuse(fused) # residual refinement
337
+
338
+
339
+ class UTAEClassificationDual(nn.Module):
340
+ def __init__(self, encoder, d_model=256, num_classes=20):
341
+ super().__init__()
342
+ self.utae = encoder
343
+ self.sta = STA(d_model)
344
+ self.sem_head = SemanticDecoder(d_model, num_classes)
345
+ self.bnd_head = BoundaryDecoder(d_model)
346
+ self.refine = GatedRefinement(d_model, num_classes)
347
+
348
+ def forward(self, x, pos):
349
+ out, _ = self.utae(x, pos) # (B, H, W, T, D)
350
+ feat = self.sta(out) # (B, D, H, W)
351
+ sem = self.sem_head(feat) # (B, K, H, W)
352
+ bnd = self.bnd_head(feat) # (B, 1, H, W)
353
+ refined = self.refine(feat, sem, bnd) # (B, K, H, W)
354
+ return {"sem_logits": sem,
355
+ "bnd_logits": bnd,
356
+ "refined_logits": refined}
357
+
358
+
359
+ # ═══════════════════════════════════════════════════════════════════════════
360
+ # 6. Boundary ground truth (recovered verbatim from det pipeline)
361
+ # ═══════════════════════════════════════════════════════════════════════════
362
+ def compute_boundary_target(mask):
363
+ """
364
+ Morphological gradient: a pixel is a boundary iff at least one
365
+ 8-neighbour has a different class.
366
+ mask: (B, H, W) long -> boundary: (B, H, W) float in {0, 1}
367
+ (finetune.py squeezes bnd_logits to (B,H,W), so GT matches that shape.)
368
+ """
369
+ m = mask.unsqueeze(1).float()
370
+ mx = F.max_pool2d(m, 3, 1, 1)
371
+ mn = -F.max_pool2d(-m, 3, 1, 1)
372
+ return (mx != mn).float().squeeze(1)
main_method/code/temporal_cnn.py ADDED
@@ -0,0 +1,60 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ """Per-pixel spectral time-series CNNs: original mean/max and attention/max variants."""
2
+ import torch
3
+ from torch import nn
4
+
5
+ def valid_from_index_positions(pos):
6
+ """The unmodified dataset uses 0,1,...,T-1 and pads positions with zero.
7
+
8
+ Temporal subsampling may drop acquisition zero; its first retained position is
9
+ then positive. Only an initial zero is a valid acquisition-zero token.
10
+ This cannot be reused for arbitrary calendar positions without a length mask.
11
+ """
12
+ first_is_zero = pos[:, :1].eq(0)
13
+ first = torch.zeros_like(pos, dtype=torch.bool)
14
+ first[:, :1] = first_is_zero
15
+ valid = pos.gt(0) | first
16
+ if not valid.any(dim=1).all():
17
+ raise ValueError('Each time series must contain an observation')
18
+ return valid
19
+
20
+
21
+ class TemporalCNN(nn.Module):
22
+ def __init__(self, classes=18):
23
+ super().__init__()
24
+ self.input=nn.Linear(10,64)
25
+ self.norms=nn.ModuleList([nn.LayerNorm(64) for _ in range(4)])
26
+ self.convs=nn.ModuleList([nn.Conv1d(64,64,3,padding=d,dilation=d,groups=64) for d in [1,2,4,8]])
27
+ self.mix=nn.ModuleList([nn.Linear(64,64) for _ in range(4)])
28
+ self.head=nn.Sequential(nn.Linear(128,64),nn.GELU(),nn.Linear(64,classes))
29
+
30
+ def forward(self,x,pos):
31
+ b,t,c,h,w=x.shape
32
+ valid=valid_from_index_positions(pos)[:,None,None].expand(b,h,w,t).reshape(-1,t,1)
33
+ flat=x.permute(0,3,4,1,2).reshape(-1,t,c)
34
+ outputs=[]
35
+ for start in range(0,len(flat),2048):
36
+ mask=valid[start:start+2048];z=self.input(flat[start:start+2048])*mask
37
+ for norm,conv,mix in zip(self.norms,self.convs,self.mix):
38
+ z=(z+mix(torch.nn.functional.gelu(conv(norm(z).transpose(1,2)).transpose(1,2))))*mask
39
+ mean=z.sum(1)/mask.sum(1).clamp_min(1)
40
+ maximum=z.masked_fill(~mask,torch.finfo(z.dtype).min).amax(1)
41
+ outputs.append(self.head(torch.cat([mean,maximum],-1)))
42
+ return torch.cat(outputs).reshape(b,h,w,-1).permute(0,3,1,2)
43
+
44
+
45
+ class AttentionCNN(TemporalCNN):
46
+ def __init__(self,classes=18):
47
+ super().__init__(classes);self.attention=nn.Linear(64,1)
48
+ def forward(self,x,pos):
49
+ 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);out=[]
50
+ for start in range(0,len(flat),2048):
51
+ mask=valid[start:start+2048];z=self.input(flat[start:start+2048])*mask
52
+ 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
53
+ score=self.attention(z).masked_fill(~mask,torch.finfo(z.dtype).min)
54
+ pooled=(score.softmax(1)*z).sum(1);maximum=z.masked_fill(~mask,torch.finfo(z.dtype).min).amax(1)
55
+ out.append(self.head(torch.cat([pooled,maximum],-1)))
56
+ return torch.cat(out).reshape(b,h,w,-1).permute(0,3,1,2)
57
+
58
+
59
+ def make_model(kind,classes=18):
60
+ return {"cnn_control":TemporalCNN,"attention":AttentionCNN}[kind](classes)
main_method/code/temporal_srda.py ADDED
@@ -0,0 +1,131 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ """
2
+ Temporal SRDA (T-SRDA) — PDAViT's Spatial-Reduction Dual-Attention
3
+ (Zhou et al., Neurocomputing 2026) adapted to the TEMPORAL axis.
4
+
5
+ Drop-in replacement for TemporalDaViTEncoder inside UTAE_ASPP.
6
+ Matches its calling convention exactly:
7
+
8
+ enc = TemporalSRDAEncoder(d_model=256, n_heads=8, R_schedule=(4, 4, 4))
9
+ out = enc(x, pos) # x: (N, T, d) pos: (N, T, d) date PE or None
10
+
11
+ Mechanism per block (1D mapping of CUSA + dual attention):
12
+ KV path : Linear d -> d/R ("point-wise conv")
13
+ unfold: group R consecutive timesteps -> (N, T/R, d)
14
+ First SA over T/R tokens (key-value "self-checking")
15
+ Q path : full-resolution T tokens
16
+ Second SA: cross-attention Q(T) x KV(T/R) -> GLOBAL temporal receptive
17
+ field in a single layer (Swin/DaViT window schedule needs the
18
+ whole [4,8,16]+shift stack to approximate this).
19
+ scMLP : FC -> GELU (+ parallel depth-wise Conv1d over T) -> FC
20
+
21
+ Design notes (do not change casually):
22
+ * NO internal gradient checkpointing — UTAE_ASPP already checkpoints at
23
+ the chunk level (_run_temporal_chunk). Layer-level checkpointing here
24
+ would recreate the double-checkpoint waste found in the DaViT encoder.
25
+ * Padding convention matches the existing pipeline: collate_fn zero-pads
26
+ to batch max_T and the windowed encoders attend over padded steps too.
27
+ We keep that convention for a clean apples-to-apples ablation. The
28
+ encoder internally pads T to a multiple of max(R_schedule) and crops
29
+ back, so any T works (33..61 all fine).
30
+ * Date PE MUST be added before the KV reduction (handled here: x = x+pos
31
+ at entry) — grouped KV tokens over irregular acquisitions are
32
+ meaningless without date information.
33
+ """
34
+ import torch
35
+ import torch.nn as nn
36
+ import torch.nn.functional as F
37
+
38
+
39
+ class TemporalSRDABlock(nn.Module):
40
+ def __init__(self, d_model=256, n_heads=8, R=4, mlp_ratio=4.0,
41
+ attn_drop=0.0, proj_drop=0.0):
42
+ super().__init__()
43
+ assert d_model % R == 0, "d_model must be divisible by R"
44
+ assert d_model % n_heads == 0
45
+ self.d = d_model
46
+ self.R = R
47
+ self.h = n_heads
48
+ self.dh = d_model // n_heads
49
+ self.scale = self.dh ** -0.5
50
+
51
+ # ---- KV reduction path (CUSA, 1D) ---------------------------------
52
+ self.norm_kv = nn.LayerNorm(d_model)
53
+ self.pw = nn.Linear(d_model, d_model // R, bias=False) # point-wise conv
54
+ self.norm_first = nn.LayerNorm(d_model)
55
+ self.first_sa = nn.MultiheadAttention(
56
+ d_model, n_heads, dropout=attn_drop, batch_first=True)
57
+
58
+ # ---- Second (dual) attention ---------------------------------------
59
+ self.norm_q = nn.LayerNorm(d_model)
60
+ self.q_proj = nn.Linear(d_model, d_model, bias=False)
61
+ self.kv_proj = nn.Linear(d_model, 2 * d_model, bias=False)
62
+ self.attn_drop = nn.Dropout(attn_drop)
63
+ self.out_proj = nn.Linear(d_model, d_model)
64
+ self.proj_drop = nn.Dropout(proj_drop)
65
+
66
+ # ---- scMLP ----------------------------------------------------------
67
+ hidden = int(d_model * mlp_ratio)
68
+ self.norm_mlp = nn.LayerNorm(d_model)
69
+ self.fc1 = nn.Linear(d_model, hidden)
70
+ self.dw = nn.Conv1d(hidden, hidden, kernel_size=3, padding=1,
71
+ groups=hidden) # DW over T
72
+ self.fc2 = nn.Linear(hidden, d_model)
73
+
74
+ def forward(self, x):
75
+ """x: (N, T, d) with T % R == 0 (guaranteed by the encoder wrapper)."""
76
+ N, T, d = x.shape
77
+ R = self.R
78
+
79
+ # ---- KV path: point-wise conv -> temporal unfold -> first SA -------
80
+ z = self.pw(self.norm_kv(x)) # (N, T, d/R)
81
+ z = z.reshape(N, T // R, R * (d // R)) # unfold -> (N, T/R, d)
82
+ zn = self.norm_first(z)
83
+ z_sa, _ = self.first_sa(zn, zn, zn, need_weights=False)
84
+ kv = z + z_sa # self-checked KV
85
+
86
+ # ---- second SA: full-T queries x reduced KV -------------------------
87
+ q = self.q_proj(self.norm_q(x))
88
+ k, v = self.kv_proj(kv).chunk(2, dim=-1)
89
+ q = q.reshape(N, T, self.h, self.dh).transpose(1, 2) # (N,h,T,dh)
90
+ k = k.reshape(N, -1, self.h, self.dh).transpose(1, 2) # (N,h,T/R,dh)
91
+ v = v.reshape(N, -1, self.h, self.dh).transpose(1, 2)
92
+
93
+ attn = (q @ k.transpose(-2, -1)) * self.scale # (N,h,T,T/R)
94
+ attn = self.attn_drop(attn.softmax(dim=-1))
95
+ out = (attn @ v).transpose(1, 2).reshape(N, T, d)
96
+ x = x + self.proj_drop(self.out_proj(out))
97
+
98
+ # ---- scMLP -----------------------------------------------------------
99
+ y = self.fc1(self.norm_mlp(x))
100
+ y = F.gelu(y) + self.dw(y.transpose(1, 2)).transpose(1, 2)
101
+ x = x + self.fc2(y)
102
+ return x
103
+
104
+
105
+ class TemporalSRDAEncoder(nn.Module):
106
+ """
107
+ Signature-compatible replacement for TemporalDaViTEncoder.
108
+ forward(x, pos=None): x (N, T, d), pos (N, T, d) date positional encoding.
109
+ """
110
+ def __init__(self, d_model=256, n_heads=8, R_schedule=(4, 4, 4), **kwargs):
111
+ super().__init__()
112
+ # **kwargs silently absorbs legacy windows=/shifts= if passed through
113
+ self.R_max = max(R_schedule)
114
+ self.blocks = nn.ModuleList(
115
+ TemporalSRDABlock(d_model, n_heads, R=r) for r in R_schedule)
116
+
117
+ def forward(self, x, pos=None):
118
+ if pos is not None:
119
+ x = x + pos # date PE BEFORE KV reduction
120
+
121
+ N, T, d = x.shape
122
+ pad = (-T) % self.R_max # pad T up to multiple of R_max
123
+ if pad:
124
+ x = F.pad(x, (0, 0, 0, pad)) # zero-pad — matches pipeline
125
+
126
+ for blk in self.blocks:
127
+ x = blk(x)
128
+
129
+ if pad:
130
+ x = x[:, :T]
131
+ return x
main_method/code/train_feature_clusters.py ADDED
@@ -0,0 +1,377 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ """Frozen-depth probes and patch-balanced prototype readouts on official fixed32.
2
+
3
+ Caches only masked temporal mean/std summaries, not full time-series features.
4
+ The readout sees 18 classes; probabilities are mapped to the original 20 channels.
5
+ Validation is selection-only. Prototype banks and normalization use training only.
6
+ """
7
+ import argparse
8
+ import json
9
+ import time
10
+ from pathlib import Path
11
+ import numpy as np
12
+ import torch
13
+ import torch.nn.functional as F
14
+ from torch.utils.data import DataLoader
15
+ from sklearn.cluster import KMeans
16
+ import config as C
17
+ from dataset import (PASTISPatchDataset, train_patch_ids, val_patch_ids,
18
+ test_patch_ids, pad_collate, crop_ij)
19
+ from model import UTAE_ASPP, UTAEClassificationDual
20
+ from temporal_cnn import valid_from_index_positions
21
+
22
+ ROOT = Path(__file__).resolve().parents[2]
23
+ OUT = ROOT / 'main_method' / 'runs' / 'feature_cluster_readouts'
24
+ SAM = ROOT / 'main_method/checkpoints/shared/sam_network_seed3407.tar'
25
+ PRETRAIN = ROOT / 'checkpoints/pretrain/latest.utae.tar'
26
+
27
+
28
+ def write_json(path, data):
29
+ path.parent.mkdir(parents=True, exist_ok=True)
30
+ temp = path.with_suffix('.json.tmp')
31
+ temp.write_text(json.dumps(data, indent=2))
32
+ temp.replace(path)
33
+
34
+
35
+ def metrics(y, pred):
36
+ valid = (y > 0) & (y < 19)
37
+ cm = np.bincount(20 * y[valid].astype(np.int64) + pred[valid],
38
+ minlength=400).reshape(20, 20)
39
+ return metrics_cm(cm)
40
+
41
+
42
+ def metrics_cm(cm):
43
+ tp = np.diag(cm)[1:19].astype(float)
44
+ gt, pp = cm.sum(1)[1:19], cm.sum(0)[1:19]
45
+ iou = tp / np.maximum(gt + pp - tp, 1)
46
+ f1 = 2 * tp / np.maximum(gt + pp, 1)
47
+ total = cm.sum()
48
+ oa = cm.trace() / max(total, 1)
49
+ chance = np.dot(cm.sum(0).astype(float), cm.sum(1)) / max(total ** 2, 1)
50
+ return {'miou': float(iou.mean()), 'oa': float(oa),
51
+ 'macro_f1': float(f1.mean()), 'kappa': float((oa-chance)/max(1-chance,1e-12)),
52
+ 'per_class_iou': iou.tolist(), 'confusion_matrix': cm.tolist()}
53
+
54
+
55
+ def frozen_model(source, device):
56
+ enc = UTAE_ASPP(n_channels=C.N_CHANNELS, d_model=C.D_MODEL, n_heads=C.N_HEADS)
57
+ net = UTAEClassificationDual(enc, d_model=C.D_MODEL, num_classes=C.N_CLASSES)
58
+ ck = torch.load(SAM if source == 'sam' else PRETRAIN,
59
+ map_location='cpu', weights_only=False)
60
+ state = ck['model_state_dict']
61
+ if source == 'sam':
62
+ net.load_state_dict(state, strict=True)
63
+ else:
64
+ if not any(k.startswith('spatial_encoder.') for k in state):
65
+ state = {k[5:]: v for k, v in state.items() if k.startswith('utae.')}
66
+ enc.load_state_dict(state, strict=True)
67
+ return net.to(device).eval().requires_grad_(False)
68
+
69
+
70
+ class DepthCollector:
71
+ def __init__(self, encoder):
72
+ self.handles = [block.register_forward_hook(self.hook(i))
73
+ for i, block in enumerate(encoder.temporal_encoder.blocks)]
74
+
75
+ def begin(self, x, pos):
76
+ b, _, _, h, w = x.shape
77
+ self.shape = b, h, w
78
+ self.valid = valid_from_index_positions(pos)[:, None, None]
79
+ self.valid = self.valid.expand(b, h, w, -1).reshape(b*h*w, -1)
80
+ self.parts = [[], [], []]
81
+ self.offsets = [0, 0, 0]
82
+
83
+ def hook(self, depth):
84
+ def collect(module, inputs, output):
85
+ start = self.offsets[depth]
86
+ valid = self.valid[start:start + output.shape[0]]
87
+ if valid.shape[1] < output.shape[1]:
88
+ valid = F.pad(valid, (0, output.shape[1]-valid.shape[1]), value=False)
89
+ weights = valid[..., None].float()
90
+ values = output.float()
91
+ count = weights.sum(1).clamp_min(1)
92
+ mean = (values * weights).sum(1) / count
93
+ var = ((values - mean[:, None]).square() * weights).sum(1) / count
94
+ summary = torch.cat((mean, var.clamp_min(0).sqrt()), -1)
95
+ self.parts[depth].append(summary.detach().half().cpu().numpy())
96
+ self.offsets[depth] += len(output)
97
+ return collect
98
+
99
+ def end(self):
100
+ assert self.offsets == [np.prod(self.shape)] * 3
101
+ return np.stack([np.concatenate(parts) for parts in self.parts], axis=1)
102
+
103
+ def close(self):
104
+ for handle in self.handles:
105
+ handle.remove()
106
+
107
+
108
+ def extract_cache():
109
+ device = torch.device('cuda')
110
+ started = time.monotonic()
111
+ manifest = {'feature': 'valid-timestep mean/std at blocks 1,2,3; float16 summaries',
112
+ 'crop_size': 32, 'batch': 2, 'sources': {}, 'normalizer': 'original',
113
+ 'positions': 'original acquisition indices'}
114
+ for source in ('sam', 'pretrain'):
115
+ model = frozen_model(source, device)
116
+ collector = DepthCollector(model.utae)
117
+ for split, ids in [('train', train_patch_ids()), ('val', val_patch_ids())]:
118
+ folder = OUT/'cache'/source/split
119
+ folder.mkdir(parents=True, exist_ok=True)
120
+ n = len(ids) * 2 * 32 * 32
121
+ files = {
122
+ 'features': ((n, 3, 512), np.float16),
123
+ 'labels': ((n,), np.uint8), 'patch_ids': ((n,), np.int32),
124
+ 'crop_ids': ((n,), np.uint8),
125
+ }
126
+ if source == 'sam':
127
+ files['base_probs'] = ((n, 20), np.float32)
128
+ arrays = {k: np.lib.format.open_memmap(folder/f'{k}.npy',mode='w+',dtype=dtype,shape=shape)
129
+ for k,(shape,dtype) in files.items()}
130
+ loader = DataLoader(PASTISPatchDataset(ids), batch_size=2, shuffle=False,
131
+ num_workers=2, pin_memory=True, collate_fn=pad_collate)
132
+ offset = 0
133
+ with torch.inference_mode():
134
+ for bi, ((x, pos, _), y) in enumerate(loader):
135
+ x, pos = x.to(device), pos.to(device)
136
+ batch_ids = ids[2*bi:2*bi+x.shape[0]]
137
+ for crop_index, (i, j) in enumerate(C.FT_CROP_IJ):
138
+ crop, target = crop_ij(x, y, i, j, C.PRETRAIN_CROP_GRID)
139
+ collector.begin(crop, pos)
140
+ with torch.autocast('cuda', dtype=torch.float16):
141
+ result = model(crop, pos) if source == 'sam' else model.utae(crop,pos)
142
+ features = collector.end()
143
+ end = offset + len(features)
144
+ arrays['features'][offset:end] = features
145
+ arrays['labels'][offset:end] = target.numpy().reshape(-1)
146
+ arrays['patch_ids'][offset:end] = np.repeat(batch_ids,32*32)
147
+ arrays['crop_ids'][offset:end] = crop_index
148
+ if source == 'sam':
149
+ pp = result['refined_logits'].float().softmax(1)
150
+ arrays['base_probs'][offset:end] = pp.permute(0,2,3,1).reshape(-1,20).cpu().numpy()
151
+ offset = end
152
+ if bi % 10 == 0:
153
+ print('cache',source,split,bi,len(loader),flush=True)
154
+ assert offset == n
155
+ for array in arrays.values():
156
+ array.flush()
157
+ manifest['sources'][f'{source}_{split}'] = {'pixels':n,'entries':len(ids),
158
+ 'unique_patches':len(set(ids))}
159
+ del arrays
160
+ collector.close()
161
+ del model
162
+ torch.cuda.empty_cache()
163
+ y = np.load(OUT/'cache/sam/val/labels.npy')
164
+ p = np.load(OUT/'cache/sam/val/base_probs.npy',mmap_mode='r')
165
+ manifest['sam_baseline'] = metrics(y,p.argmax(1))
166
+ if abs(manifest['sam_baseline']['miou']-.5000673383500418)>1e-6:
167
+ raise RuntimeError('Feature-cache SAM baseline does not reproduce its stored score')
168
+ manifest['seconds'] = time.monotonic()-started
169
+ write_json(OUT/'cache/manifest.json',manifest)
170
+
171
+
172
+ def load_cache(source, split):
173
+ folder = OUT/'cache'/source/split
174
+ return {name:np.load(folder/f'{name}.npy',mmap_mode='r')
175
+ for name in ('features','labels','patch_ids','crop_ids')}
176
+
177
+
178
+ def rows(features, indices, depth):
179
+ data = np.asarray(features[indices])
180
+ return (data[:,depth,:] if depth>=0 else data.reshape(len(data),-1)).astype(np.float32)
181
+
182
+
183
+ def train_normalizer(features, indices, depth):
184
+ width = 512 if depth>=0 else 1536
185
+ sums, squares = np.zeros(width,np.float64),np.zeros(width,np.float64)
186
+ for start in range(0,len(indices),4096):
187
+ x = rows(features,indices[start:start+4096],depth).astype(np.float64)
188
+ sums += x.sum(0);squares += (x*x).sum(0)
189
+ mean = sums/len(indices)
190
+ std = np.sqrt(np.maximum(squares/len(indices)-mean*mean,0)).clip(.05)
191
+ return torch.from_numpy(mean.astype(np.float32)).cuda(),torch.from_numpy(std.astype(np.float32)).cuda()
192
+
193
+
194
+ def normalized(features, indices, depth, mean, std):
195
+ return (torch.from_numpy(rows(features,indices,depth)).cuda()-mean)/std
196
+
197
+
198
+ def make_prototypes(train, depth, mean, std, seed):
199
+ rng = np.random.default_rng(seed)
200
+ # Only the first occurrence of each (patch,crop) enters prototype memory.
201
+ pid, cid, labels = train['patch_ids'],train['crop_ids'],train['labels']
202
+ unique = np.zeros(len(labels),bool);seen=set()
203
+ for start in range(0,len(labels),1024):
204
+ key=int(pid[start]),int(cid[start])
205
+ if key not in seen:
206
+ unique[start:start+1024]=True;seen.add(key)
207
+ protos=[]
208
+ for cls in range(1,19):
209
+ memory=[]
210
+ for patch in np.unique(pid[unique & (labels==cls)]):
211
+ eligible=np.flatnonzero(unique & (pid==patch) & (labels==cls))
212
+ memory.extend(rng.choice(eligible,32,replace=len(eligible)<32).tolist())
213
+ if not memory:
214
+ raise RuntimeError(f'No training prototype support for class {cls}')
215
+ embeddings=F.normalize(normalized(train['features'],np.array(memory),depth,mean,std),dim=1)
216
+ km=KMeans(n_clusters=3,n_init=3,random_state=seed).fit(embeddings.cpu().numpy())
217
+ centers=F.normalize(torch.from_numpy(km.cluster_centers_).cuda(),dim=1)
218
+ protos.append(centers)
219
+ return torch.stack(protos)
220
+
221
+
222
+ def fit_linear(train, depth, mean, std, seed):
223
+ torch.manual_seed(seed)
224
+ width=len(mean)
225
+ head=torch.nn.Linear(width,18).cuda()
226
+ optimizer=torch.optim.AdamW(head.parameters(),lr=1e-3,weight_decay=1e-3)
227
+ rng=np.random.default_rng(seed)
228
+ eligible=np.flatnonzero((train['labels']>0)&(train['labels']<19))
229
+ for epoch in range(30):
230
+ shuffled=rng.permutation(eligible)
231
+ for start in range(0,len(shuffled),4096):
232
+ ix=shuffled[start:start+4096]
233
+ x=normalized(train['features'],ix,depth,mean,std)
234
+ y=torch.from_numpy(np.asarray(train['labels'][ix]).astype(np.int64)-1).cuda()
235
+ optimizer.zero_grad(set_to_none=True)
236
+ F.cross_entropy(head(x),y).backward();optimizer.step()
237
+ return {k:v.detach() for k,v in head.state_dict().items()}
238
+
239
+
240
+ def probability(features, depth, mean, std, kind, state):
241
+ out=np.zeros((len(features),20),np.float32)
242
+ with torch.inference_mode():
243
+ for start in range(0,len(features),4096):
244
+ ix=np.arange(start,min(start+4096,len(features)))
245
+ x=normalized(features,ix,depth,mean,std)
246
+ if kind=='linear':
247
+ logits=F.linear(x,state['weight'],state['bias'])
248
+ else:
249
+ embeddings=F.normalize(x,dim=-1)
250
+ logits=torch.einsum('nd,ckd->nck',embeddings,state)/.1
251
+ logits=logits.logsumexp(-1)-np.log(3)
252
+ out[start:start+len(ix),1:19]=logits.softmax(-1).cpu().numpy()
253
+ return out
254
+
255
+
256
+ def bootstrap(y, pred, baseline, patch_ids):
257
+ unique=np.unique(patch_ids);a=[];b=[]
258
+ for pid in unique:
259
+ m=patch_ids==pid;valid=m&(y>0)&(y<19)
260
+ a.append(np.bincount(20*y[valid].astype(int)+pred[valid],minlength=400).reshape(20,20))
261
+ b.append(np.bincount(20*y[valid].astype(int)+baseline[valid],minlength=400).reshape(20,20))
262
+ a,b=np.array(a),np.array(b);rng=np.random.default_rng(3407);d=[]
263
+ for _ in range(1000):
264
+ ix=rng.integers(0,len(unique),len(unique))
265
+ d.append(100*(metrics_cm(a[ix].sum(0))['miou']-metrics_cm(b[ix].sum(0))['miou']))
266
+ return np.percentile(d,[2.5,97.5]).tolist()
267
+
268
+
269
+ def fit_readouts():
270
+ if not (OUT/'cache/manifest.json').exists():
271
+ raise RuntimeError('Incomplete feature cache')
272
+ started=time.monotonic();records=[];models={};families={}
273
+ base=np.load(OUT/'cache/sam/val/base_probs.npy',mmap_mode='r')
274
+ target=np.load(OUT/'cache/sam/val/labels.npy')
275
+ baseline=metrics(target,base.argmax(1))['miou']
276
+ for source in ('sam','pretrain'):
277
+ train,val=load_cache(source,'train'),load_cache(source,'val')
278
+ assert np.array_equal(target,val['labels'])
279
+ eligible=np.flatnonzero((train['labels']>0)&(train['labels']<19))
280
+ for depth in (0,1,2,-1):
281
+ mean,std=train_normalizer(train['features'],eligible,depth)
282
+ for seed in (3407,42,1234):
283
+ for kind in ('linear','prototype'):
284
+ state=fit_linear(train,depth,mean,std,seed) if kind=='linear' else make_prototypes(train,depth,mean,std,seed)
285
+ pp=probability(val['features'],depth,mean,std,kind,state)
286
+ name=f'{source}_depth{depth}_{kind}_seed{seed}'
287
+ path=OUT/'readouts'/f'{name}.tar';path.parent.mkdir(parents=True,exist_ok=True)
288
+ cpu_state={k:v.cpu() for k,v in state.items()} if kind=='linear' else state.cpu()
289
+ torch.save({'source':source,'depth':depth,'kind':kind,'seed':seed,
290
+ 'mean':mean.cpu(),'std':std.cpu(),'state':cpu_state},path)
291
+ for alpha in (1.,.1,.25,.5):
292
+ pred=((1-alpha)*base+alpha*pp).argmax(1)
293
+ m=metrics(target,pred)
294
+ family=f'{source}_depth{depth}_{kind}_alpha{alpha}'
295
+ entry={'source':source,'depth':depth,'kind':kind,'seed':seed,
296
+ 'alpha':alpha,'metrics':m,'checkpoint':str(path),'family':family}
297
+ records.append(entry);families.setdefault(family,[]).append(entry)
298
+ print(name,'unblended',records[-4]['metrics']['miou'],flush=True)
299
+ write_json(OUT/'probe_progress.json',{'completed_readouts':len(records)//4,'total_readouts':48})
300
+ del mean,std
301
+ del train,val
302
+ ranked=sorted(families.items(),key=lambda kv:np.mean([e['metrics']['miou'] for e in kv[1]]),reverse=True)
303
+ family,entries=ranked[0]
304
+ mean_score=float(np.mean([e['metrics']['miou'] for e in entries]))
305
+ # Fixed seed deployment representative, never choose a seed by test score.
306
+ chosen=next(e for e in entries if e['seed']==3407)
307
+ ck=torch.load(chosen['checkpoint'],map_location='cpu',weights_only=False)
308
+ ck['alpha']=chosen['alpha'];torch.save(ck,OUT/'probe_best.tar')
309
+ val=load_cache(chosen['source'],'val')
310
+ state={k:v.cuda() for k,v in ck['state'].items()} if ck['kind']=='linear' else ck['state'].cuda()
311
+ pp=probability(val['features'],ck['depth'],ck['mean'].cuda(),ck['std'].cuda(),ck['kind'],state)
312
+ pred=((1-ck['alpha'])*base+ck['alpha']*pp).argmax(1)
313
+ result={'baseline_miou':baseline,'selected_family':family,'family_mean_val_miou':mean_score,
314
+ 'family_std_val_miou':float(np.std([e['metrics']['miou'] for e in entries],ddof=1)),
315
+ 'delta_mean_pp':100*(mean_score-baseline),'selected':chosen,
316
+ 'paired_patch_delta_ci95_pp':bootstrap(target,pred,base.argmax(1),val['patch_ids']),
317
+ 'promote':bool(mean_score>=baseline+.005),'records':records,
318
+ 'seconds':time.monotonic()-started,'test_used_for_selection':False,
319
+ 'scope':'Readout seeds vary on the same frozen encoder; not full encoder training seeds.'}
320
+ write_json(OUT/'probe_results.json',result)
321
+ print('Selected',family,'mean validation',mean_score,'promote',result['promote'],flush=True)
322
+
323
+
324
+ def evaluate_selected(split):
325
+ ck=torch.load(OUT/'probe_best.tar',map_location='cpu',weights_only=False)
326
+ device=torch.device('cuda');base=frozen_model('sam',device)
327
+ encoder_model=base if ck['source']=='sam' else frozen_model('pretrain',device)
328
+ collector=DepthCollector(encoder_model.utae)
329
+ ids=val_patch_ids() if split=='val' else test_patch_ids()
330
+ batch=2 if split=='val' else 1
331
+ loader=DataLoader(PASTISPatchDataset(ids),batch_size=batch,shuffle=False,num_workers=2,
332
+ pin_memory=True,collate_fn=pad_collate)
333
+ state={k:v.cuda() for k,v in ck['state'].items()} if ck['kind']=='linear' else ck['state'].cuda()
334
+ cm=np.zeros((20,20),np.int64);started=time.monotonic()
335
+ with torch.inference_mode():
336
+ for bi,((x,pos,_),y) in enumerate(loader):
337
+ x,pos=x.to(device),pos.to(device)
338
+ grid=4 if split=='val' else 1
339
+ crops=C.FT_CROP_IJ if split=='val' else [(0,0)]
340
+ for i,j in crops:
341
+ crop,target=crop_ij(x,y,i,j,grid)
342
+ collector.begin(crop,pos)
343
+ with torch.autocast('cuda',dtype=torch.float16):
344
+ output=base(crop,pos)
345
+ if encoder_model is not base:
346
+ encoder_model.utae(crop,pos)
347
+ features=collector.end()
348
+ bp=output['refined_logits'].float().softmax(1).permute(0,2,3,1).reshape(-1,20).cpu().numpy()
349
+ pp=probability(features,ck['depth'],ck['mean'].cuda(),ck['std'].cuda(),ck['kind'],state)
350
+ pred=((1-ck['alpha'])*bp+ck['alpha']*pp).argmax(1)
351
+ gt=target.numpy().reshape(-1);valid=(gt>0)&(gt<19)
352
+ cm+=np.bincount(20*gt[valid].astype(int)+pred[valid],minlength=400).reshape(20,20)
353
+ if bi%25==0:print('probe evaluation',split,bi,len(loader),flush=True)
354
+ collector.close()
355
+ result={'metrics':metrics_cm(cm),'seconds':time.monotonic()-started,
356
+ 'entries':len(ids),'batch':batch,'full_patch':split=='test',
357
+ 'checkpoint':str(OUT/'probe_best.tar'),'source':ck['source'],'alpha':ck['alpha']}
358
+ write_json(OUT/f'probe_{split}_results.json',result)
359
+ if split=='val':
360
+ expected=json.loads((OUT/'probe_results.json').read_text())['selected']['metrics']['miou']
361
+ if abs(result['metrics']['miou']-expected)>1e-6:
362
+ raise RuntimeError('Online readout validation does not match cache selection')
363
+ print(result,flush=True)
364
+
365
+
366
+ def main():
367
+ parser=argparse.ArgumentParser();parser.add_argument('action',choices=['cache','fit','validate','test'])
368
+ args=parser.parse_args();OUT.mkdir(exist_ok=True)
369
+ torch.set_num_threads(4);torch.manual_seed(3407)
370
+ torch.backends.cuda.matmul.allow_tf32=True
371
+ torch.backends.cudnn.allow_tf32=True
372
+ if args.action=='cache':extract_cache()
373
+ elif args.action=='fit':fit_readouts()
374
+ else:evaluate_selected('val' if args.action=='validate' else 'test')
375
+
376
+
377
+ if __name__=='__main__':main()
main_method/code/train_spatial_temporal.py ADDED
@@ -0,0 +1,762 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ """
2
+ T-SRDA finetune v2 — improved recipe for Kaggle (T4 x 2).
3
+
4
+ The v1 run (official STCLN protocol: fixed 32x32 diagonal crops, no
5
+ augmentation, flat LR 1e-4, wd=0) peaked at val mIoU 0.4759 around epoch 37
6
+ and then DECLINED to 0.4207 by epoch 99 — textbook overfitting to the 152
7
+ fixed training crops. v2 attacks exactly that, while keeping everything that
8
+ made v1 comparable intact.
9
+
10
+ NEW in v2
11
+ ---------
12
+ 1. RANDOM CROPS anywhere in the 128x128 patch (default 64x64, 2 per patch
13
+ per epoch) instead of the two fixed 32x32 diagonal crops (0,0)/(1,1).
14
+ Every epoch sees different windows, and 64x64 gives 4x the spatial
15
+ context of the official 32x32 plus more parcel boundaries per crop.
16
+ 2. AUGMENTATION (v1/official: none):
17
+ - dihedral-8 (h/v flip + rot90) always sampled
18
+ - temporal subsample (drop up to 20% of frames, order kept) p=0.5
19
+ - frame dropout (zero 1-2 whole frames ~ cloudy acquisition) p=0.25
20
+ - per-band gain/bias jitter + small gaussian noise always
21
+ 3. AdamW with weight decay 0.02 on >1-dim params (v1 used wd=0 == Adam).
22
+ 4. DISCRIMINATIVE LR: the pretrained encoder trains at 0.5x the head LR,
23
+ so 43 h of pretraining is not washed out by the randomly-init heads.
24
+ 5. WARMUP (3 ep) + COSINE decay to 1% (v1: flat 1e-4, no schedule).
25
+ 6. EMA of weights (decay 0.999) — raw AND EMA are validated every epoch and
26
+ each keeps its own best checkpoint. EMA is usually the better one.
27
+ 7. Label smoothing 0.05 on the CE terms.
28
+ 8. Best-val checkpointing + early stopping (--patience), and a resumable
29
+ latest.tar every epoch (Kaggle sessions can die — --resume auto).
30
+
31
+ KEPT IDENTICAL to v1 (so numbers stay comparable to the 0.4124/0.4433 run)
32
+ --------------------------------------------------------------------------
33
+ - model architecture (UTAE_ASPP + UTAEClassificationDual); the pretrained
34
+ encoder is loaded strict=True from the .utae.tar checkpoint
35
+ - loss family: CE + 0.75*Lovász on the sem & refined heads + 0.5*BCE on
36
+ the boundary head; uniform class weights with 0/19 ignored (the
37
+ inverse-frequency weighting experiment is NOT repeated — it was a
38
+ catastrophic regression in this project)
39
+ - splits: the same 76 train / 76 val hardcoded patch IDs, fold-4 test
40
+ - index positions (arange(T)), AMP, grad clip 5.0, seed protocol
41
+ - same optimizer-step budget: 2 patches/batch x 2 crops = 76 steps/epoch
42
+
43
+ DDP: launch with torchrun to use both T4s (one run, half the wall time):
44
+ torchrun --standalone --nproc_per_node=2 finetune_v2.py --pretrain_pth ...
45
+ """
46
+ import argparse
47
+ import copy
48
+ import json
49
+ import math
50
+ import os
51
+ import random
52
+ import time
53
+ from pathlib import Path
54
+
55
+ import numpy as np
56
+ import torch
57
+ import torch.nn as nn
58
+ import torch.distributed as dist
59
+ from torch.utils.data import DataLoader, DistributedSampler
60
+ from torch.cuda.amp import autocast, GradScaler
61
+ from torch.nn.parallel import DistributedDataParallel as DDP
62
+ from sklearn.metrics import confusion_matrix, cohen_kappa_score
63
+
64
+ import config as C
65
+ from dataset import (PASTISPatchDataset, train_patch_ids, val_patch_ids,
66
+ pad_collate, crop_ij)
67
+ from model import UTAE_ASPP, UTAEClassificationDual, compute_boundary_target
68
+ from losses import LovaszSoftmaxLoss
69
+
70
+ PASTIS_NAMES = C.PASTIS_CLASSES # single source of truth — see config.py
71
+
72
+
73
+ # ─────────────────────────────────────────────────────────────────────────────
74
+ # Distributed helpers (same contract as v1: torchrun env vars, else single GPU)
75
+ # ─────────────────────────────────────────────────────────────────────────────
76
+ def setup_distributed():
77
+ if "RANK" in os.environ:
78
+ dist.init_process_group(backend="nccl")
79
+ local_rank = int(os.environ["LOCAL_RANK"])
80
+ rank = int(os.environ["RANK"])
81
+ world = int(os.environ["WORLD_SIZE"])
82
+ torch.cuda.set_device(local_rank)
83
+ return rank, world, local_rank, torch.device(f"cuda:{local_rank}")
84
+ return 0, 1, 0, torch.device("cuda:0")
85
+
86
+
87
+ def cleanup_distributed():
88
+ if dist.is_initialized():
89
+ dist.destroy_process_group()
90
+
91
+
92
+ # ─────────────────────────────────────────────────────────────────────────────
93
+ # Metrics — identical to v1 finetune.py
94
+ # ─────────────────────────────────────────────────────────────────────────────
95
+ def compute_all_metrics(preds_np, labels_np, num_classes=20):
96
+ class_ids = list(range(1, num_classes - 1)) # 1..18 scored
97
+
98
+ valid = (labels_np > 0) & (labels_np < num_classes - 1)
99
+ pv = preds_np[valid]
100
+ lv = labels_np[valid]
101
+
102
+ if len(lv) == 0:
103
+ return dict(miou=0.0, oa=0.0, mf1=0.0, kappa=0.0,
104
+ per_iou={}, per_f1={})
105
+
106
+ cm = confusion_matrix(lv, pv, labels=class_ids)
107
+ diag = np.diag(cm).astype(np.float64)
108
+ sum0 = cm.sum(0).astype(np.float64)
109
+ sum1 = cm.sum(1).astype(np.float64)
110
+
111
+ iou = diag / (sum0 + sum1 - diag + 1e-8)
112
+ f1 = (2 * diag) / (sum0 + sum1 + 1e-8)
113
+ miou = float(iou.mean())
114
+ mf1 = float(f1.mean())
115
+ oa = float((pv == lv).mean())
116
+ kappa = float(cohen_kappa_score(lv, pv))
117
+
118
+ return dict(miou=miou, oa=oa, mf1=mf1, kappa=kappa,
119
+ per_iou={c: float(iou[i]) for i, c in enumerate(class_ids)},
120
+ per_f1={c: float(f1[i]) for i, c in enumerate(class_ids)})
121
+
122
+
123
+ def print_metrics(metrics, tag):
124
+ print(f" [{tag}] mIoU={metrics['miou']:.4f} OA={metrics['oa']:.4f} "
125
+ f"mF1={metrics['mf1']:.4f} Kappa={metrics['kappa']:.4f}", flush=True)
126
+ print(f" {'Cls':>4} {'Name':<28} {'IoU':>8} {'F1':>8}", flush=True)
127
+ print(f" {'-'*44}", flush=True)
128
+ for c in range(1, C.N_CLASSES - 1):
129
+ iv = metrics['per_iou'].get(c, 0.0)
130
+ fv = metrics['per_f1'].get(c, 0.0)
131
+ name = PASTIS_NAMES.get(c, f"cls{c}")
132
+ flag = " **DEAD**" if iv < 0.001 else (" *rare*" if iv < 0.10 else "")
133
+ print(f" {c:>4} {name:<28} {iv:>8.4f} {fv:>8.4f}{flag}", flush=True)
134
+
135
+
136
+ # ─────────────────────────────────────────────────────────────────────────────
137
+ # v2 augmentations. All operate on one batch of crops:
138
+ # xc (B, T, C, h, w) normalized S2
139
+ # yc (B, h, w) labels
140
+ # pos (B, T) index positions (arange(T) upstream)
141
+ # ─────────────────────────────────────────────────────────────────────────────
142
+ def aug_dihedral(xc, yc):
143
+ """One dihedral-8 transform per crop-batch, image and label together."""
144
+ if torch.rand(()) > 0.5:
145
+ xc, yc = xc.flip(-2), yc.flip(-2)
146
+ if torch.rand(()) > 0.5:
147
+ xc, yc = xc.flip(-1), yc.flip(-1)
148
+ k = int(torch.randint(0, 4, ()))
149
+ if k:
150
+ xc, yc = torch.rot90(xc, k, (-2, -1)), torch.rot90(yc, k, (-2, -1))
151
+ return xc.contiguous(), yc.contiguous()
152
+
153
+
154
+ def aug_temporal_subsample(xc, pos, p=0.5, drop_max=0.2, keep_min=24):
155
+ """Drop up to `drop_max` of the frames, order preserved. Positions keep
156
+ their original index values -> emulates missing acquisitions of an
157
+ otherwise identical season. No-op with probability 1-p."""
158
+ if torch.rand(()) > p:
159
+ return xc, pos
160
+ T = xc.shape[1]
161
+ keep = int(round(T * (1.0 - random.uniform(0.0, drop_max))))
162
+ keep = max(keep_min, min(T, keep))
163
+ if keep >= T:
164
+ return xc, pos
165
+ idx = torch.randperm(T)[:keep].sort().values.to(xc.device)
166
+ return (xc.index_select(1, idx).contiguous(),
167
+ pos.index_select(1, idx).contiguous())
168
+
169
+
170
+ def aug_frame_dropout(xc, p=0.25, max_frames=2):
171
+ """Zero 1-2 whole frames (0 == dataset mean after normalisation) —
172
+ emulates cloudy/lost acquisitions."""
173
+ if torch.rand(()) > p:
174
+ return xc
175
+ T = xc.shape[1]
176
+ n = random.randint(1, max_frames)
177
+ idx = torch.randperm(T)[:n].to(xc.device)
178
+ xc = xc.clone()
179
+ xc[:, idx] = 0.0
180
+ return xc
181
+
182
+
183
+ def aug_spectral(xc, gain_std=0.05, bias_std=0.03, noise_std=0.01):
184
+ """Per-sample, per-band gain/bias jitter + small gaussian noise (data is
185
+ z-normalised, so these are fractions of one std)."""
186
+ B, T, Ch, H, W = xc.shape
187
+ dev = xc.device
188
+ gain = 1.0 + gain_std * torch.randn(B, 1, Ch, 1, 1, device=dev)
189
+ bias = bias_std * torch.randn(B, 1, Ch, 1, 1, device=dev)
190
+ xc = xc * gain + bias
191
+ if noise_std > 0:
192
+ xc = xc + noise_std * torch.randn_like(xc)
193
+ return xc.contiguous()
194
+
195
+
196
+ # ─────────────────────────────────────────────────────────────────────────────
197
+ # EMA of the raw (unwrapped) network
198
+ # ─────────────────────────────────────────────────────────────────────────────
199
+ class ModelEMA:
200
+ def __init__(self, model, decay=0.999):
201
+ self.decay = decay
202
+ self.updates = 0
203
+ raw = model.module if isinstance(model, DDP) else model
204
+ self.module = copy.deepcopy(raw).eval()
205
+ for p in self.module.parameters():
206
+ p.requires_grad_(False)
207
+
208
+ @torch.no_grad()
209
+ def update(self, model):
210
+ self.updates += 1
211
+ d = min(self.decay, (1.0 + self.updates) / (10.0 + self.updates))
212
+ raw = model.module if isinstance(model, DDP) else model
213
+ msd = raw.state_dict()
214
+ for k, v in self.module.state_dict().items():
215
+ if v.dtype.is_floating_point:
216
+ v.lerp_(msd[k].detach().float(), 1.0 - d)
217
+ else:
218
+ v.copy_(msd[k])
219
+
220
+
221
+ # ─────────────────────────────────────────────────────────────────────────────
222
+ # Optimizer param groups: encoder vs heads x decay vs no-decay
223
+ # ─────────────────────────────────────────────────────────────────────────────
224
+ def build_param_groups(net_raw, base_lr, encoder_mult, wd):
225
+ buckets = {"enc_dec": [], "enc_nd": [], "head_dec": [], "head_nd": []}
226
+ for name, p in net_raw.named_parameters():
227
+ if not p.requires_grad:
228
+ continue
229
+ is_enc = name.startswith("utae.")
230
+ no_dec = p.ndim <= 1 # LN/BN weights + all biases
231
+ buckets[("enc_" if is_enc else "head_") + ("nd" if no_dec else "dec")
232
+ ].append(p)
233
+ groups = [
234
+ {"params": buckets["enc_dec"], "lr0": base_lr * encoder_mult,
235
+ "weight_decay": wd},
236
+ {"params": buckets["enc_nd"], "lr0": base_lr * encoder_mult,
237
+ "weight_decay": 0.0},
238
+ {"params": buckets["head_dec"], "lr0": base_lr,
239
+ "weight_decay": wd},
240
+ {"params": buckets["head_nd"], "lr0": base_lr,
241
+ "weight_decay": 0.0},
242
+ ]
243
+ return [g for g in groups if len(g["params"]) > 0]
244
+
245
+
246
+ def lr_factor(step, total_steps, warmup_steps, min_ratio):
247
+ """Linear warmup then cosine decay to min_ratio."""
248
+ if step < warmup_steps:
249
+ return (step + 1) / max(1, warmup_steps)
250
+ p = (step - warmup_steps) / max(1, total_steps - warmup_steps)
251
+ p = min(1.0, p)
252
+ cos = 0.5 * (1.0 + math.cos(math.pi * p))
253
+ return min_ratio + (1.0 - min_ratio) * cos
254
+
255
+
256
+ def set_lrs(optimizer, factor):
257
+ for g in optimizer.param_groups:
258
+ g["lr"] = g["lr0"] * factor
259
+
260
+
261
+ # ─────────────────────────────────────────────────────────────────────────────
262
+ # Validation on the two fixed diagonal crops of the val patches
263
+ # (grid = PATCH_SIZE / crop_size; for 64 -> (0,0),(1,1) of a 2x2 grid,
264
+ # for 32 -> exactly the official v1 validation crops)
265
+ # ─────────────────────────────────────────────────────────────────────────────
266
+ @torch.no_grad()
267
+ def validate(net, val_dl, device, crop_size, limit_batches=0):
268
+ net.eval()
269
+ grid = max(1, C.PATCH_SIZE // crop_size)
270
+ positions = [(0, 0), (1, 1)] if grid >= 2 else [(0, 0)]
271
+ all_preds, all_labels = [], []
272
+ for bi, ((xv, pv_, _dv), yv) in enumerate(val_dl):
273
+ if limit_batches and bi >= limit_batches:
274
+ break
275
+ xv = xv.to(device, non_blocking=True)
276
+ pv_ = pv_.to(device, non_blocking=True)
277
+ yv = yv.to(device, non_blocking=True)
278
+ for (i, j) in positions:
279
+ xc, yc = crop_ij(xv, yv, i, j, grid)
280
+ with autocast():
281
+ out = net(xc, pv_)
282
+ pred = out["refined_logits"].float().argmax(dim=1)
283
+ all_preds.append(pred.cpu().numpy().ravel())
284
+ all_labels.append(yc.cpu().numpy().ravel())
285
+ return compute_all_metrics(np.concatenate(all_preds),
286
+ np.concatenate(all_labels), C.N_CLASSES)
287
+
288
+
289
+ def pack_checkpoint(state_dict, epoch, metrics, seed, which):
290
+ return {"epoch": epoch,
291
+ "model_state_dict": state_dict,
292
+ "val_miou": metrics["miou"],
293
+ "val_oa": metrics["oa"],
294
+ "val_mf1": metrics["mf1"],
295
+ "val_kappa": metrics["kappa"],
296
+ "val_per_iou": metrics["per_iou"],
297
+ "seed": seed, "which": which, "recipe": "v2"}
298
+
299
+
300
+ # ─────────────────────────────────────────────────────────────────────────────
301
+ def main():
302
+ ap = argparse.ArgumentParser()
303
+ ap.add_argument("--pretrain_pth", type=str, required=True)
304
+ ap.add_argument("--seed", type=int, default=C.SEED)
305
+ ap.add_argument("--tag", type=str, default="v2")
306
+ ap.add_argument("--out_dir", type=str, default="",
307
+ help="default: <EXP_ROOT>/checkpoints/finetune_v2/<tag>")
308
+ ap.add_argument("--epochs", type=int, default=C.FT_EPOCHS)
309
+ ap.add_argument("--batch", type=int, default=C.FT_BATCH)
310
+ # --- the v2 recipe knobs -------------------------------------------------
311
+ ap.add_argument("--crop_size", type=int, default=64,
312
+ help="random-crop side; 32 = official crop size")
313
+ ap.add_argument("--crops_per_patch", type=int, default=2,
314
+ help="random crops per patch per epoch (2 keeps the "
315
+ "official 76 steps/epoch)")
316
+ ap.add_argument("--official_crops", action="store_true",
317
+ help="control run: fixed 32x32 diagonal crops, no augs "
318
+ "(= v1 recipe with v2 plumbing)")
319
+ ap.add_argument("--fixed_crops", action="store_true",
320
+ help="fixed diagonal crops at --crop_size; keeps augmentation settings")
321
+ ap.add_argument("--freeze_encoder_epochs", type=int, default=0)
322
+ ap.add_argument("--no_aug", action="store_true")
323
+ ap.add_argument("--no_temporal_aug", action="store_true")
324
+ ap.add_argument("--mask_ce_invalid", action="store_true")
325
+ ap.add_argument("--boundary_weight", type=float, default=0.5)
326
+ ap.add_argument("--init_finetuned", type=str, default="",
327
+ help="initialize all weights from fine-tuned checkpoint; reset optimizer and schedule")
328
+ ap.add_argument("--base_lr", type=float, default=1e-4)
329
+ ap.add_argument("--encoder_lr_mult", type=float, default=0.5)
330
+ ap.add_argument("--min_lr_ratio", type=float, default=0.01)
331
+ ap.add_argument("--warmup_epochs", type=float, default=3.0)
332
+ ap.add_argument("--wd", type=float, default=0.02)
333
+ ap.add_argument("--label_smoothing", type=float, default=0.05)
334
+ ap.add_argument("--ema_decay", type=float, default=0.999)
335
+ ap.add_argument("--patience", type=int, default=30,
336
+ help="early stopping on val mIoU; 0 = run all epochs")
337
+ # --- housekeeping --------------------------------------------------------
338
+ ap.add_argument("--print_every", type=int, default=5)
339
+ ap.add_argument("--limit_batches", type=int, default=0,
340
+ help=">0: truncate train/val loops (smoke test)")
341
+ ap.add_argument("--resume", type=str, default="auto",
342
+ help="'auto' resumes from <out_dir>/latest.tar if present; "
343
+ "'none' starts fresh; or an explicit .tar path")
344
+ ap.add_argument('--research', choices=['l2sp','sam','contrast','consistency','swa'], required=True)
345
+ args = ap.parse_args()
346
+ if args.research == 'swa' and args.resume != 'none':
347
+ ap.error('SWA requires --resume none until averaging state supports resume')
348
+
349
+ if args.official_crops:
350
+ args.crop_size = 32
351
+ args.no_aug = True
352
+
353
+ if args.fixed_crops and args.crop_size not in (32, 64):
354
+ ap.error("--fixed_crops requires --crop_size 32 or 64")
355
+
356
+ out_dir = (Path(args.out_dir) if args.out_dir else
357
+ C.EXP_ROOT / "checkpoints" / "finetune_v2" / args.tag)
358
+
359
+ rank, world, local_rank, device = setup_distributed()
360
+
361
+ # Seed BEFORE model creation so all ranks build identical weights...
362
+ torch.backends.cuda.matmul.allow_tf32 = True
363
+ torch.backends.cudnn.allow_tf32 = True
364
+ torch.set_num_threads(min(8, os.cpu_count() or 1))
365
+ torch.manual_seed(args.seed)
366
+ torch.cuda.manual_seed_all(args.seed)
367
+
368
+ train_ids = train_patch_ids()
369
+ val_ids = val_patch_ids()
370
+
371
+ train_ds = PASTISPatchDataset(train_ids)
372
+ val_ds = PASTISPatchDataset(val_ids)
373
+
374
+ sampler = (DistributedSampler(train_ds, num_replicas=world, rank=rank,
375
+ shuffle=True)
376
+ if world > 1 else None)
377
+ train_dl = DataLoader(
378
+ train_ds, batch_size=args.batch, sampler=sampler,
379
+ shuffle=(sampler is None), num_workers=2, pin_memory=True,
380
+ persistent_workers=True, collate_fn=pad_collate)
381
+ val_dl = DataLoader(
382
+ val_ds, batch_size=args.batch, shuffle=False,
383
+ num_workers=2, pin_memory=True, collate_fn=pad_collate)
384
+
385
+ n_crops = len(C.FT_CROP_IJ) if (args.official_crops or args.fixed_crops) else args.crops_per_patch
386
+ steps_per_epoch = len(train_dl) * n_crops
387
+ total_steps = steps_per_epoch * args.epochs
388
+ warmup_steps = int(args.warmup_epochs * steps_per_epoch)
389
+
390
+ if rank == 0:
391
+ print(f"[FT-v2] train={len(train_ids)} patches ({len(set(train_ids))} unique) "
392
+ f"val={len(val_ids)} patches ({len(set(val_ids))} unique)", flush=True)
393
+ print(f"[FT-v2] world={world} batch={args.batch} patches x {n_crops} crops "
394
+ f"-> {steps_per_epoch} steps/epoch/rank", flush=True)
395
+ print(f"[FT-v2] crop_size={args.crop_size} "
396
+ f"({'fixed diagonal' if (args.official_crops or args.fixed_crops) else 'RANDOM'}) "
397
+ f"aug={'off' if args.no_aug else 'dihedral+temporal+spectral'}",
398
+ flush=True)
399
+ print(f"[FT-v2] base_lr={args.base_lr} enc_mult={args.encoder_lr_mult} "
400
+ f"wd={args.wd} ls={args.label_smoothing} ema={args.ema_decay} "
401
+ f"warmup_ep={args.warmup_epochs} min_lr_ratio={args.min_lr_ratio} "
402
+ f"patience={args.patience}", flush=True)
403
+ print(f"[FT-v2] seed={args.seed} epochs={args.epochs} "
404
+ f"checkpoints -> {out_dir}", flush=True)
405
+
406
+ # ---- model + pretrained encoder ----------------------------------------
407
+ encoder = UTAE_ASPP(
408
+ n_channels=C.N_CHANNELS, d_model=C.D_MODEL, n_heads=C.N_HEADS,
409
+ T_pad=C.T_PAD, windows=C.TSE_WINDOWS, shifts=C.TSE_SHIFTS)
410
+ if rank == 0:
411
+ print(f"[FT-v2] loading encoder: {args.pretrain_pth}", flush=True)
412
+ ckpt = torch.load(args.pretrain_pth, map_location="cpu", weights_only=False)
413
+ sd = ckpt["model_state_dict"]
414
+ if not any(k.startswith("spatial_encoder.") for k in sd):
415
+ # full pretrain graph (latest.tar) -> strip the "utae." prefix
416
+ sd = {k[len("utae."):]: v for k, v in sd.items() if k.startswith("utae.")}
417
+ if rank == 0:
418
+ print("[FT-v2] (extracted encoder weights from full pretrain "
419
+ "checkpoint)", flush=True)
420
+ encoder.load_state_dict(sd, strict=True)
421
+ anchor = {n: p.detach().clone().to(device) for n,p in encoder.named_parameters()}
422
+
423
+ network = UTAEClassificationDual(
424
+ encoder, d_model=C.D_MODEL, num_classes=C.N_CLASSES).to(device)
425
+ net_ref = network
426
+ if world > 1:
427
+ network = DDP(network, device_ids=[local_rank])
428
+ net_ref = network.module
429
+
430
+ # ...and only AFTER model construction diverge the per-rank RNGs used for
431
+ # shuffling/augmentation, so the two GPUs see different crops/transforms.
432
+ torch.manual_seed(args.seed + 1000 * rank)
433
+ random.seed(args.seed + 1000 * rank)
434
+
435
+ if args.init_finetuned:
436
+ initial = torch.load(args.init_finetuned, map_location="cpu", weights_only=False)
437
+ net_ref.load_state_dict(initial["model_state_dict"], strict=True)
438
+ if rank == 0:
439
+ print(f"[INIT] fine-tuned weights from {args.init_finetuned}; optimizer/schedule start fresh", flush=True)
440
+
441
+ # ---- losses: uniform weights (inv-freq was a catastrophic regression) ---
442
+ class_weights = torch.ones(C.N_CLASSES, device=device)
443
+ class_weights[0] = 0.0
444
+ class_weights[C.N_CLASSES - 1] = 0.0
445
+
446
+ ce_loss = nn.CrossEntropyLoss(weight=class_weights,
447
+ label_smoothing=args.label_smoothing)
448
+ if args.mask_ce_invalid:
449
+ def masked_ce(logits, target):
450
+ valid = (target > 0) & (target < C.N_CLASSES - 1)
451
+ if not valid.any():
452
+ return logits.sum() * 0.0
453
+ return torch.nn.functional.cross_entropy(
454
+ logits.permute(0, 2, 3, 1)[valid], target[valid],
455
+ weight=class_weights, label_smoothing=args.label_smoothing)
456
+ ce_loss = masked_ce
457
+ lovasz_loss = LovaszSoftmaxLoss(ignore_indices=[0, C.N_CLASSES - 1])
458
+ bce_loss = nn.BCEWithLogitsLoss()
459
+
460
+ # ---- optimizer / EMA ----------------------------------------------------
461
+ optimizer = torch.optim.AdamW(
462
+ build_param_groups(net_ref, args.base_lr, args.encoder_lr_mult,
463
+ args.wd),
464
+ lr=args.base_lr, betas=(0.9, 0.95))
465
+ scaler = GradScaler()
466
+ ema = ModelEMA(network, decay=args.ema_decay)
467
+ from research_methods import pixel_contrast
468
+ features = {}
469
+ if args.research == 'contrast':
470
+ net_ref.sta.register_forward_hook(lambda module, inputs, output: features.update(value=output))
471
+ swa = torch.optim.swa_utils.AveragedModel(net_ref) if args.research == 'swa' else None
472
+ best_swa = -1.0
473
+
474
+ def training_loss(x, positions, target, boundary):
475
+ with autocast(dtype=torch.bfloat16 if args.research == 'contrast' else torch.float16):
476
+ outputs = network(x, positions)
477
+ sem = outputs['sem_logits'].float()
478
+ refined = outputs['refined_logits'].float()
479
+ loss = (ce_loss(sem,target) + .75*lovasz_loss(sem,target)
480
+ + ce_loss(refined,target) + .75*lovasz_loss(refined,target)
481
+ + args.boundary_weight*bce_loss(outputs['bnd_logits'].float().squeeze(1),boundary))
482
+ if args.research == 'l2sp':
483
+ # Sum of squared distance, encoder only; original pretrained anchor.
484
+ loss = loss + .001*sum((p-anchor[n]).square().sum() for n,p in net_ref.utae.named_parameters())
485
+ elif args.research == 'contrast':
486
+ loss = loss + .05*pixel_contrast(features['value'], target)
487
+ elif args.research == 'consistency' and epoch >= 3:
488
+ with torch.no_grad(), autocast():
489
+ teacher = ema.module(aug_spectral(x, gain_std=.02, bias_std=.01, noise_std=.005),positions)['refined_logits'].float().softmax(1)
490
+ valid = (target>0)&(target<C.N_CLASSES-1)&(teacher.max(1).values>=.8)
491
+ if valid.any():
492
+ kl = torch.nn.functional.kl_div(refined.log_softmax(1),teacher,reduction='none').sum(1)
493
+ loss = loss + .1*min(1.,(epoch-2)/5)*kl[valid].mean()
494
+ return loss
495
+
496
+ if rank == 0:
497
+ n_params = sum(p.numel() for p in network.parameters() if p.requires_grad)
498
+ n_enc = sum(p.numel() for n_, p in net_ref.named_parameters()
499
+ if n_.startswith("utae."))
500
+ print(f"[FT-v2] params={n_params/1e6:.2f}M (encoder {n_enc/1e6:.2f}M)",
501
+ flush=True)
502
+
503
+ # ---- resume --------------------------------------------------------------
504
+ os.makedirs(out_dir, exist_ok=True)
505
+ latest_path = out_dir / "latest.tar"
506
+ start_epoch, best_raw, best_ema = 0, {"miou": -1.0}, {"miou": -1.0}
507
+ best_monitor, patience_counter, history = -1.0, 0, []
508
+
509
+ resume_from = None
510
+ if args.resume == "auto":
511
+ resume_from = latest_path if latest_path.is_file() else None
512
+ elif args.resume not in ("none", ""):
513
+ resume_from = Path(args.resume)
514
+ if not resume_from.is_file():
515
+ raise FileNotFoundError(f"--resume: no such file {resume_from}")
516
+
517
+ if resume_from is not None:
518
+ ck = torch.load(resume_from, map_location="cpu", weights_only=False)
519
+ net_ref.load_state_dict(ck["model_state_dict"])
520
+ ema.module.load_state_dict(ck["ema_state_dict"])
521
+ ema.updates = ck.get("ema_updates", 0)
522
+ optimizer.load_state_dict(ck["optimizer_state_dict"])
523
+ scaler.load_state_dict(ck["scaler_state_dict"])
524
+ best_raw = ck["best_raw"]; best_ema = ck["best_ema"]
525
+ best_monitor = ck.get("best_monitor", -1.0)
526
+ patience_counter = ck.get("patience_counter", 0)
527
+ history = ck.get("history", [])
528
+ start_epoch = int(ck["epoch"]) + 1
529
+ if rank == 0:
530
+ print(f"[FT-v2] RESUMED from {resume_from} (finished epoch "
531
+ f"{ck['epoch']}) -> epoch {start_epoch}/{args.epochs}",
532
+ flush=True)
533
+ if start_epoch >= args.epochs:
534
+ print("[FT-v2] already complete; nothing to do.", flush=True)
535
+ cleanup_distributed()
536
+ return
537
+ elif rank == 0:
538
+ print(f"[FT-v2] starting fresh (--resume={args.resume})", flush=True)
539
+
540
+ if rank == 0:
541
+ print(f"[HYPOTHESIS] temporal_aug={not args.no_temporal_aug} "
542
+ f"mask_ce_invalid={args.mask_ce_invalid} boundary_weight={args.boundary_weight} "
543
+ f"ema_decay={args.ema_decay}", flush=True)
544
+ if args.init_finetuned and start_epoch == 0:
545
+ m_init = validate(net_ref, val_dl, device, args.crop_size, args.limit_batches)
546
+ if rank == 0:
547
+ with open(out_dir / "initial_metrics.json", "w") as f:
548
+ json.dump(m_init, f, indent=2)
549
+ print(f"[INITIAL] mIoU={m_init['miou']:.6f}", flush=True)
550
+
551
+ # ---- training loop -------------------------------------------------------
552
+ gstep = start_epoch * steps_per_epoch
553
+ hi = C.PATCH_SIZE - args.crop_size
554
+
555
+ for epoch in range(start_epoch, args.epochs):
556
+ if sampler is not None:
557
+ sampler.set_epoch(epoch)
558
+ network.train()
559
+ frozen = epoch < args.freeze_encoder_epochs
560
+ for parameter in net_ref.utae.parameters():
561
+ parameter.requires_grad_(not frozen)
562
+ if frozen:
563
+ net_ref.utae.eval() # freeze BatchNorm statistics and encoder dropout
564
+ if rank == 0:
565
+ print(f"[ENCODER] frozen={frozen}", flush=True)
566
+ ep_start = time.time()
567
+ ep_loss, n_steps = 0.0, 0
568
+ stop_flag = False
569
+
570
+ for it, ((xp, pos, _days), yp) in enumerate(train_dl):
571
+ if args.limit_batches and it >= args.limit_batches:
572
+ break
573
+ xp = xp.to(device, non_blocking=True) # (B,T,10,128,128)
574
+ pos = pos.to(device, non_blocking=True)
575
+ yp = yp.to(device, non_blocking=True) # (B,128,128)
576
+
577
+ if args.official_crops or args.fixed_crops:
578
+ crop_list = [crop_ij(xp, yp, i, j, C.PATCH_SIZE // args.crop_size)
579
+ for (i, j) in [tuple(x) for x in C.FT_CROP_IJ]]
580
+ else:
581
+ crop_list = []
582
+ for _ in range(n_crops):
583
+ i = int(torch.randint(0, hi + 1, ()))
584
+ j = int(torch.randint(0, hi + 1, ()))
585
+ crop_list.append(
586
+ (xp[:, :, :, i:i + args.crop_size,
587
+ j:j + args.crop_size],
588
+ yp[:, i:i + args.crop_size, j:j + args.crop_size]))
589
+
590
+ for xc, yc in crop_list:
591
+ pos_c = pos
592
+ if not args.no_aug:
593
+ xc, yc = aug_dihedral(xc, yc)
594
+ if not args.no_temporal_aug:
595
+ xc, pos_c = aug_temporal_subsample(xc, pos_c)
596
+ xc = aug_frame_dropout(xc)
597
+ xc = aug_spectral(xc)
598
+ bnd_gt = compute_boundary_target(yc)
599
+
600
+ optimizer.zero_grad(set_to_none=True)
601
+ loss = training_loss(xc,pos_c,yc,bnd_gt)
602
+ if not torch.isfinite(loss):
603
+ raise RuntimeError('Nonfinite research loss')
604
+ scaler.scale(loss).backward()
605
+ if args.research == 'sam':
606
+ parameters = [p for p in net_ref.parameters() if p.grad is not None]
607
+ norm = torch.linalg.vector_norm(torch.stack([p.grad.float().norm()/scaler.get_scale() for p in parameters]))
608
+ if not torch.isfinite(norm):
609
+ # AMP overflow: let GradScaler skip this update and lower
610
+ # its scale before the next crop. No SAM perturbation made.
611
+ scaler.unscale_(optimizer)
612
+ scaler.step(optimizer)
613
+ scaler.update()
614
+ optimizer.zero_grad(set_to_none=True)
615
+ print('[SAM AMP] skipped overflowing first pass; scale=', scaler.get_scale(), flush=True)
616
+ continue
617
+ offsets = []
618
+ with torch.no_grad():
619
+ for parameter in parameters:
620
+ offset = parameter.grad / scaler.get_scale() * (.02/(norm+1e-12))
621
+ parameter.add_(offset)
622
+ offsets.append(offset)
623
+ optimizer.zero_grad(set_to_none=True)
624
+ bn = [m for m in net_ref.modules() if isinstance(m, torch.nn.modules.batchnorm._BatchNorm)]
625
+ states = [m.training for m in bn]
626
+ for m in bn: m.eval()
627
+ try:
628
+ second_loss = training_loss(xc,pos_c,yc,bnd_gt)
629
+ scaler.scale(second_loss).backward()
630
+ finally:
631
+ with torch.no_grad():
632
+ for parameter,offset in zip(parameters,offsets): parameter.sub_(offset)
633
+ for m,state in zip(bn,states): m.train(state)
634
+ scaler.unscale_(optimizer)
635
+ torch.nn.utils.clip_grad_norm_(network.parameters(),max_norm=5.0)
636
+ factor = 1.0 if args.research == 'swa' else lr_factor(gstep,total_steps,warmup_steps,args.min_lr_ratio)
637
+ set_lrs(optimizer,factor)
638
+ scaler.step(optimizer)
639
+ scaler.update()
640
+ ema.update(network)
641
+ gstep += 1
642
+
643
+ ep_loss += loss.item()
644
+ n_steps += 1
645
+
646
+ if rank == 0 and it % 10 == 0:
647
+ print(f" ep {epoch:3d} batch {it:3d}/{len(train_dl)} "
648
+ f"step {n_steps:3d}/{steps_per_epoch} "
649
+ f"loss={loss.item():.4f} "
650
+ f"lr={optimizer.param_groups[-1]['lr']:.2e} "
651
+ f"t={time.time()-ep_start:.0f}s", flush=True)
652
+
653
+ if swa is not None and epoch >= 5:
654
+ swa.update_parameters(net_ref)
655
+ # Calibrate BN only on the same two fixed training crops. Dropout off.
656
+ swa.module.eval()
657
+ bn = [m for m in swa.module.modules() if isinstance(m, torch.nn.modules.batchnorm._BatchNorm)]
658
+ momenta = [m.momentum for m in bn]
659
+ for m in bn:
660
+ m.reset_running_stats(); m.momentum = None; m.train()
661
+ with torch.no_grad():
662
+ for bi, ((xx,pp,_), yy) in enumerate(train_dl):
663
+ if args.limit_batches and bi >= args.limit_batches: break
664
+ xx,pp,yy = xx.to(device),pp.to(device),yy.to(device)
665
+ for i,j in C.FT_CROP_IJ:
666
+ crop,_ = crop_ij(xx,yy,i,j,C.PATCH_SIZE//args.crop_size)
667
+ with autocast(): swa.module(crop,pp)
668
+ for m,momentum in zip(bn,momenta): m.momentum=momentum; m.eval()
669
+
670
+ # ---- validation: raw + EMA ------------------------------------------
671
+ if rank == 0:
672
+ m_raw = validate(net_ref, val_dl, device, args.crop_size,
673
+ args.limit_batches)
674
+ m_ema = validate(ema.module, val_dl, device, args.crop_size,
675
+ args.limit_batches)
676
+ m_swa = validate(swa.module,val_dl,device,args.crop_size,args.limit_batches) if swa is not None and epoch >= 5 else None
677
+ if m_swa is not None and m_swa['miou'] > best_swa:
678
+ best_swa = m_swa['miou']
679
+ torch.save(pack_checkpoint(swa.module.state_dict(),epoch,m_swa,args.seed,'swa'),out_dir/'model_best_swa.tar')
680
+ ep_sec = time.time() - ep_start
681
+ mean_loss = ep_loss / max(n_steps, 1)
682
+
683
+ history.append({
684
+ "epoch": epoch, "train_loss": mean_loss,
685
+ "lr": optimizer.param_groups[-1]["lr"],
686
+ "raw": {k: m_raw[k] for k in ("miou", "oa", "mf1", "kappa")},
687
+ "ema": {k: m_ema[k] for k in ("miou", "oa", "mf1", "kappa")},
688
+ "epoch_sec": ep_sec, "swa": m_swa, "research": args.research,
689
+ })
690
+ with open(out_dir / "history.json", "w") as f:
691
+ json.dump(history, f, indent=1)
692
+
693
+ improved = False
694
+ if m_raw["miou"] > best_raw["miou"]:
695
+ best_raw = {"miou": m_raw["miou"], "epoch": epoch}
696
+ torch.save(pack_checkpoint(net_ref.state_dict(), epoch,
697
+ m_raw, args.seed, "raw"),
698
+ out_dir / "model_best_raw.tar")
699
+ improved = True
700
+ if m_ema["miou"] > best_ema["miou"]:
701
+ best_ema = {"miou": m_ema["miou"], "epoch": epoch}
702
+ torch.save(pack_checkpoint(ema.module.state_dict(), epoch,
703
+ m_ema, args.seed, "ema"),
704
+ out_dir / "model_best_ema.tar")
705
+ improved = True
706
+
707
+ monitor = max(m_raw["miou"], m_ema["miou"])
708
+ if monitor > best_monitor:
709
+ best_monitor = monitor
710
+ patience_counter = 0
711
+ else:
712
+ patience_counter += 1
713
+
714
+ print(f"[ep {epoch:3d} DONE] loss={mean_loss:.4f} "
715
+ f"raw_mIoU={m_raw['miou']:.4f} ema_mIoU={m_ema['miou']:.4f} "
716
+ f"best_raw={best_raw['miou']:.4f}@{best_raw['epoch']} "
717
+ f"best_ema={best_ema['miou']:.4f}@{best_ema['epoch']} "
718
+ f"patience={patience_counter}/{args.patience} "
719
+ f"t={ep_sec:.0f}s", flush=True)
720
+ if improved or (epoch % args.print_every == 0):
721
+ print_metrics(m_raw, f"ep {epoch} RAW")
722
+ print_metrics(m_ema, f"ep {epoch} EMA")
723
+
724
+ # resumable latest.tar every epoch
725
+ tmp = out_dir / "latest.tar.tmp"
726
+ torch.save({
727
+ "epoch": epoch,
728
+ "model_state_dict": net_ref.state_dict(),
729
+ "ema_state_dict": ema.module.state_dict(),
730
+ "ema_updates": ema.updates,
731
+ "optimizer_state_dict": optimizer.state_dict(),
732
+ "scaler_state_dict": scaler.state_dict(),
733
+ "best_raw": best_raw, "best_ema": best_ema,
734
+ "best_monitor": best_monitor,
735
+ "patience_counter": patience_counter,
736
+ "history": history,
737
+ "args": vars(args),
738
+ }, tmp)
739
+ os.replace(tmp, latest_path)
740
+
741
+ if args.patience > 0 and patience_counter >= args.patience:
742
+ print(f"[EARLY STOP] best_raw={best_raw} best_ema={best_ema}",
743
+ flush=True)
744
+ stop_flag = True
745
+
746
+ # keep ranks in step and share rank 0's early-stop decision
747
+ if world > 1:
748
+ flag = torch.tensor([1 if stop_flag else 0], device=device)
749
+ dist.broadcast(flag, src=0)
750
+ stop_flag = bool(flag.item())
751
+ if stop_flag:
752
+ break
753
+
754
+ if rank == 0:
755
+ print(f"\n[FT-v2 COMPLETE] best_raw={best_raw} best_ema={best_ema}",
756
+ flush=True)
757
+ print(f"[FT-v2] checkpoints in {out_dir}", flush=True)
758
+ cleanup_distributed()
759
+
760
+
761
+ if __name__ == "__main__":
762
+ main()
main_method/code/train_temporal_cnn.py ADDED
@@ -0,0 +1,76 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ """Replay final temporal CNN training, preserving the scored loss/augmentation/RNG logic."""
2
+ import argparse,json,random,time
3
+ from pathlib import Path
4
+ import numpy as np
5
+ import torch
6
+ from torch.utils.data import DataLoader
7
+ import config as C
8
+ from dataset import PASTISPatchDataset,train_patch_ids,val_patch_ids,crop_ij,pad_collate
9
+ from temporal_cnn import make_model
10
+ from training_feature_clusters import metrics_cm
11
+ from augmentation import aug_dihedral,aug_temporal_subsample,aug_frame_dropout,aug_spectral,lr_factor
12
+ OUT=Path(__file__).resolve().parents[1]/"runs"
13
+ CEREALS=[2,3,4,6,10,11,17,18]
14
+ def write_json(path,data):
15
+ path.parent.mkdir(parents=True,exist_ok=True);path.write_text(json.dumps(data,indent=2))
16
+
17
+ def loader(ids,batch,shuffle=False):
18
+ return DataLoader(PASTISPatchDataset(ids),batch_size=batch,shuffle=shuffle,num_workers=2,pin_memory=True,persistent_workers=True,collate_fn=pad_collate)
19
+
20
+
21
+ def target_for(y,classes):
22
+ target=torch.full_like(y,-100)
23
+ for i,c in enumerate(classes):target[y==c]=i
24
+ return target
25
+
26
+
27
+ @torch.inference_mode()
28
+ def validate(model,dl,classes):
29
+ model.eval();cm=np.zeros((20,20),np.int64)
30
+ for (x,pos,_),y in dl:
31
+ x,pos=x.cuda(),pos.cuda()
32
+ for i,j in C.FT_CROP_IJ:
33
+ xc,yc=crop_ij(x,y,i,j,4)
34
+ with torch.autocast('cuda',dtype=torch.float16):pred=model(xc,pos).argmax(1)
35
+ pred=np.array(classes)[pred.cpu().numpy().ravel()];gt=yc.numpy().ravel()
36
+ valid=np.isin(gt,classes);cm+=np.bincount(20*gt[valid]+pred[valid],minlength=400).reshape(20,20)
37
+ result=metrics_cm(cm)
38
+ if len(classes)<18:result['selection_score']=float(np.array(result['per_class_iou'])[np.array(classes)-1].mean())
39
+ else:result['selection_score']=result['miou']
40
+ return result
41
+
42
+
43
+ def train(args):
44
+ classes=CEREALS if args.kind=='cereal' else list(range(1,19))
45
+ folder=OUT/f'32X32_{args.kind}_seed{args.seed}';folder.mkdir(parents=True,exist_ok=True)
46
+ model=make_model(args.kind,len(classes)).cuda();optimizer=torch.optim.AdamW(model.parameters(),lr=1e-3,weight_decay=.01)
47
+ torch.manual_seed(args.seed);random.seed(args.seed)
48
+ scaler=torch.amp.GradScaler('cuda');td=loader(train_patch_ids(),2,True);vd=loader(val_patch_ids(),2)
49
+ start=0;best=-1.
50
+ if (folder/'latest.tar').exists():
51
+ 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'])
52
+ for epoch in range(start,args.epochs):
53
+ model.train();started=time.monotonic();total=0.;steps=0
54
+ for (x,pos,_),y in td:
55
+ x,pos,y=x.cuda(),pos.cuda(),y.cuda()
56
+ for i,j in C.FT_CROP_IJ:
57
+ 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)
58
+ target=target_for(yc,classes);optimizer.zero_grad(set_to_none=True)
59
+ factor=lr_factor(epoch*76+steps,args.epochs*76,3*76,.01)
60
+ for g in optimizer.param_groups:g['lr']=1e-3*factor
61
+ with torch.autocast('cuda',dtype=torch.float16):logits=model(xc,pc)
62
+ loss=torch.nn.functional.cross_entropy(logits.float(),target,ignore_index=-100,label_smoothing=.05) if (target!=-100).any() else logits.float().sum()*0
63
+ if not torch.isfinite(loss):raise RuntimeError('Nonfinite specialist loss')
64
+ 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
65
+ assert steps==76
66
+ metric=validate(model,vd,classes)
67
+ if metric['selection_score']>best:
68
+ 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')
69
+ 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')
70
+ write_json(folder/'progress.json',{'epoch_completed':epoch+1,'epochs':args.epochs,'best_selection_score':best,'seconds_per_epoch':time.monotonic()-started})
71
+ print('epoch',epoch+1,'loss',total/steps,'selection',metric['selection_score'],'best',best,'seconds',time.monotonic()-started,flush=True)
72
+
73
+
74
+ if __name__=='__main__':
75
+ ap=argparse.ArgumentParser();ap.add_argument('--kind',choices=['cnn_control','attention'],default='cnn_control');ap.add_argument('--seed',type=int,default=3407);ap.add_argument('--epochs',type=int,default=100);args=ap.parse_args()
76
+ 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;train(args)
main_method/code/training_feature_clusters.py ADDED
@@ -0,0 +1,81 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ """Prototype (three training-feature cluster centres per class) readout and metrics. Extracted unchanged from the scored implementation."""
2
+ import numpy as np
3
+ import torch
4
+ import torch.nn.functional as F
5
+ from temporal_cnn import valid_from_index_positions
6
+
7
+ def metrics_cm(cm):
8
+ tp = np.diag(cm)[1:19].astype(float)
9
+ gt, pp = cm.sum(1)[1:19], cm.sum(0)[1:19]
10
+ iou = tp / np.maximum(gt + pp - tp, 1)
11
+ f1 = 2 * tp / np.maximum(gt + pp, 1)
12
+ total = cm.sum()
13
+ oa = cm.trace() / max(total, 1)
14
+ chance = np.dot(cm.sum(0).astype(float), cm.sum(1)) / max(total ** 2, 1)
15
+ return {'miou': float(iou.mean()), 'oa': float(oa),
16
+ 'macro_f1': float(f1.mean()), 'kappa': float((oa-chance)/max(1-chance,1e-12)),
17
+ 'per_class_iou': iou.tolist(), 'confusion_matrix': cm.tolist()}
18
+
19
+
20
+ class DepthCollector:
21
+ def __init__(self, encoder):
22
+ self.handles = [block.register_forward_hook(self.hook(i))
23
+ for i, block in enumerate(encoder.temporal_encoder.blocks)]
24
+
25
+ def begin(self, x, pos):
26
+ b, _, _, h, w = x.shape
27
+ self.shape = b, h, w
28
+ self.valid = valid_from_index_positions(pos)[:, None, None]
29
+ self.valid = self.valid.expand(b, h, w, -1).reshape(b*h*w, -1)
30
+ self.parts = [[], [], []]
31
+ self.offsets = [0, 0, 0]
32
+
33
+ def hook(self, depth):
34
+ def collect(module, inputs, output):
35
+ start = self.offsets[depth]
36
+ valid = self.valid[start:start + output.shape[0]]
37
+ if valid.shape[1] < output.shape[1]:
38
+ valid = F.pad(valid, (0, output.shape[1]-valid.shape[1]), value=False)
39
+ weights = valid[..., None].float()
40
+ values = output.float()
41
+ count = weights.sum(1).clamp_min(1)
42
+ mean = (values * weights).sum(1) / count
43
+ var = ((values - mean[:, None]).square() * weights).sum(1) / count
44
+ summary = torch.cat((mean, var.clamp_min(0).sqrt()), -1)
45
+ self.parts[depth].append(summary.detach().half().cpu().numpy())
46
+ self.offsets[depth] += len(output)
47
+ return collect
48
+
49
+ def end(self):
50
+ assert self.offsets == [np.prod(self.shape)] * 3
51
+ return np.stack([np.concatenate(parts) for parts in self.parts], axis=1)
52
+
53
+ def close(self):
54
+ for handle in self.handles:
55
+ handle.remove()
56
+
57
+
58
+ def rows(features, indices, depth):
59
+ data = np.asarray(features[indices])
60
+ return (data[:,depth,:] if depth>=0 else data.reshape(len(data),-1)).astype(np.float32)
61
+
62
+
63
+ def normalized(features, indices, depth, mean, std):
64
+ return (torch.from_numpy(rows(features,indices,depth)).cuda()-mean)/std
65
+
66
+
67
+ def probability(features, depth, mean, std, kind, state):
68
+ out=np.zeros((len(features),20),np.float32)
69
+ with torch.inference_mode():
70
+ for start in range(0,len(features),4096):
71
+ ix=np.arange(start,min(start+4096,len(features)))
72
+ x=normalized(features,ix,depth,mean,std)
73
+ if kind=='linear':
74
+ logits=F.linear(x,state['weight'],state['bias'])
75
+ else:
76
+ embeddings=F.normalize(x,dim=-1)
77
+ logits=torch.einsum('nd,ckd->nck',embeddings,state)/.1
78
+ logits=logits.logsumexp(-1)-np.log(3)
79
+ out[start:start+len(ix),1:19]=logits.softmax(-1).cpu().numpy()
80
+ return out
81
+
main_method/configurations/32X32_highest_observed_test_seed3407/manifest.json ADDED
@@ -0,0 +1,25 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "name": "highest_observed_test",
3
+ "seed": 3407,
4
+ "addition_kind": "attention",
5
+ "addition_alpha": 0.1,
6
+ "sam_checkpoint": "sam_network_seed3407.tar",
7
+ "feature_cluster_checkpoint": "training_feature_cluster_centres_seed3407.tar",
8
+ "original_cnn_checkpoint": "original_temporal_cnn_seed3407.tar",
9
+ "addition_checkpoint": "attention_temporal_cnn_seed3407.tar",
10
+ "shared_checkpoint_directory": "../../checkpoints/shared",
11
+ "selection": "validation_miou",
12
+ "weights": {
13
+ "sam": 0.3375,
14
+ "training_feature_cluster_centres": 0.3375,
15
+ "original_cnn": 0.225,
16
+ "addition": 0.1
17
+ },
18
+ "sha256": {
19
+ "sam_network_seed3407.tar": "aa834986f0756f8bcf5646f3af63d0ccbd59ad46d33f6a64641e98fe14e679f1",
20
+ "training_feature_cluster_centres_seed3407.tar": "3a17469c8d41370e6808f00c24fc49f8801c88a9e4715b5a19802bba9ec3fb30",
21
+ "original_temporal_cnn_seed3407.tar": "08ba0ec1c2409596301504f299c40b8eb20346c12241903364d74179b23a1774",
22
+ "new_temporal_cnn_seed3407.tar": "a08c3485199d8b519bf1a9dad72c84545b7adee818798acdfe068135be3de833",
23
+ "attention_temporal_cnn_seed3407.tar": "de57690bdbae4ff182b983429e1b6c2683a9ad1fc7bfe9011a7a3cfc24f53bf3"
24
+ }
25
+ }
main_method/configurations/32X32_highest_observed_test_seed3407/selection.json ADDED
@@ -0,0 +1,4691 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "kind": "attention",
3
+ "seed": 3407,
4
+ "mode": "add",
5
+ "alpha": 0.1,
6
+ "metrics": {
7
+ "miou": 0.5183677267400687,
8
+ "oa": 0.7884448538468953,
9
+ "macro_f1": 0.6324601460087027,
10
+ "kappa": 0.7649973719122495,
11
+ "per_class_iou": [
12
+ 0.7845430753618544,
13
+ 0.8055290753098189,
14
+ 0.8113220293183814,
15
+ 0.5516930022573363,
16
+ 0.8960411972964274,
17
+ 0.5464888191447627,
18
+ 0.6260709914320686,
19
+ 0.688765341445505,
20
+ 0.3864444860513013,
21
+ 0.14764267990074442,
22
+ 0.8423696072118481,
23
+ 0.19387186629526462,
24
+ 0.11464354527938343,
25
+ 0.3333333333333333,
26
+ 0.8420805998125586,
27
+ 0.4998587969500141,
28
+ 0.022342995169082124,
29
+ 0.2375776397515528
30
+ ],
31
+ "confusion_matrix": [
32
+ [
33
+ 0,
34
+ 0,
35
+ 0,
36
+ 0,
37
+ 0,
38
+ 0,
39
+ 0,
40
+ 0,
41
+ 0,
42
+ 0,
43
+ 0,
44
+ 0,
45
+ 0,
46
+ 0,
47
+ 0,
48
+ 0,
49
+ 0,
50
+ 0,
51
+ 0,
52
+ 0
53
+ ],
54
+ [
55
+ 0,
56
+ 14689,
57
+ 124,
58
+ 48,
59
+ 31,
60
+ 20,
61
+ 47,
62
+ 4,
63
+ 493,
64
+ 0,
65
+ 3,
66
+ 210,
67
+ 84,
68
+ 3,
69
+ 729,
70
+ 20,
71
+ 266,
72
+ 5,
73
+ 4,
74
+ 0
75
+ ],
76
+ [
77
+ 0,
78
+ 96,
79
+ 11830,
80
+ 81,
81
+ 10,
82
+ 16,
83
+ 47,
84
+ 4,
85
+ 0,
86
+ 18,
87
+ 37,
88
+ 186,
89
+ 27,
90
+ 5,
91
+ 98,
92
+ 0,
93
+ 9,
94
+ 5,
95
+ 8,
96
+ 0
97
+ ],
98
+ [
99
+ 0,
100
+ 155,
101
+ 130,
102
+ 12010,
103
+ 20,
104
+ 11,
105
+ 2,
106
+ 190,
107
+ 0,
108
+ 33,
109
+ 2,
110
+ 0,
111
+ 2,
112
+ 5,
113
+ 173,
114
+ 124,
115
+ 37,
116
+ 1,
117
+ 973,
118
+ 0
119
+ ],
120
+ [
121
+ 0,
122
+ 21,
123
+ 418,
124
+ 31,
125
+ 1222,
126
+ 51,
127
+ 5,
128
+ 0,
129
+ 0,
130
+ 0,
131
+ 226,
132
+ 0,
133
+ 11,
134
+ 7,
135
+ 0,
136
+ 0,
137
+ 19,
138
+ 33,
139
+ 3,
140
+ 0
141
+ ],
142
+ [
143
+ 0,
144
+ 68,
145
+ 8,
146
+ 25,
147
+ 0,
148
+ 5568,
149
+ 0,
150
+ 0,
151
+ 0,
152
+ 0,
153
+ 0,
154
+ 0,
155
+ 0,
156
+ 0,
157
+ 19,
158
+ 10,
159
+ 0,
160
+ 91,
161
+ 0,
162
+ 0
163
+ ],
164
+ [
165
+ 0,
166
+ 66,
167
+ 91,
168
+ 3,
169
+ 12,
170
+ 1,
171
+ 1393,
172
+ 31,
173
+ 216,
174
+ 0,
175
+ 2,
176
+ 314,
177
+ 0,
178
+ 0,
179
+ 79,
180
+ 0,
181
+ 5,
182
+ 195,
183
+ 0,
184
+ 0
185
+ ],
186
+ [
187
+ 0,
188
+ 5,
189
+ 1,
190
+ 11,
191
+ 0,
192
+ 0,
193
+ 11,
194
+ 4092,
195
+ 358,
196
+ 113,
197
+ 0,
198
+ 12,
199
+ 674,
200
+ 0,
201
+ 77,
202
+ 1,
203
+ 7,
204
+ 0,
205
+ 17,
206
+ 0
207
+ ],
208
+ [
209
+ 0,
210
+ 23,
211
+ 0,
212
+ 0,
213
+ 0,
214
+ 0,
215
+ 0,
216
+ 0,
217
+ 6566,
218
+ 0,
219
+ 0,
220
+ 8,
221
+ 0,
222
+ 0,
223
+ 0,
224
+ 0,
225
+ 1,
226
+ 0,
227
+ 0,
228
+ 0
229
+ ],
230
+ [
231
+ 0,
232
+ 3,
233
+ 21,
234
+ 3,
235
+ 0,
236
+ 1,
237
+ 0,
238
+ 17,
239
+ 0,
240
+ 2064,
241
+ 0,
242
+ 0,
243
+ 32,
244
+ 22,
245
+ 3,
246
+ 0,
247
+ 0,
248
+ 0,
249
+ 0,
250
+ 0
251
+ ],
252
+ [
253
+ 0,
254
+ 26,
255
+ 888,
256
+ 0,
257
+ 5,
258
+ 0,
259
+ 0,
260
+ 0,
261
+ 0,
262
+ 5,
263
+ 238,
264
+ 0,
265
+ 0,
266
+ 0,
267
+ 5,
268
+ 0,
269
+ 32,
270
+ 3,
271
+ 0,
272
+ 0
273
+ ],
274
+ [
275
+ 0,
276
+ 7,
277
+ 1,
278
+ 0,
279
+ 73,
280
+ 0,
281
+ 18,
282
+ 4,
283
+ 11,
284
+ 0,
285
+ 0,
286
+ 6541,
287
+ 0,
288
+ 0,
289
+ 15,
290
+ 0,
291
+ 66,
292
+ 0,
293
+ 6,
294
+ 0
295
+ ],
296
+ [
297
+ 0,
298
+ 116,
299
+ 18,
300
+ 153,
301
+ 1,
302
+ 5,
303
+ 3,
304
+ 433,
305
+ 489,
306
+ 2890,
307
+ 0,
308
+ 120,
309
+ 1392,
310
+ 200,
311
+ 154,
312
+ 14,
313
+ 10,
314
+ 9,
315
+ 39,
316
+ 0
317
+ ],
318
+ [
319
+ 0,
320
+ 1,
321
+ 46,
322
+ 51,
323
+ 0,
324
+ 0,
325
+ 0,
326
+ 197,
327
+ 8,
328
+ 37,
329
+ 1,
330
+ 94,
331
+ 216,
332
+ 119,
333
+ 14,
334
+ 4,
335
+ 8,
336
+ 0,
337
+ 0,
338
+ 0
339
+ ],
340
+ [
341
+ 0,
342
+ 1021,
343
+ 18,
344
+ 37,
345
+ 0,
346
+ 3,
347
+ 7,
348
+ 52,
349
+ 440,
350
+ 0,
351
+ 0,
352
+ 63,
353
+ 1,
354
+ 0,
355
+ 1670,
356
+ 0,
357
+ 173,
358
+ 19,
359
+ 0,
360
+ 0
361
+ ],
362
+ [
363
+ 0,
364
+ 27,
365
+ 6,
366
+ 29,
367
+ 7,
368
+ 6,
369
+ 0,
370
+ 1,
371
+ 0,
372
+ 36,
373
+ 0,
374
+ 0,
375
+ 0,
376
+ 0,
377
+ 0,
378
+ 1797,
379
+ 0,
380
+ 0,
381
+ 0,
382
+ 0
383
+ ],
384
+ [
385
+ 0,
386
+ 53,
387
+ 0,
388
+ 6,
389
+ 0,
390
+ 0,
391
+ 0,
392
+ 40,
393
+ 920,
394
+ 0,
395
+ 0,
396
+ 8,
397
+ 0,
398
+ 0,
399
+ 32,
400
+ 0,
401
+ 1770,
402
+ 0,
403
+ 0,
404
+ 0
405
+ ],
406
+ [
407
+ 0,
408
+ 241,
409
+ 439,
410
+ 46,
411
+ 9,
412
+ 311,
413
+ 0,
414
+ 0,
415
+ 0,
416
+ 43,
417
+ 139,
418
+ 0,
419
+ 0,
420
+ 0,
421
+ 0,
422
+ 3,
423
+ 27,
424
+ 37,
425
+ 0,
426
+ 0
427
+ ],
428
+ [
429
+ 0,
430
+ 14,
431
+ 0,
432
+ 411,
433
+ 0,
434
+ 0,
435
+ 1,
436
+ 184,
437
+ 0,
438
+ 0,
439
+ 0,
440
+ 8,
441
+ 87,
442
+ 0,
443
+ 108,
444
+ 49,
445
+ 52,
446
+ 0,
447
+ 612,
448
+ 0
449
+ ],
450
+ [
451
+ 0,
452
+ 0,
453
+ 0,
454
+ 0,
455
+ 0,
456
+ 0,
457
+ 0,
458
+ 0,
459
+ 0,
460
+ 0,
461
+ 0,
462
+ 0,
463
+ 0,
464
+ 0,
465
+ 0,
466
+ 0,
467
+ 0,
468
+ 0,
469
+ 0,
470
+ 0
471
+ ]
472
+ ]
473
+ },
474
+ "reference": {
475
+ "miou": 0.517690746616618,
476
+ "oa": 0.7853386317627274,
477
+ "macro_f1": 0.6313043933615895,
478
+ "kappa": 0.7617504573466095,
479
+ "per_class_iou": [
480
+ 0.7832551694734599,
481
+ 0.810901842177619,
482
+ 0.7879978325657003,
483
+ 0.5577777777777778,
484
+ 0.8986279257465698,
485
+ 0.580084909301428,
486
+ 0.6166109930154874,
487
+ 0.6909798968529628,
488
+ 0.38513513513513514,
489
+ 0.1546572934973638,
490
+ 0.8519243313763861,
491
+ 0.19663702056698165,
492
+ 0.10965323336457357,
493
+ 0.3287156144864437,
494
+ 0.830249768732655,
495
+ 0.5048543689320388,
496
+ 0.02144607843137255,
497
+ 0.20892424766516776
498
+ ],
499
+ "confusion_matrix": [
500
+ [
501
+ 0,
502
+ 0,
503
+ 0,
504
+ 0,
505
+ 0,
506
+ 0,
507
+ 0,
508
+ 0,
509
+ 0,
510
+ 0,
511
+ 0,
512
+ 0,
513
+ 0,
514
+ 0,
515
+ 0,
516
+ 0,
517
+ 0,
518
+ 0,
519
+ 0,
520
+ 0
521
+ ],
522
+ [
523
+ 0,
524
+ 14697,
525
+ 126,
526
+ 50,
527
+ 60,
528
+ 18,
529
+ 47,
530
+ 5,
531
+ 490,
532
+ 0,
533
+ 3,
534
+ 219,
535
+ 87,
536
+ 3,
537
+ 699,
538
+ 21,
539
+ 245,
540
+ 5,
541
+ 5,
542
+ 0
543
+ ],
544
+ [
545
+ 0,
546
+ 100,
547
+ 11797,
548
+ 79,
549
+ 11,
550
+ 15,
551
+ 56,
552
+ 3,
553
+ 0,
554
+ 19,
555
+ 59,
556
+ 191,
557
+ 21,
558
+ 8,
559
+ 98,
560
+ 0,
561
+ 7,
562
+ 5,
563
+ 8,
564
+ 0
565
+ ],
566
+ [
567
+ 0,
568
+ 165,
569
+ 120,
570
+ 11634,
571
+ 26,
572
+ 11,
573
+ 3,
574
+ 200,
575
+ 1,
576
+ 33,
577
+ 3,
578
+ 0,
579
+ 2,
580
+ 6,
581
+ 215,
582
+ 134,
583
+ 39,
584
+ 1,
585
+ 1275,
586
+ 0
587
+ ],
588
+ [
589
+ 0,
590
+ 25,
591
+ 305,
592
+ 30,
593
+ 1255,
594
+ 41,
595
+ 21,
596
+ 0,
597
+ 0,
598
+ 0,
599
+ 300,
600
+ 0,
601
+ 12,
602
+ 9,
603
+ 0,
604
+ 0,
605
+ 22,
606
+ 23,
607
+ 4,
608
+ 0
609
+ ],
610
+ [
611
+ 0,
612
+ 71,
613
+ 7,
614
+ 25,
615
+ 0,
616
+ 5567,
617
+ 0,
618
+ 0,
619
+ 0,
620
+ 0,
621
+ 0,
622
+ 0,
623
+ 0,
624
+ 0,
625
+ 18,
626
+ 9,
627
+ 0,
628
+ 92,
629
+ 0,
630
+ 0
631
+ ],
632
+ [
633
+ 0,
634
+ 63,
635
+ 73,
636
+ 4,
637
+ 17,
638
+ 4,
639
+ 1503,
640
+ 26,
641
+ 228,
642
+ 0,
643
+ 2,
644
+ 224,
645
+ 0,
646
+ 0,
647
+ 81,
648
+ 0,
649
+ 4,
650
+ 179,
651
+ 0,
652
+ 0
653
+ ],
654
+ [
655
+ 0,
656
+ 4,
657
+ 1,
658
+ 7,
659
+ 0,
660
+ 0,
661
+ 15,
662
+ 4061,
663
+ 338,
664
+ 113,
665
+ 0,
666
+ 10,
667
+ 713,
668
+ 2,
669
+ 82,
670
+ 5,
671
+ 3,
672
+ 0,
673
+ 25,
674
+ 0
675
+ ],
676
+ [
677
+ 0,
678
+ 21,
679
+ 0,
680
+ 0,
681
+ 0,
682
+ 0,
683
+ 0,
684
+ 0,
685
+ 6565,
686
+ 0,
687
+ 0,
688
+ 11,
689
+ 0,
690
+ 0,
691
+ 0,
692
+ 0,
693
+ 1,
694
+ 0,
695
+ 0,
696
+ 0
697
+ ],
698
+ [
699
+ 0,
700
+ 5,
701
+ 21,
702
+ 3,
703
+ 0,
704
+ 1,
705
+ 0,
706
+ 23,
707
+ 0,
708
+ 2052,
709
+ 0,
710
+ 0,
711
+ 24,
712
+ 33,
713
+ 4,
714
+ 0,
715
+ 0,
716
+ 0,
717
+ 0,
718
+ 0
719
+ ],
720
+ [
721
+ 0,
722
+ 22,
723
+ 868,
724
+ 0,
725
+ 2,
726
+ 0,
727
+ 1,
728
+ 0,
729
+ 0,
730
+ 5,
731
+ 264,
732
+ 0,
733
+ 0,
734
+ 0,
735
+ 5,
736
+ 0,
737
+ 33,
738
+ 2,
739
+ 0,
740
+ 0
741
+ ],
742
+ [
743
+ 0,
744
+ 8,
745
+ 1,
746
+ 0,
747
+ 67,
748
+ 0,
749
+ 26,
750
+ 4,
751
+ 11,
752
+ 0,
753
+ 0,
754
+ 6530,
755
+ 0,
756
+ 0,
757
+ 20,
758
+ 0,
759
+ 67,
760
+ 0,
761
+ 8,
762
+ 0
763
+ ],
764
+ [
765
+ 0,
766
+ 114,
767
+ 20,
768
+ 133,
769
+ 1,
770
+ 5,
771
+ 3,
772
+ 450,
773
+ 474,
774
+ 2875,
775
+ 0,
776
+ 101,
777
+ 1415,
778
+ 210,
779
+ 164,
780
+ 25,
781
+ 10,
782
+ 10,
783
+ 36,
784
+ 0
785
+ ],
786
+ [
787
+ 0,
788
+ 1,
789
+ 46,
790
+ 49,
791
+ 0,
792
+ 3,
793
+ 0,
794
+ 195,
795
+ 5,
796
+ 39,
797
+ 1,
798
+ 98,
799
+ 212,
800
+ 117,
801
+ 17,
802
+ 4,
803
+ 7,
804
+ 0,
805
+ 2,
806
+ 0
807
+ ],
808
+ [
809
+ 0,
810
+ 1033,
811
+ 18,
812
+ 37,
813
+ 0,
814
+ 3,
815
+ 10,
816
+ 54,
817
+ 438,
818
+ 0,
819
+ 0,
820
+ 60,
821
+ 5,
822
+ 0,
823
+ 1661,
824
+ 0,
825
+ 165,
826
+ 20,
827
+ 0,
828
+ 0
829
+ ],
830
+ [
831
+ 0,
832
+ 25,
833
+ 10,
834
+ 23,
835
+ 10,
836
+ 7,
837
+ 0,
838
+ 2,
839
+ 0,
840
+ 36,
841
+ 0,
842
+ 0,
843
+ 0,
844
+ 0,
845
+ 0,
846
+ 1795,
847
+ 1,
848
+ 0,
849
+ 0,
850
+ 0
851
+ ],
852
+ [
853
+ 0,
854
+ 56,
855
+ 0,
856
+ 5,
857
+ 0,
858
+ 0,
859
+ 0,
860
+ 48,
861
+ 918,
862
+ 0,
863
+ 0,
864
+ 5,
865
+ 0,
866
+ 0,
867
+ 29,
868
+ 0,
869
+ 1768,
870
+ 0,
871
+ 0,
872
+ 0
873
+ ],
874
+ [
875
+ 0,
876
+ 254,
877
+ 455,
878
+ 30,
879
+ 9,
880
+ 298,
881
+ 0,
882
+ 0,
883
+ 0,
884
+ 42,
885
+ 137,
886
+ 0,
887
+ 0,
888
+ 0,
889
+ 0,
890
+ 4,
891
+ 29,
892
+ 35,
893
+ 2,
894
+ 0
895
+ ],
896
+ [
897
+ 0,
898
+ 17,
899
+ 0,
900
+ 421,
901
+ 0,
902
+ 0,
903
+ 1,
904
+ 197,
905
+ 0,
906
+ 0,
907
+ 0,
908
+ 4,
909
+ 74,
910
+ 0,
911
+ 117,
912
+ 51,
913
+ 40,
914
+ 0,
915
+ 604,
916
+ 0
917
+ ],
918
+ [
919
+ 0,
920
+ 0,
921
+ 0,
922
+ 0,
923
+ 0,
924
+ 0,
925
+ 0,
926
+ 0,
927
+ 0,
928
+ 0,
929
+ 0,
930
+ 0,
931
+ 0,
932
+ 0,
933
+ 0,
934
+ 0,
935
+ 0,
936
+ 0,
937
+ 0,
938
+ 0
939
+ ]
940
+ ]
941
+ },
942
+ "standalone": {
943
+ "miou": 0.4622728764594472,
944
+ "oa": 0.7556367219717013,
945
+ "macro_f1": 0.5851095565648042,
946
+ "kappa": 0.7288150704360855,
947
+ "per_class_iou": [
948
+ 0.7623352996306302,
949
+ 0.7557585644371941,
950
+ 0.8030479896238651,
951
+ 0.34434152235199356,
952
+ 0.8693018807778132,
953
+ 0.35746057420137484,
954
+ 0.5780491623610459,
955
+ 0.7065570222895478,
956
+ 0.36595125500181885,
957
+ 0.0,
958
+ 0.7482904975241689,
959
+ 0.1176056338028169,
960
+ 0.16121212121212122,
961
+ 0.3162297824874512,
962
+ 0.6136274123670736,
963
+ 0.3756779307467668,
964
+ 0.15404168784951702,
965
+ 0.29142343960484957
966
+ ],
967
+ "confusion_matrix": [
968
+ [
969
+ 0,
970
+ 0,
971
+ 0,
972
+ 0,
973
+ 0,
974
+ 0,
975
+ 0,
976
+ 0,
977
+ 0,
978
+ 0,
979
+ 0,
980
+ 0,
981
+ 0,
982
+ 0,
983
+ 0,
984
+ 0,
985
+ 0,
986
+ 0,
987
+ 0,
988
+ 0
989
+ ],
990
+ [
991
+ 0,
992
+ 13828,
993
+ 137,
994
+ 130,
995
+ 13,
996
+ 47,
997
+ 0,
998
+ 1,
999
+ 563,
1000
+ 0,
1001
+ 8,
1002
+ 299,
1003
+ 53,
1004
+ 3,
1005
+ 996,
1006
+ 16,
1007
+ 606,
1008
+ 52,
1009
+ 28,
1010
+ 0
1011
+ ],
1012
+ [
1013
+ 0,
1014
+ 122,
1015
+ 11582,
1016
+ 143,
1017
+ 39,
1018
+ 41,
1019
+ 14,
1020
+ 0,
1021
+ 3,
1022
+ 19,
1023
+ 88,
1024
+ 207,
1025
+ 31,
1026
+ 0,
1027
+ 47,
1028
+ 6,
1029
+ 67,
1030
+ 68,
1031
+ 0,
1032
+ 0
1033
+ ],
1034
+ [
1035
+ 0,
1036
+ 141,
1037
+ 162,
1038
+ 12383,
1039
+ 2,
1040
+ 9,
1041
+ 0,
1042
+ 242,
1043
+ 0,
1044
+ 51,
1045
+ 35,
1046
+ 3,
1047
+ 52,
1048
+ 10,
1049
+ 188,
1050
+ 135,
1051
+ 56,
1052
+ 28,
1053
+ 371,
1054
+ 0
1055
+ ],
1056
+ [
1057
+ 0,
1058
+ 30,
1059
+ 1006,
1060
+ 6,
1061
+ 855,
1062
+ 60,
1063
+ 0,
1064
+ 0,
1065
+ 0,
1066
+ 2,
1067
+ 3,
1068
+ 0,
1069
+ 20,
1070
+ 0,
1071
+ 4,
1072
+ 9,
1073
+ 0,
1074
+ 52,
1075
+ 0,
1076
+ 0
1077
+ ],
1078
+ [
1079
+ 0,
1080
+ 41,
1081
+ 27,
1082
+ 47,
1083
+ 78,
1084
+ 5454,
1085
+ 0,
1086
+ 0,
1087
+ 0,
1088
+ 0,
1089
+ 1,
1090
+ 0,
1091
+ 0,
1092
+ 0,
1093
+ 13,
1094
+ 29,
1095
+ 2,
1096
+ 97,
1097
+ 0,
1098
+ 0
1099
+ ],
1100
+ [
1101
+ 0,
1102
+ 103,
1103
+ 219,
1104
+ 25,
1105
+ 19,
1106
+ 0,
1107
+ 884,
1108
+ 34,
1109
+ 70,
1110
+ 0,
1111
+ 21,
1112
+ 707,
1113
+ 10,
1114
+ 0,
1115
+ 34,
1116
+ 0,
1117
+ 12,
1118
+ 269,
1119
+ 1,
1120
+ 0
1121
+ ],
1122
+ [
1123
+ 0,
1124
+ 9,
1125
+ 2,
1126
+ 90,
1127
+ 0,
1128
+ 0,
1129
+ 9,
1130
+ 3692,
1131
+ 428,
1132
+ 0,
1133
+ 2,
1134
+ 41,
1135
+ 491,
1136
+ 6,
1137
+ 166,
1138
+ 128,
1139
+ 309,
1140
+ 0,
1141
+ 6,
1142
+ 0
1143
+ ],
1144
+ [
1145
+ 0,
1146
+ 34,
1147
+ 0,
1148
+ 0,
1149
+ 0,
1150
+ 0,
1151
+ 0,
1152
+ 4,
1153
+ 6530,
1154
+ 0,
1155
+ 0,
1156
+ 10,
1157
+ 0,
1158
+ 0,
1159
+ 18,
1160
+ 0,
1161
+ 2,
1162
+ 0,
1163
+ 0,
1164
+ 0
1165
+ ],
1166
+ [
1167
+ 0,
1168
+ 0,
1169
+ 2,
1170
+ 4,
1171
+ 0,
1172
+ 0,
1173
+ 0,
1174
+ 8,
1175
+ 11,
1176
+ 2012,
1177
+ 12,
1178
+ 0,
1179
+ 51,
1180
+ 1,
1181
+ 6,
1182
+ 55,
1183
+ 0,
1184
+ 4,
1185
+ 0,
1186
+ 0
1187
+ ],
1188
+ [
1189
+ 0,
1190
+ 48,
1191
+ 1041,
1192
+ 8,
1193
+ 31,
1194
+ 13,
1195
+ 0,
1196
+ 0,
1197
+ 0,
1198
+ 0,
1199
+ 0,
1200
+ 0,
1201
+ 0,
1202
+ 0,
1203
+ 1,
1204
+ 1,
1205
+ 0,
1206
+ 59,
1207
+ 0,
1208
+ 0
1209
+ ],
1210
+ [
1211
+ 0,
1212
+ 0,
1213
+ 5,
1214
+ 0,
1215
+ 141,
1216
+ 0,
1217
+ 11,
1218
+ 12,
1219
+ 22,
1220
+ 0,
1221
+ 0,
1222
+ 6347,
1223
+ 9,
1224
+ 0,
1225
+ 64,
1226
+ 0,
1227
+ 128,
1228
+ 0,
1229
+ 3,
1230
+ 0
1231
+ ],
1232
+ [
1233
+ 0,
1234
+ 60,
1235
+ 32,
1236
+ 331,
1237
+ 0,
1238
+ 0,
1239
+ 24,
1240
+ 359,
1241
+ 309,
1242
+ 3167,
1243
+ 41,
1244
+ 143,
1245
+ 835,
1246
+ 8,
1247
+ 50,
1248
+ 218,
1249
+ 288,
1250
+ 3,
1251
+ 178,
1252
+ 0
1253
+ ],
1254
+ [
1255
+ 0,
1256
+ 0,
1257
+ 26,
1258
+ 94,
1259
+ 0,
1260
+ 0,
1261
+ 0,
1262
+ 167,
1263
+ 18,
1264
+ 24,
1265
+ 19,
1266
+ 0,
1267
+ 205,
1268
+ 133,
1269
+ 40,
1270
+ 12,
1271
+ 36,
1272
+ 10,
1273
+ 12,
1274
+ 0
1275
+ ],
1276
+ [
1277
+ 0,
1278
+ 617,
1279
+ 12,
1280
+ 43,
1281
+ 0,
1282
+ 0,
1283
+ 7,
1284
+ 87,
1285
+ 554,
1286
+ 2,
1287
+ 13,
1288
+ 209,
1289
+ 0,
1290
+ 0,
1291
+ 1701,
1292
+ 3,
1293
+ 242,
1294
+ 2,
1295
+ 12,
1296
+ 0
1297
+ ],
1298
+ [
1299
+ 0,
1300
+ 27,
1301
+ 6,
1302
+ 131,
1303
+ 0,
1304
+ 5,
1305
+ 0,
1306
+ 3,
1307
+ 0,
1308
+ 55,
1309
+ 0,
1310
+ 4,
1311
+ 0,
1312
+ 1,
1313
+ 8,
1314
+ 1558,
1315
+ 7,
1316
+ 22,
1317
+ 82,
1318
+ 0
1319
+ ],
1320
+ [
1321
+ 0,
1322
+ 37,
1323
+ 0,
1324
+ 18,
1325
+ 0,
1326
+ 0,
1327
+ 0,
1328
+ 13,
1329
+ 643,
1330
+ 0,
1331
+ 5,
1332
+ 87,
1333
+ 0,
1334
+ 0,
1335
+ 217,
1336
+ 0,
1337
+ 1801,
1338
+ 0,
1339
+ 8,
1340
+ 0
1341
+ ],
1342
+ [
1343
+ 0,
1344
+ 47,
1345
+ 169,
1346
+ 170,
1347
+ 113,
1348
+ 310,
1349
+ 0,
1350
+ 0,
1351
+ 0,
1352
+ 12,
1353
+ 171,
1354
+ 0,
1355
+ 0,
1356
+ 0,
1357
+ 0,
1358
+ 0,
1359
+ 0,
1360
+ 303,
1361
+ 0,
1362
+ 0
1363
+ ],
1364
+ [
1365
+ 0,
1366
+ 43,
1367
+ 2,
1368
+ 312,
1369
+ 0,
1370
+ 0,
1371
+ 0,
1372
+ 78,
1373
+ 23,
1374
+ 0,
1375
+ 0,
1376
+ 30,
1377
+ 132,
1378
+ 0,
1379
+ 23,
1380
+ 18,
1381
+ 210,
1382
+ 6,
1383
+ 649,
1384
+ 0
1385
+ ],
1386
+ [
1387
+ 0,
1388
+ 0,
1389
+ 0,
1390
+ 0,
1391
+ 0,
1392
+ 0,
1393
+ 0,
1394
+ 0,
1395
+ 0,
1396
+ 0,
1397
+ 0,
1398
+ 0,
1399
+ 0,
1400
+ 0,
1401
+ 0,
1402
+ 0,
1403
+ 0,
1404
+ 0,
1405
+ 0,
1406
+ 0
1407
+ ]
1408
+ ]
1409
+ },
1410
+ "records": {
1411
+ "replace:0.0": {
1412
+ "miou": 0.5069881701623682,
1413
+ "oa": 0.775366587761485,
1414
+ "macro_f1": 0.6219409132377508,
1415
+ "kappa": 0.751105731991019,
1416
+ "per_class_iou": [
1417
+ 0.7781331627485474,
1418
+ 0.8032224168126094,
1419
+ 0.7638945508900666,
1420
+ 0.4874521480221182,
1421
+ 0.9024627349319507,
1422
+ 0.5841441441441442,
1423
+ 0.58692089974676,
1424
+ 0.6966029723991507,
1425
+ 0.3621249761131282,
1426
+ 0.14381270903010032,
1427
+ 0.8547984770907181,
1428
+ 0.20548880393227745,
1429
+ 0.09766277128547579,
1430
+ 0.3258513931888545,
1431
+ 0.8012422360248447,
1432
+ 0.5073593073593073,
1433
+ 0.02595051297525649,
1434
+ 0.19866284622731614
1435
+ ],
1436
+ "confusion_matrix": [
1437
+ [
1438
+ 0,
1439
+ 0,
1440
+ 0,
1441
+ 0,
1442
+ 0,
1443
+ 0,
1444
+ 0,
1445
+ 0,
1446
+ 0,
1447
+ 0,
1448
+ 0,
1449
+ 0,
1450
+ 0,
1451
+ 0,
1452
+ 0,
1453
+ 0,
1454
+ 0,
1455
+ 0,
1456
+ 0,
1457
+ 0
1458
+ ],
1459
+ [
1460
+ 0,
1461
+ 14597,
1462
+ 134,
1463
+ 59,
1464
+ 97,
1465
+ 22,
1466
+ 60,
1467
+ 13,
1468
+ 517,
1469
+ 2,
1470
+ 3,
1471
+ 236,
1472
+ 93,
1473
+ 1,
1474
+ 670,
1475
+ 34,
1476
+ 230,
1477
+ 6,
1478
+ 6,
1479
+ 0
1480
+ ],
1481
+ [
1482
+ 0,
1483
+ 103,
1484
+ 11466,
1485
+ 73,
1486
+ 93,
1487
+ 22,
1488
+ 105,
1489
+ 5,
1490
+ 0,
1491
+ 22,
1492
+ 170,
1493
+ 265,
1494
+ 14,
1495
+ 18,
1496
+ 94,
1497
+ 1,
1498
+ 10,
1499
+ 7,
1500
+ 9,
1501
+ 0
1502
+ ],
1503
+ [
1504
+ 0,
1505
+ 165,
1506
+ 104,
1507
+ 11243,
1508
+ 50,
1509
+ 13,
1510
+ 4,
1511
+ 297,
1512
+ 7,
1513
+ 28,
1514
+ 7,
1515
+ 0,
1516
+ 2,
1517
+ 8,
1518
+ 245,
1519
+ 129,
1520
+ 46,
1521
+ 2,
1522
+ 1518,
1523
+ 0
1524
+ ],
1525
+ [
1526
+ 0,
1527
+ 45,
1528
+ 243,
1529
+ 34,
1530
+ 1146,
1531
+ 15,
1532
+ 65,
1533
+ 0,
1534
+ 1,
1535
+ 0,
1536
+ 431,
1537
+ 0,
1538
+ 14,
1539
+ 3,
1540
+ 0,
1541
+ 1,
1542
+ 34,
1543
+ 11,
1544
+ 4,
1545
+ 0
1546
+ ],
1547
+ [
1548
+ 0,
1549
+ 65,
1550
+ 2,
1551
+ 24,
1552
+ 0,
1553
+ 5570,
1554
+ 0,
1555
+ 0,
1556
+ 2,
1557
+ 0,
1558
+ 3,
1559
+ 0,
1560
+ 0,
1561
+ 0,
1562
+ 17,
1563
+ 8,
1564
+ 0,
1565
+ 98,
1566
+ 0,
1567
+ 0
1568
+ ],
1569
+ [
1570
+ 0,
1571
+ 39,
1572
+ 61,
1573
+ 4,
1574
+ 21,
1575
+ 4,
1576
+ 1621,
1577
+ 26,
1578
+ 240,
1579
+ 0,
1580
+ 5,
1581
+ 102,
1582
+ 2,
1583
+ 0,
1584
+ 86,
1585
+ 0,
1586
+ 3,
1587
+ 194,
1588
+ 0,
1589
+ 0
1590
+ ],
1591
+ [
1592
+ 0,
1593
+ 4,
1594
+ 1,
1595
+ 4,
1596
+ 0,
1597
+ 0,
1598
+ 15,
1599
+ 3940,
1600
+ 285,
1601
+ 100,
1602
+ 0,
1603
+ 13,
1604
+ 845,
1605
+ 6,
1606
+ 107,
1607
+ 13,
1608
+ 3,
1609
+ 0,
1610
+ 43,
1611
+ 0
1612
+ ],
1613
+ [
1614
+ 0,
1615
+ 11,
1616
+ 0,
1617
+ 0,
1618
+ 0,
1619
+ 0,
1620
+ 5,
1621
+ 0,
1622
+ 6562,
1623
+ 0,
1624
+ 0,
1625
+ 17,
1626
+ 0,
1627
+ 0,
1628
+ 2,
1629
+ 0,
1630
+ 1,
1631
+ 0,
1632
+ 0,
1633
+ 0
1634
+ ],
1635
+ [
1636
+ 0,
1637
+ 3,
1638
+ 20,
1639
+ 3,
1640
+ 0,
1641
+ 1,
1642
+ 0,
1643
+ 15,
1644
+ 0,
1645
+ 1895,
1646
+ 0,
1647
+ 0,
1648
+ 26,
1649
+ 151,
1650
+ 51,
1651
+ 1,
1652
+ 0,
1653
+ 0,
1654
+ 0,
1655
+ 0
1656
+ ],
1657
+ [
1658
+ 0,
1659
+ 18,
1660
+ 826,
1661
+ 1,
1662
+ 0,
1663
+ 1,
1664
+ 6,
1665
+ 0,
1666
+ 0,
1667
+ 4,
1668
+ 301,
1669
+ 0,
1670
+ 0,
1671
+ 0,
1672
+ 5,
1673
+ 0,
1674
+ 35,
1675
+ 5,
1676
+ 0,
1677
+ 0
1678
+ ],
1679
+ [
1680
+ 0,
1681
+ 9,
1682
+ 2,
1683
+ 0,
1684
+ 13,
1685
+ 0,
1686
+ 80,
1687
+ 10,
1688
+ 15,
1689
+ 0,
1690
+ 0,
1691
+ 6511,
1692
+ 0,
1693
+ 0,
1694
+ 27,
1695
+ 0,
1696
+ 67,
1697
+ 0,
1698
+ 8,
1699
+ 0
1700
+ ],
1701
+ [
1702
+ 0,
1703
+ 109,
1704
+ 19,
1705
+ 109,
1706
+ 1,
1707
+ 8,
1708
+ 7,
1709
+ 431,
1710
+ 459,
1711
+ 2819,
1712
+ 0,
1713
+ 93,
1714
+ 1505,
1715
+ 215,
1716
+ 168,
1717
+ 66,
1718
+ 10,
1719
+ 10,
1720
+ 17,
1721
+ 0
1722
+ ],
1723
+ [
1724
+ 0,
1725
+ 4,
1726
+ 33,
1727
+ 40,
1728
+ 0,
1729
+ 5,
1730
+ 2,
1731
+ 198,
1732
+ 5,
1733
+ 25,
1734
+ 0,
1735
+ 92,
1736
+ 219,
1737
+ 117,
1738
+ 30,
1739
+ 13,
1740
+ 7,
1741
+ 1,
1742
+ 5,
1743
+ 0
1744
+ ],
1745
+ [
1746
+ 0,
1747
+ 1057,
1748
+ 17,
1749
+ 37,
1750
+ 0,
1751
+ 9,
1752
+ 15,
1753
+ 52,
1754
+ 382,
1755
+ 0,
1756
+ 0,
1757
+ 53,
1758
+ 16,
1759
+ 0,
1760
+ 1684,
1761
+ 22,
1762
+ 132,
1763
+ 28,
1764
+ 0,
1765
+ 0
1766
+ ],
1767
+ [
1768
+ 0,
1769
+ 18,
1770
+ 10,
1771
+ 24,
1772
+ 13,
1773
+ 7,
1774
+ 0,
1775
+ 2,
1776
+ 0,
1777
+ 28,
1778
+ 0,
1779
+ 0,
1780
+ 0,
1781
+ 0,
1782
+ 0,
1783
+ 1806,
1784
+ 1,
1785
+ 0,
1786
+ 0,
1787
+ 0
1788
+ ],
1789
+ [
1790
+ 0,
1791
+ 52,
1792
+ 0,
1793
+ 5,
1794
+ 0,
1795
+ 0,
1796
+ 0,
1797
+ 71,
1798
+ 909,
1799
+ 0,
1800
+ 0,
1801
+ 3,
1802
+ 0,
1803
+ 0,
1804
+ 29,
1805
+ 0,
1806
+ 1758,
1807
+ 0,
1808
+ 2,
1809
+ 0
1810
+ ],
1811
+ [
1812
+ 0,
1813
+ 262,
1814
+ 324,
1815
+ 17,
1816
+ 16,
1817
+ 276,
1818
+ 2,
1819
+ 2,
1820
+ 0,
1821
+ 39,
1822
+ 272,
1823
+ 0,
1824
+ 0,
1825
+ 0,
1826
+ 2,
1827
+ 6,
1828
+ 31,
1829
+ 43,
1830
+ 3,
1831
+ 0
1832
+ ],
1833
+ [
1834
+ 0,
1835
+ 15,
1836
+ 2,
1837
+ 416,
1838
+ 0,
1839
+ 0,
1840
+ 1,
1841
+ 212,
1842
+ 0,
1843
+ 0,
1844
+ 0,
1845
+ 1,
1846
+ 47,
1847
+ 0,
1848
+ 131,
1849
+ 51,
1850
+ 26,
1851
+ 0,
1852
+ 624,
1853
+ 0
1854
+ ],
1855
+ [
1856
+ 0,
1857
+ 0,
1858
+ 0,
1859
+ 0,
1860
+ 0,
1861
+ 0,
1862
+ 0,
1863
+ 0,
1864
+ 0,
1865
+ 0,
1866
+ 0,
1867
+ 0,
1868
+ 0,
1869
+ 0,
1870
+ 0,
1871
+ 0,
1872
+ 0,
1873
+ 0,
1874
+ 0,
1875
+ 0
1876
+ ]
1877
+ ]
1878
+ },
1879
+ "replace:0.1": {
1880
+ "miou": 0.5085433172933511,
1881
+ "oa": 0.7776908987692934,
1882
+ "macro_f1": 0.6232419866259026,
1883
+ "kappa": 0.7535763163678348,
1884
+ "per_class_iou": [
1885
+ 0.780431762316982,
1886
+ 0.808817384036774,
1887
+ 0.7690689467969598,
1888
+ 0.4876279863481229,
1889
+ 0.9005658852061439,
1890
+ 0.5766233766233766,
1891
+ 0.5950301204819277,
1892
+ 0.6947178998623902,
1893
+ 0.36710301650540694,
1894
+ 0.14515318935208438,
1895
+ 0.8552321007081038,
1896
+ 0.2048488150367747,
1897
+ 0.09930915371329879,
1898
+ 0.3300704776820673,
1899
+ 0.8128101037437979,
1900
+ 0.5015656134358099,
1901
+ 0.026994601079784044,
1902
+ 0.19780927835051546
1903
+ ],
1904
+ "confusion_matrix": [
1905
+ [
1906
+ 0,
1907
+ 0,
1908
+ 0,
1909
+ 0,
1910
+ 0,
1911
+ 0,
1912
+ 0,
1913
+ 0,
1914
+ 0,
1915
+ 0,
1916
+ 0,
1917
+ 0,
1918
+ 0,
1919
+ 0,
1920
+ 0,
1921
+ 0,
1922
+ 0,
1923
+ 0,
1924
+ 0,
1925
+ 0
1926
+ ],
1927
+ [
1928
+ 0,
1929
+ 14605,
1930
+ 132,
1931
+ 56,
1932
+ 95,
1933
+ 21,
1934
+ 59,
1935
+ 12,
1936
+ 509,
1937
+ 2,
1938
+ 3,
1939
+ 230,
1940
+ 91,
1941
+ 1,
1942
+ 663,
1943
+ 32,
1944
+ 260,
1945
+ 5,
1946
+ 4,
1947
+ 0
1948
+ ],
1949
+ [
1950
+ 0,
1951
+ 96,
1952
+ 11613,
1953
+ 71,
1954
+ 64,
1955
+ 21,
1956
+ 81,
1957
+ 5,
1958
+ 0,
1959
+ 22,
1960
+ 131,
1961
+ 216,
1962
+ 22,
1963
+ 13,
1964
+ 96,
1965
+ 0,
1966
+ 9,
1967
+ 8,
1968
+ 9,
1969
+ 0
1970
+ ],
1971
+ [
1972
+ 0,
1973
+ 167,
1974
+ 107,
1975
+ 11333,
1976
+ 50,
1977
+ 12,
1978
+ 4,
1979
+ 256,
1980
+ 6,
1981
+ 34,
1982
+ 4,
1983
+ 0,
1984
+ 3,
1985
+ 7,
1986
+ 223,
1987
+ 123,
1988
+ 44,
1989
+ 3,
1990
+ 1492,
1991
+ 0
1992
+ ],
1993
+ [
1994
+ 0,
1995
+ 44,
1996
+ 314,
1997
+ 34,
1998
+ 1143,
1999
+ 17,
2000
+ 48,
2001
+ 0,
2002
+ 1,
2003
+ 0,
2004
+ 383,
2005
+ 0,
2006
+ 13,
2007
+ 3,
2008
+ 0,
2009
+ 0,
2010
+ 32,
2011
+ 11,
2012
+ 4,
2013
+ 0
2014
+ ],
2015
+ [
2016
+ 0,
2017
+ 64,
2018
+ 2,
2019
+ 24,
2020
+ 0,
2021
+ 5570,
2022
+ 0,
2023
+ 0,
2024
+ 1,
2025
+ 0,
2026
+ 2,
2027
+ 0,
2028
+ 0,
2029
+ 0,
2030
+ 17,
2031
+ 10,
2032
+ 0,
2033
+ 99,
2034
+ 0,
2035
+ 0
2036
+ ],
2037
+ [
2038
+ 0,
2039
+ 42,
2040
+ 64,
2041
+ 3,
2042
+ 19,
2043
+ 3,
2044
+ 1554,
2045
+ 29,
2046
+ 236,
2047
+ 0,
2048
+ 3,
2049
+ 164,
2050
+ 0,
2051
+ 0,
2052
+ 84,
2053
+ 0,
2054
+ 3,
2055
+ 204,
2056
+ 0,
2057
+ 0
2058
+ ],
2059
+ [
2060
+ 0,
2061
+ 4,
2062
+ 1,
2063
+ 4,
2064
+ 0,
2065
+ 0,
2066
+ 14,
2067
+ 3951,
2068
+ 293,
2069
+ 101,
2070
+ 0,
2071
+ 14,
2072
+ 838,
2073
+ 2,
2074
+ 104,
2075
+ 13,
2076
+ 4,
2077
+ 0,
2078
+ 36,
2079
+ 0
2080
+ ],
2081
+ [
2082
+ 0,
2083
+ 12,
2084
+ 0,
2085
+ 0,
2086
+ 0,
2087
+ 0,
2088
+ 4,
2089
+ 0,
2090
+ 6563,
2091
+ 0,
2092
+ 0,
2093
+ 17,
2094
+ 0,
2095
+ 0,
2096
+ 1,
2097
+ 0,
2098
+ 1,
2099
+ 0,
2100
+ 0,
2101
+ 0
2102
+ ],
2103
+ [
2104
+ 0,
2105
+ 2,
2106
+ 19,
2107
+ 2,
2108
+ 0,
2109
+ 1,
2110
+ 0,
2111
+ 11,
2112
+ 0,
2113
+ 1935,
2114
+ 0,
2115
+ 0,
2116
+ 29,
2117
+ 126,
2118
+ 41,
2119
+ 0,
2120
+ 0,
2121
+ 0,
2122
+ 0,
2123
+ 0
2124
+ ],
2125
+ [
2126
+ 0,
2127
+ 17,
2128
+ 839,
2129
+ 1,
2130
+ 3,
2131
+ 1,
2132
+ 3,
2133
+ 0,
2134
+ 0,
2135
+ 4,
2136
+ 289,
2137
+ 0,
2138
+ 0,
2139
+ 0,
2140
+ 5,
2141
+ 0,
2142
+ 35,
2143
+ 5,
2144
+ 0,
2145
+ 0
2146
+ ],
2147
+ [
2148
+ 0,
2149
+ 6,
2150
+ 2,
2151
+ 0,
2152
+ 39,
2153
+ 0,
2154
+ 52,
2155
+ 8,
2156
+ 14,
2157
+ 0,
2158
+ 0,
2159
+ 6522,
2160
+ 0,
2161
+ 0,
2162
+ 21,
2163
+ 0,
2164
+ 70,
2165
+ 0,
2166
+ 8,
2167
+ 0
2168
+ ],
2169
+ [
2170
+ 0,
2171
+ 110,
2172
+ 19,
2173
+ 119,
2174
+ 1,
2175
+ 6,
2176
+ 6,
2177
+ 421,
2178
+ 461,
2179
+ 2843,
2180
+ 0,
2181
+ 96,
2182
+ 1504,
2183
+ 210,
2184
+ 163,
2185
+ 47,
2186
+ 10,
2187
+ 9,
2188
+ 21,
2189
+ 0
2190
+ ],
2191
+ [
2192
+ 0,
2193
+ 3,
2194
+ 34,
2195
+ 40,
2196
+ 0,
2197
+ 5,
2198
+ 2,
2199
+ 199,
2200
+ 5,
2201
+ 24,
2202
+ 0,
2203
+ 89,
2204
+ 231,
2205
+ 115,
2206
+ 27,
2207
+ 12,
2208
+ 7,
2209
+ 1,
2210
+ 2,
2211
+ 0
2212
+ ],
2213
+ [
2214
+ 0,
2215
+ 1036,
2216
+ 18,
2217
+ 37,
2218
+ 0,
2219
+ 9,
2220
+ 12,
2221
+ 53,
2222
+ 405,
2223
+ 0,
2224
+ 0,
2225
+ 54,
2226
+ 14,
2227
+ 0,
2228
+ 1686,
2229
+ 16,
2230
+ 137,
2231
+ 27,
2232
+ 0,
2233
+ 0
2234
+ ],
2235
+ [
2236
+ 0,
2237
+ 18,
2238
+ 10,
2239
+ 22,
2240
+ 13,
2241
+ 7,
2242
+ 0,
2243
+ 2,
2244
+ 0,
2245
+ 34,
2246
+ 0,
2247
+ 0,
2248
+ 0,
2249
+ 0,
2250
+ 0,
2251
+ 1802,
2252
+ 1,
2253
+ 0,
2254
+ 0,
2255
+ 0
2256
+ ],
2257
+ [
2258
+ 0,
2259
+ 51,
2260
+ 0,
2261
+ 5,
2262
+ 0,
2263
+ 0,
2264
+ 0,
2265
+ 62,
2266
+ 918,
2267
+ 0,
2268
+ 0,
2269
+ 3,
2270
+ 0,
2271
+ 0,
2272
+ 28,
2273
+ 0,
2274
+ 1762,
2275
+ 0,
2276
+ 0,
2277
+ 0
2278
+ ],
2279
+ [
2280
+ 0,
2281
+ 247,
2282
+ 318,
2283
+ 32,
2284
+ 13,
2285
+ 293,
2286
+ 1,
2287
+ 2,
2288
+ 0,
2289
+ 41,
2290
+ 263,
2291
+ 0,
2292
+ 0,
2293
+ 0,
2294
+ 2,
2295
+ 5,
2296
+ 31,
2297
+ 45,
2298
+ 2,
2299
+ 0
2300
+ ],
2301
+ [
2302
+ 0,
2303
+ 15,
2304
+ 2,
2305
+ 418,
2306
+ 0,
2307
+ 0,
2308
+ 1,
2309
+ 201,
2310
+ 0,
2311
+ 0,
2312
+ 0,
2313
+ 1,
2314
+ 55,
2315
+ 0,
2316
+ 129,
2317
+ 50,
2318
+ 40,
2319
+ 0,
2320
+ 614,
2321
+ 0
2322
+ ],
2323
+ [
2324
+ 0,
2325
+ 0,
2326
+ 0,
2327
+ 0,
2328
+ 0,
2329
+ 0,
2330
+ 0,
2331
+ 0,
2332
+ 0,
2333
+ 0,
2334
+ 0,
2335
+ 0,
2336
+ 0,
2337
+ 0,
2338
+ 0,
2339
+ 0,
2340
+ 0,
2341
+ 0,
2342
+ 0,
2343
+ 0
2344
+ ]
2345
+ ]
2346
+ },
2347
+ "replace:0.25": {
2348
+ "miou": 0.5106297853457105,
2349
+ "oa": 0.7824252096699906,
2350
+ "macro_f1": 0.6253442262624567,
2351
+ "kappa": 0.758534186028776,
2352
+ "per_class_iou": [
2353
+ 0.7830563002680965,
2354
+ 0.8082717063818132,
2355
+ 0.790556081721012,
2356
+ 0.48585111014366567,
2357
+ 0.8963797264682221,
2358
+ 0.5392953929539296,
2359
+ 0.6076452599388379,
2360
+ 0.6913437236731256,
2361
+ 0.3839638622247318,
2362
+ 0.13901601830663615,
2363
+ 0.8432181536874678,
2364
+ 0.20241486908153575,
2365
+ 0.10931558935361217,
2366
+ 0.3374924532099014,
2367
+ 0.8424497428705002,
2368
+ 0.4955431754874652,
2369
+ 0.027348394768133173,
2370
+ 0.20817457568410114
2371
+ ],
2372
+ "confusion_matrix": [
2373
+ [
2374
+ 0,
2375
+ 0,
2376
+ 0,
2377
+ 0,
2378
+ 0,
2379
+ 0,
2380
+ 0,
2381
+ 0,
2382
+ 0,
2383
+ 0,
2384
+ 0,
2385
+ 0,
2386
+ 0,
2387
+ 0,
2388
+ 0,
2389
+ 0,
2390
+ 0,
2391
+ 0,
2392
+ 0,
2393
+ 0
2394
+ ],
2395
+ [
2396
+ 0,
2397
+ 14604,
2398
+ 134,
2399
+ 49,
2400
+ 83,
2401
+ 19,
2402
+ 53,
2403
+ 6,
2404
+ 504,
2405
+ 1,
2406
+ 5,
2407
+ 215,
2408
+ 91,
2409
+ 2,
2410
+ 674,
2411
+ 26,
2412
+ 303,
2413
+ 6,
2414
+ 5,
2415
+ 0
2416
+ ],
2417
+ [
2418
+ 0,
2419
+ 96,
2420
+ 11804,
2421
+ 80,
2422
+ 10,
2423
+ 18,
2424
+ 55,
2425
+ 5,
2426
+ 0,
2427
+ 23,
2428
+ 44,
2429
+ 185,
2430
+ 32,
2431
+ 4,
2432
+ 95,
2433
+ 0,
2434
+ 10,
2435
+ 7,
2436
+ 9,
2437
+ 0
2438
+ ],
2439
+ [
2440
+ 0,
2441
+ 160,
2442
+ 118,
2443
+ 11686,
2444
+ 28,
2445
+ 13,
2446
+ 3,
2447
+ 225,
2448
+ 0,
2449
+ 34,
2450
+ 2,
2451
+ 0,
2452
+ 6,
2453
+ 4,
2454
+ 144,
2455
+ 114,
2456
+ 42,
2457
+ 2,
2458
+ 1287,
2459
+ 0
2460
+ ],
2461
+ [
2462
+ 0,
2463
+ 34,
2464
+ 517,
2465
+ 34,
2466
+ 1116,
2467
+ 38,
2468
+ 15,
2469
+ 0,
2470
+ 0,
2471
+ 0,
2472
+ 239,
2473
+ 0,
2474
+ 10,
2475
+ 3,
2476
+ 0,
2477
+ 0,
2478
+ 20,
2479
+ 17,
2480
+ 4,
2481
+ 0
2482
+ ],
2483
+ [
2484
+ 0,
2485
+ 58,
2486
+ 2,
2487
+ 23,
2488
+ 0,
2489
+ 5571,
2490
+ 0,
2491
+ 0,
2492
+ 0,
2493
+ 0,
2494
+ 1,
2495
+ 0,
2496
+ 0,
2497
+ 0,
2498
+ 19,
2499
+ 15,
2500
+ 0,
2501
+ 100,
2502
+ 0,
2503
+ 0
2504
+ ],
2505
+ [
2506
+ 0,
2507
+ 43,
2508
+ 71,
2509
+ 3,
2510
+ 11,
2511
+ 0,
2512
+ 1393,
2513
+ 34,
2514
+ 217,
2515
+ 0,
2516
+ 4,
2517
+ 323,
2518
+ 0,
2519
+ 0,
2520
+ 82,
2521
+ 0,
2522
+ 5,
2523
+ 222,
2524
+ 0,
2525
+ 0
2526
+ ],
2527
+ [
2528
+ 0,
2529
+ 4,
2530
+ 1,
2531
+ 6,
2532
+ 0,
2533
+ 0,
2534
+ 13,
2535
+ 3974,
2536
+ 334,
2537
+ 101,
2538
+ 0,
2539
+ 13,
2540
+ 810,
2541
+ 0,
2542
+ 98,
2543
+ 2,
2544
+ 5,
2545
+ 0,
2546
+ 18,
2547
+ 0
2548
+ ],
2549
+ [
2550
+ 0,
2551
+ 15,
2552
+ 0,
2553
+ 0,
2554
+ 0,
2555
+ 0,
2556
+ 4,
2557
+ 0,
2558
+ 6565,
2559
+ 0,
2560
+ 0,
2561
+ 13,
2562
+ 0,
2563
+ 0,
2564
+ 0,
2565
+ 0,
2566
+ 1,
2567
+ 0,
2568
+ 0,
2569
+ 0
2570
+ ],
2571
+ [
2572
+ 0,
2573
+ 2,
2574
+ 19,
2575
+ 3,
2576
+ 0,
2577
+ 1,
2578
+ 0,
2579
+ 12,
2580
+ 0,
2581
+ 2040,
2582
+ 0,
2583
+ 0,
2584
+ 32,
2585
+ 50,
2586
+ 7,
2587
+ 0,
2588
+ 0,
2589
+ 0,
2590
+ 0,
2591
+ 0
2592
+ ],
2593
+ [
2594
+ 0,
2595
+ 22,
2596
+ 874,
2597
+ 0,
2598
+ 16,
2599
+ 1,
2600
+ 2,
2601
+ 0,
2602
+ 0,
2603
+ 4,
2604
+ 243,
2605
+ 0,
2606
+ 0,
2607
+ 0,
2608
+ 5,
2609
+ 0,
2610
+ 32,
2611
+ 3,
2612
+ 0,
2613
+ 0
2614
+ ],
2615
+ [
2616
+ 0,
2617
+ 5,
2618
+ 1,
2619
+ 0,
2620
+ 68,
2621
+ 0,
2622
+ 16,
2623
+ 4,
2624
+ 10,
2625
+ 0,
2626
+ 0,
2627
+ 6540,
2628
+ 0,
2629
+ 0,
2630
+ 20,
2631
+ 0,
2632
+ 70,
2633
+ 0,
2634
+ 8,
2635
+ 0
2636
+ ],
2637
+ [
2638
+ 0,
2639
+ 111,
2640
+ 18,
2641
+ 132,
2642
+ 1,
2643
+ 6,
2644
+ 3,
2645
+ 391,
2646
+ 471,
2647
+ 2884,
2648
+ 2,
2649
+ 125,
2650
+ 1492,
2651
+ 193,
2652
+ 153,
2653
+ 14,
2654
+ 11,
2655
+ 9,
2656
+ 30,
2657
+ 0
2658
+ ],
2659
+ [
2660
+ 0,
2661
+ 1,
2662
+ 42,
2663
+ 42,
2664
+ 0,
2665
+ 1,
2666
+ 0,
2667
+ 202,
2668
+ 6,
2669
+ 19,
2670
+ 2,
2671
+ 77,
2672
+ 256,
2673
+ 115,
2674
+ 19,
2675
+ 7,
2676
+ 6,
2677
+ 1,
2678
+ 0,
2679
+ 0
2680
+ ],
2681
+ [
2682
+ 0,
2683
+ 1014,
2684
+ 16,
2685
+ 37,
2686
+ 0,
2687
+ 6,
2688
+ 10,
2689
+ 54,
2690
+ 444,
2691
+ 0,
2692
+ 2,
2693
+ 56,
2694
+ 11,
2695
+ 0,
2696
+ 1677,
2697
+ 2,
2698
+ 155,
2699
+ 20,
2700
+ 0,
2701
+ 0
2702
+ ],
2703
+ [
2704
+ 0,
2705
+ 20,
2706
+ 8,
2707
+ 22,
2708
+ 11,
2709
+ 7,
2710
+ 0,
2711
+ 2,
2712
+ 0,
2713
+ 36,
2714
+ 0,
2715
+ 0,
2716
+ 0,
2717
+ 0,
2718
+ 0,
2719
+ 1802,
2720
+ 1,
2721
+ 0,
2722
+ 0,
2723
+ 0
2724
+ ],
2725
+ [
2726
+ 0,
2727
+ 51,
2728
+ 0,
2729
+ 6,
2730
+ 0,
2731
+ 0,
2732
+ 0,
2733
+ 50,
2734
+ 912,
2735
+ 0,
2736
+ 0,
2737
+ 5,
2738
+ 0,
2739
+ 0,
2740
+ 26,
2741
+ 0,
2742
+ 1779,
2743
+ 0,
2744
+ 0,
2745
+ 0
2746
+ ],
2747
+ [
2748
+ 0,
2749
+ 224,
2750
+ 304,
2751
+ 60,
2752
+ 22,
2753
+ 316,
2754
+ 0,
2755
+ 2,
2756
+ 0,
2757
+ 45,
2758
+ 245,
2759
+ 0,
2760
+ 0,
2761
+ 0,
2762
+ 0,
2763
+ 2,
2764
+ 29,
2765
+ 46,
2766
+ 0,
2767
+ 0
2768
+ ],
2769
+ [
2770
+ 0,
2771
+ 10,
2772
+ 2,
2773
+ 417,
2774
+ 0,
2775
+ 0,
2776
+ 1,
2777
+ 174,
2778
+ 0,
2779
+ 0,
2780
+ 0,
2781
+ 2,
2782
+ 77,
2783
+ 0,
2784
+ 123,
2785
+ 48,
2786
+ 71,
2787
+ 0,
2788
+ 601,
2789
+ 0
2790
+ ],
2791
+ [
2792
+ 0,
2793
+ 0,
2794
+ 0,
2795
+ 0,
2796
+ 0,
2797
+ 0,
2798
+ 0,
2799
+ 0,
2800
+ 0,
2801
+ 0,
2802
+ 0,
2803
+ 0,
2804
+ 0,
2805
+ 0,
2806
+ 0,
2807
+ 0,
2808
+ 0,
2809
+ 0,
2810
+ 0,
2811
+ 0
2812
+ ]
2813
+ ]
2814
+ },
2815
+ "replace:0.5": {
2816
+ "miou": 0.5070204304568128,
2817
+ "oa": 0.7870845427962425,
2818
+ "macro_f1": 0.6252589956320188,
2819
+ "kappa": 0.7632795999352977,
2820
+ "per_class_iou": [
2821
+ 0.783890511738613,
2822
+ 0.787017310252996,
2823
+ 0.8440201005025125,
2824
+ 0.44506678155967255,
2825
+ 0.8781225139220366,
2826
+ 0.4521704180064309,
2827
+ 0.6280118140836313,
2828
+ 0.69839241988715,
2829
+ 0.3828197945845005,
2830
+ 0.06140350877192982,
2831
+ 0.8046345371625786,
2832
+ 0.19560741249142072,
2833
+ 0.14508928571428573,
2834
+ 0.3441103789126853,
2835
+ 0.8057944771389769,
2836
+ 0.4647164485501668,
2837
+ 0.0664756446991404,
2838
+ 0.33902439024390246
2839
+ ],
2840
+ "confusion_matrix": [
2841
+ [
2842
+ 0,
2843
+ 0,
2844
+ 0,
2845
+ 0,
2846
+ 0,
2847
+ 0,
2848
+ 0,
2849
+ 0,
2850
+ 0,
2851
+ 0,
2852
+ 0,
2853
+ 0,
2854
+ 0,
2855
+ 0,
2856
+ 0,
2857
+ 0,
2858
+ 0,
2859
+ 0,
2860
+ 0,
2861
+ 0
2862
+ ],
2863
+ [
2864
+ 0,
2865
+ 14491,
2866
+ 132,
2867
+ 68,
2868
+ 6,
2869
+ 28,
2870
+ 31,
2871
+ 3,
2872
+ 534,
2873
+ 0,
2874
+ 6,
2875
+ 251,
2876
+ 67,
2877
+ 2,
2878
+ 754,
2879
+ 13,
2880
+ 379,
2881
+ 8,
2882
+ 7,
2883
+ 0
2884
+ ],
2885
+ [
2886
+ 0,
2887
+ 98,
2888
+ 11821,
2889
+ 94,
2890
+ 11,
2891
+ 24,
2892
+ 29,
2893
+ 1,
2894
+ 0,
2895
+ 19,
2896
+ 20,
2897
+ 194,
2898
+ 37,
2899
+ 1,
2900
+ 77,
2901
+ 0,
2902
+ 33,
2903
+ 14,
2904
+ 4,
2905
+ 0
2906
+ ],
2907
+ [
2908
+ 0,
2909
+ 127,
2910
+ 136,
2911
+ 12597,
2912
+ 8,
2913
+ 11,
2914
+ 2,
2915
+ 230,
2916
+ 0,
2917
+ 38,
2918
+ 4,
2919
+ 0,
2920
+ 12,
2921
+ 0,
2922
+ 131,
2923
+ 104,
2924
+ 29,
2925
+ 11,
2926
+ 428,
2927
+ 0
2928
+ ],
2929
+ [
2930
+ 0,
2931
+ 30,
2932
+ 811,
2933
+ 29,
2934
+ 1033,
2935
+ 57,
2936
+ 0,
2937
+ 0,
2938
+ 0,
2939
+ 0,
2940
+ 31,
2941
+ 0,
2942
+ 17,
2943
+ 0,
2944
+ 0,
2945
+ 2,
2946
+ 0,
2947
+ 37,
2948
+ 0,
2949
+ 0
2950
+ ],
2951
+ [
2952
+ 0,
2953
+ 48,
2954
+ 3,
2955
+ 26,
2956
+ 44,
2957
+ 5519,
2958
+ 0,
2959
+ 0,
2960
+ 0,
2961
+ 0,
2962
+ 0,
2963
+ 0,
2964
+ 0,
2965
+ 0,
2966
+ 19,
2967
+ 24,
2968
+ 0,
2969
+ 106,
2970
+ 0,
2971
+ 0
2972
+ ],
2973
+ [
2974
+ 0,
2975
+ 63,
2976
+ 135,
2977
+ 7,
2978
+ 8,
2979
+ 0,
2980
+ 1125,
2981
+ 51,
2982
+ 141,
2983
+ 0,
2984
+ 5,
2985
+ 558,
2986
+ 0,
2987
+ 0,
2988
+ 59,
2989
+ 0,
2990
+ 5,
2991
+ 251,
2992
+ 0,
2993
+ 0
2994
+ ],
2995
+ [
2996
+ 0,
2997
+ 6,
2998
+ 0,
2999
+ 25,
3000
+ 0,
3001
+ 0,
3002
+ 5,
3003
+ 4040,
3004
+ 366,
3005
+ 55,
3006
+ 0,
3007
+ 24,
3008
+ 702,
3009
+ 0,
3010
+ 54,
3011
+ 67,
3012
+ 30,
3013
+ 0,
3014
+ 5,
3015
+ 0
3016
+ ],
3017
+ [
3018
+ 0,
3019
+ 23,
3020
+ 0,
3021
+ 0,
3022
+ 0,
3023
+ 0,
3024
+ 1,
3025
+ 1,
3026
+ 6560,
3027
+ 0,
3028
+ 0,
3029
+ 8,
3030
+ 0,
3031
+ 0,
3032
+ 3,
3033
+ 0,
3034
+ 2,
3035
+ 0,
3036
+ 0,
3037
+ 0
3038
+ ],
3039
+ [
3040
+ 0,
3041
+ 0,
3042
+ 16,
3043
+ 2,
3044
+ 0,
3045
+ 0,
3046
+ 0,
3047
+ 18,
3048
+ 0,
3049
+ 2050,
3050
+ 3,
3051
+ 0,
3052
+ 42,
3053
+ 15,
3054
+ 7,
3055
+ 13,
3056
+ 0,
3057
+ 0,
3058
+ 0,
3059
+ 0
3060
+ ],
3061
+ [
3062
+ 0,
3063
+ 32,
3064
+ 997,
3065
+ 2,
3066
+ 23,
3067
+ 4,
3068
+ 0,
3069
+ 0,
3070
+ 0,
3071
+ 4,
3072
+ 91,
3073
+ 0,
3074
+ 0,
3075
+ 0,
3076
+ 1,
3077
+ 2,
3078
+ 31,
3079
+ 15,
3080
+ 0,
3081
+ 0
3082
+ ],
3083
+ [
3084
+ 0,
3085
+ 1,
3086
+ 0,
3087
+ 0,
3088
+ 95,
3089
+ 0,
3090
+ 1,
3091
+ 3,
3092
+ 8,
3093
+ 0,
3094
+ 0,
3095
+ 6528,
3096
+ 2,
3097
+ 0,
3098
+ 23,
3099
+ 0,
3100
+ 75,
3101
+ 0,
3102
+ 6,
3103
+ 0
3104
+ ],
3105
+ [
3106
+ 0,
3107
+ 104,
3108
+ 14,
3109
+ 212,
3110
+ 0,
3111
+ 3,
3112
+ 11,
3113
+ 342,
3114
+ 425,
3115
+ 2965,
3116
+ 12,
3117
+ 170,
3118
+ 1425,
3119
+ 82,
3120
+ 87,
3121
+ 28,
3122
+ 95,
3123
+ 0,
3124
+ 71,
3125
+ 0
3126
+ ],
3127
+ [
3128
+ 0,
3129
+ 0,
3130
+ 42,
3131
+ 63,
3132
+ 0,
3133
+ 0,
3134
+ 0,
3135
+ 213,
3136
+ 16,
3137
+ 16,
3138
+ 4,
3139
+ 38,
3140
+ 249,
3141
+ 130,
3142
+ 6,
3143
+ 10,
3144
+ 8,
3145
+ 1,
3146
+ 0,
3147
+ 0
3148
+ ],
3149
+ [
3150
+ 0,
3151
+ 965,
3152
+ 12,
3153
+ 44,
3154
+ 0,
3155
+ 2,
3156
+ 0,
3157
+ 44,
3158
+ 461,
3159
+ 0,
3160
+ 6,
3161
+ 82,
3162
+ 0,
3163
+ 0,
3164
+ 1671,
3165
+ 0,
3166
+ 214,
3167
+ 3,
3168
+ 0,
3169
+ 0
3170
+ ],
3171
+ [
3172
+ 0,
3173
+ 22,
3174
+ 4,
3175
+ 43,
3176
+ 4,
3177
+ 6,
3178
+ 0,
3179
+ 0,
3180
+ 0,
3181
+ 42,
3182
+ 0,
3183
+ 0,
3184
+ 0,
3185
+ 0,
3186
+ 1,
3187
+ 1780,
3188
+ 0,
3189
+ 4,
3190
+ 3,
3191
+ 0
3192
+ ],
3193
+ [
3194
+ 0,
3195
+ 42,
3196
+ 0,
3197
+ 11,
3198
+ 0,
3199
+ 0,
3200
+ 0,
3201
+ 28,
3202
+ 840,
3203
+ 0,
3204
+ 2,
3205
+ 30,
3206
+ 1,
3207
+ 0,
3208
+ 64,
3209
+ 0,
3210
+ 1811,
3211
+ 0,
3212
+ 0,
3213
+ 0
3214
+ ],
3215
+ [
3216
+ 0,
3217
+ 134,
3218
+ 241,
3219
+ 117,
3220
+ 75,
3221
+ 361,
3222
+ 0,
3223
+ 0,
3224
+ 0,
3225
+ 50,
3226
+ 187,
3227
+ 0,
3228
+ 0,
3229
+ 0,
3230
+ 0,
3231
+ 0,
3232
+ 14,
3233
+ 116,
3234
+ 0,
3235
+ 0
3236
+ ],
3237
+ [
3238
+ 0,
3239
+ 11,
3240
+ 0,
3241
+ 314,
3242
+ 0,
3243
+ 0,
3244
+ 0,
3245
+ 120,
3246
+ 4,
3247
+ 0,
3248
+ 0,
3249
+ 16,
3250
+ 110,
3251
+ 0,
3252
+ 66,
3253
+ 37,
3254
+ 153,
3255
+ 0,
3256
+ 695,
3257
+ 0
3258
+ ],
3259
+ [
3260
+ 0,
3261
+ 0,
3262
+ 0,
3263
+ 0,
3264
+ 0,
3265
+ 0,
3266
+ 0,
3267
+ 0,
3268
+ 0,
3269
+ 0,
3270
+ 0,
3271
+ 0,
3272
+ 0,
3273
+ 0,
3274
+ 0,
3275
+ 0,
3276
+ 0,
3277
+ 0,
3278
+ 0,
3279
+ 0
3280
+ ]
3281
+ ]
3282
+ },
3283
+ "add:0.1": {
3284
+ "miou": 0.5183677267400687,
3285
+ "oa": 0.7884448538468953,
3286
+ "macro_f1": 0.6324601460087027,
3287
+ "kappa": 0.7649973719122495,
3288
+ "per_class_iou": [
3289
+ 0.7845430753618544,
3290
+ 0.8055290753098189,
3291
+ 0.8113220293183814,
3292
+ 0.5516930022573363,
3293
+ 0.8960411972964274,
3294
+ 0.5464888191447627,
3295
+ 0.6260709914320686,
3296
+ 0.688765341445505,
3297
+ 0.3864444860513013,
3298
+ 0.14764267990074442,
3299
+ 0.8423696072118481,
3300
+ 0.19387186629526462,
3301
+ 0.11464354527938343,
3302
+ 0.3333333333333333,
3303
+ 0.8420805998125586,
3304
+ 0.4998587969500141,
3305
+ 0.022342995169082124,
3306
+ 0.2375776397515528
3307
+ ],
3308
+ "confusion_matrix": [
3309
+ [
3310
+ 0,
3311
+ 0,
3312
+ 0,
3313
+ 0,
3314
+ 0,
3315
+ 0,
3316
+ 0,
3317
+ 0,
3318
+ 0,
3319
+ 0,
3320
+ 0,
3321
+ 0,
3322
+ 0,
3323
+ 0,
3324
+ 0,
3325
+ 0,
3326
+ 0,
3327
+ 0,
3328
+ 0,
3329
+ 0
3330
+ ],
3331
+ [
3332
+ 0,
3333
+ 14689,
3334
+ 124,
3335
+ 48,
3336
+ 31,
3337
+ 20,
3338
+ 47,
3339
+ 4,
3340
+ 493,
3341
+ 0,
3342
+ 3,
3343
+ 210,
3344
+ 84,
3345
+ 3,
3346
+ 729,
3347
+ 20,
3348
+ 266,
3349
+ 5,
3350
+ 4,
3351
+ 0
3352
+ ],
3353
+ [
3354
+ 0,
3355
+ 96,
3356
+ 11830,
3357
+ 81,
3358
+ 10,
3359
+ 16,
3360
+ 47,
3361
+ 4,
3362
+ 0,
3363
+ 18,
3364
+ 37,
3365
+ 186,
3366
+ 27,
3367
+ 5,
3368
+ 98,
3369
+ 0,
3370
+ 9,
3371
+ 5,
3372
+ 8,
3373
+ 0
3374
+ ],
3375
+ [
3376
+ 0,
3377
+ 155,
3378
+ 130,
3379
+ 12010,
3380
+ 20,
3381
+ 11,
3382
+ 2,
3383
+ 190,
3384
+ 0,
3385
+ 33,
3386
+ 2,
3387
+ 0,
3388
+ 2,
3389
+ 5,
3390
+ 173,
3391
+ 124,
3392
+ 37,
3393
+ 1,
3394
+ 973,
3395
+ 0
3396
+ ],
3397
+ [
3398
+ 0,
3399
+ 21,
3400
+ 418,
3401
+ 31,
3402
+ 1222,
3403
+ 51,
3404
+ 5,
3405
+ 0,
3406
+ 0,
3407
+ 0,
3408
+ 226,
3409
+ 0,
3410
+ 11,
3411
+ 7,
3412
+ 0,
3413
+ 0,
3414
+ 19,
3415
+ 33,
3416
+ 3,
3417
+ 0
3418
+ ],
3419
+ [
3420
+ 0,
3421
+ 68,
3422
+ 8,
3423
+ 25,
3424
+ 0,
3425
+ 5568,
3426
+ 0,
3427
+ 0,
3428
+ 0,
3429
+ 0,
3430
+ 0,
3431
+ 0,
3432
+ 0,
3433
+ 0,
3434
+ 19,
3435
+ 10,
3436
+ 0,
3437
+ 91,
3438
+ 0,
3439
+ 0
3440
+ ],
3441
+ [
3442
+ 0,
3443
+ 66,
3444
+ 91,
3445
+ 3,
3446
+ 12,
3447
+ 1,
3448
+ 1393,
3449
+ 31,
3450
+ 216,
3451
+ 0,
3452
+ 2,
3453
+ 314,
3454
+ 0,
3455
+ 0,
3456
+ 79,
3457
+ 0,
3458
+ 5,
3459
+ 195,
3460
+ 0,
3461
+ 0
3462
+ ],
3463
+ [
3464
+ 0,
3465
+ 5,
3466
+ 1,
3467
+ 11,
3468
+ 0,
3469
+ 0,
3470
+ 11,
3471
+ 4092,
3472
+ 358,
3473
+ 113,
3474
+ 0,
3475
+ 12,
3476
+ 674,
3477
+ 0,
3478
+ 77,
3479
+ 1,
3480
+ 7,
3481
+ 0,
3482
+ 17,
3483
+ 0
3484
+ ],
3485
+ [
3486
+ 0,
3487
+ 23,
3488
+ 0,
3489
+ 0,
3490
+ 0,
3491
+ 0,
3492
+ 0,
3493
+ 0,
3494
+ 6566,
3495
+ 0,
3496
+ 0,
3497
+ 8,
3498
+ 0,
3499
+ 0,
3500
+ 0,
3501
+ 0,
3502
+ 1,
3503
+ 0,
3504
+ 0,
3505
+ 0
3506
+ ],
3507
+ [
3508
+ 0,
3509
+ 3,
3510
+ 21,
3511
+ 3,
3512
+ 0,
3513
+ 1,
3514
+ 0,
3515
+ 17,
3516
+ 0,
3517
+ 2064,
3518
+ 0,
3519
+ 0,
3520
+ 32,
3521
+ 22,
3522
+ 3,
3523
+ 0,
3524
+ 0,
3525
+ 0,
3526
+ 0,
3527
+ 0
3528
+ ],
3529
+ [
3530
+ 0,
3531
+ 26,
3532
+ 888,
3533
+ 0,
3534
+ 5,
3535
+ 0,
3536
+ 0,
3537
+ 0,
3538
+ 0,
3539
+ 5,
3540
+ 238,
3541
+ 0,
3542
+ 0,
3543
+ 0,
3544
+ 5,
3545
+ 0,
3546
+ 32,
3547
+ 3,
3548
+ 0,
3549
+ 0
3550
+ ],
3551
+ [
3552
+ 0,
3553
+ 7,
3554
+ 1,
3555
+ 0,
3556
+ 73,
3557
+ 0,
3558
+ 18,
3559
+ 4,
3560
+ 11,
3561
+ 0,
3562
+ 0,
3563
+ 6541,
3564
+ 0,
3565
+ 0,
3566
+ 15,
3567
+ 0,
3568
+ 66,
3569
+ 0,
3570
+ 6,
3571
+ 0
3572
+ ],
3573
+ [
3574
+ 0,
3575
+ 116,
3576
+ 18,
3577
+ 153,
3578
+ 1,
3579
+ 5,
3580
+ 3,
3581
+ 433,
3582
+ 489,
3583
+ 2890,
3584
+ 0,
3585
+ 120,
3586
+ 1392,
3587
+ 200,
3588
+ 154,
3589
+ 14,
3590
+ 10,
3591
+ 9,
3592
+ 39,
3593
+ 0
3594
+ ],
3595
+ [
3596
+ 0,
3597
+ 1,
3598
+ 46,
3599
+ 51,
3600
+ 0,
3601
+ 0,
3602
+ 0,
3603
+ 197,
3604
+ 8,
3605
+ 37,
3606
+ 1,
3607
+ 94,
3608
+ 216,
3609
+ 119,
3610
+ 14,
3611
+ 4,
3612
+ 8,
3613
+ 0,
3614
+ 0,
3615
+ 0
3616
+ ],
3617
+ [
3618
+ 0,
3619
+ 1021,
3620
+ 18,
3621
+ 37,
3622
+ 0,
3623
+ 3,
3624
+ 7,
3625
+ 52,
3626
+ 440,
3627
+ 0,
3628
+ 0,
3629
+ 63,
3630
+ 1,
3631
+ 0,
3632
+ 1670,
3633
+ 0,
3634
+ 173,
3635
+ 19,
3636
+ 0,
3637
+ 0
3638
+ ],
3639
+ [
3640
+ 0,
3641
+ 27,
3642
+ 6,
3643
+ 29,
3644
+ 7,
3645
+ 6,
3646
+ 0,
3647
+ 1,
3648
+ 0,
3649
+ 36,
3650
+ 0,
3651
+ 0,
3652
+ 0,
3653
+ 0,
3654
+ 0,
3655
+ 1797,
3656
+ 0,
3657
+ 0,
3658
+ 0,
3659
+ 0
3660
+ ],
3661
+ [
3662
+ 0,
3663
+ 53,
3664
+ 0,
3665
+ 6,
3666
+ 0,
3667
+ 0,
3668
+ 0,
3669
+ 40,
3670
+ 920,
3671
+ 0,
3672
+ 0,
3673
+ 8,
3674
+ 0,
3675
+ 0,
3676
+ 32,
3677
+ 0,
3678
+ 1770,
3679
+ 0,
3680
+ 0,
3681
+ 0
3682
+ ],
3683
+ [
3684
+ 0,
3685
+ 241,
3686
+ 439,
3687
+ 46,
3688
+ 9,
3689
+ 311,
3690
+ 0,
3691
+ 0,
3692
+ 0,
3693
+ 43,
3694
+ 139,
3695
+ 0,
3696
+ 0,
3697
+ 0,
3698
+ 0,
3699
+ 3,
3700
+ 27,
3701
+ 37,
3702
+ 0,
3703
+ 0
3704
+ ],
3705
+ [
3706
+ 0,
3707
+ 14,
3708
+ 0,
3709
+ 411,
3710
+ 0,
3711
+ 0,
3712
+ 1,
3713
+ 184,
3714
+ 0,
3715
+ 0,
3716
+ 0,
3717
+ 8,
3718
+ 87,
3719
+ 0,
3720
+ 108,
3721
+ 49,
3722
+ 52,
3723
+ 0,
3724
+ 612,
3725
+ 0
3726
+ ],
3727
+ [
3728
+ 0,
3729
+ 0,
3730
+ 0,
3731
+ 0,
3732
+ 0,
3733
+ 0,
3734
+ 0,
3735
+ 0,
3736
+ 0,
3737
+ 0,
3738
+ 0,
3739
+ 0,
3740
+ 0,
3741
+ 0,
3742
+ 0,
3743
+ 0,
3744
+ 0,
3745
+ 0,
3746
+ 0,
3747
+ 0
3748
+ ]
3749
+ ]
3750
+ },
3751
+ "add:0.25": {
3752
+ "miou": 0.5169585217581719,
3753
+ "oa": 0.7914760981566179,
3754
+ "macro_f1": 0.6315085950725178,
3755
+ "kappa": 0.768111401030854,
3756
+ "per_class_iou": [
3757
+ 0.7839820118850046,
3758
+ 0.7946877724864176,
3759
+ 0.8395700369499496,
3760
+ 0.5187358916478555,
3761
+ 0.8886581469648562,
3762
+ 0.512779552715655,
3763
+ 0.6400555898702903,
3764
+ 0.6927787162162162,
3765
+ 0.3855623950755456,
3766
+ 0.12156593406593406,
3767
+ 0.8256475047378395,
3768
+ 0.187683284457478,
3769
+ 0.1120162932790224,
3770
+ 0.3425101214574899,
3771
+ 0.8398309065288868,
3772
+ 0.49366391184573005,
3773
+ 0.0225787284610814,
3774
+ 0.3029465930018416
3775
+ ],
3776
+ "confusion_matrix": [
3777
+ [
3778
+ 0,
3779
+ 0,
3780
+ 0,
3781
+ 0,
3782
+ 0,
3783
+ 0,
3784
+ 0,
3785
+ 0,
3786
+ 0,
3787
+ 0,
3788
+ 0,
3789
+ 0,
3790
+ 0,
3791
+ 0,
3792
+ 0,
3793
+ 0,
3794
+ 0,
3795
+ 0,
3796
+ 0,
3797
+ 0
3798
+ ],
3799
+ [
3800
+ 0,
3801
+ 14644,
3802
+ 121,
3803
+ 51,
3804
+ 8,
3805
+ 27,
3806
+ 39,
3807
+ 1,
3808
+ 504,
3809
+ 0,
3810
+ 5,
3811
+ 228,
3812
+ 73,
3813
+ 3,
3814
+ 744,
3815
+ 14,
3816
+ 307,
3817
+ 4,
3818
+ 7,
3819
+ 0
3820
+ ],
3821
+ [
3822
+ 0,
3823
+ 97,
3824
+ 11848,
3825
+ 92,
3826
+ 8,
3827
+ 20,
3828
+ 35,
3829
+ 3,
3830
+ 0,
3831
+ 18,
3832
+ 12,
3833
+ 186,
3834
+ 35,
3835
+ 1,
3836
+ 97,
3837
+ 0,
3838
+ 16,
3839
+ 2,
3840
+ 7,
3841
+ 0
3842
+ ],
3843
+ [
3844
+ 0,
3845
+ 140,
3846
+ 138,
3847
+ 12497,
3848
+ 13,
3849
+ 11,
3850
+ 2,
3851
+ 168,
3852
+ 0,
3853
+ 33,
3854
+ 0,
3855
+ 0,
3856
+ 6,
3857
+ 1,
3858
+ 138,
3859
+ 118,
3860
+ 30,
3861
+ 4,
3862
+ 569,
3863
+ 0
3864
+ ],
3865
+ [
3866
+ 0,
3867
+ 29,
3868
+ 620,
3869
+ 33,
3870
+ 1149,
3871
+ 55,
3872
+ 0,
3873
+ 0,
3874
+ 0,
3875
+ 0,
3876
+ 95,
3877
+ 0,
3878
+ 11,
3879
+ 7,
3880
+ 0,
3881
+ 0,
3882
+ 4,
3883
+ 43,
3884
+ 1,
3885
+ 0
3886
+ ],
3887
+ [
3888
+ 0,
3889
+ 71,
3890
+ 4,
3891
+ 26,
3892
+ 0,
3893
+ 5563,
3894
+ 0,
3895
+ 0,
3896
+ 0,
3897
+ 0,
3898
+ 0,
3899
+ 0,
3900
+ 0,
3901
+ 0,
3902
+ 19,
3903
+ 11,
3904
+ 0,
3905
+ 95,
3906
+ 0,
3907
+ 0
3908
+ ],
3909
+ [
3910
+ 0,
3911
+ 72,
3912
+ 116,
3913
+ 5,
3914
+ 10,
3915
+ 0,
3916
+ 1284,
3917
+ 44,
3918
+ 187,
3919
+ 0,
3920
+ 2,
3921
+ 399,
3922
+ 0,
3923
+ 0,
3924
+ 72,
3925
+ 0,
3926
+ 5,
3927
+ 212,
3928
+ 0,
3929
+ 0
3930
+ ],
3931
+ [
3932
+ 0,
3933
+ 6,
3934
+ 0,
3935
+ 15,
3936
+ 0,
3937
+ 0,
3938
+ 6,
3939
+ 4145,
3940
+ 364,
3941
+ 107,
3942
+ 0,
3943
+ 18,
3944
+ 622,
3945
+ 0,
3946
+ 70,
3947
+ 6,
3948
+ 14,
3949
+ 0,
3950
+ 6,
3951
+ 0
3952
+ ],
3953
+ [
3954
+ 0,
3955
+ 25,
3956
+ 0,
3957
+ 0,
3958
+ 0,
3959
+ 0,
3960
+ 0,
3961
+ 1,
3962
+ 6562,
3963
+ 0,
3964
+ 0,
3965
+ 8,
3966
+ 0,
3967
+ 0,
3968
+ 0,
3969
+ 0,
3970
+ 2,
3971
+ 0,
3972
+ 0,
3973
+ 0
3974
+ ],
3975
+ [
3976
+ 0,
3977
+ 1,
3978
+ 20,
3979
+ 3,
3980
+ 0,
3981
+ 1,
3982
+ 0,
3983
+ 20,
3984
+ 0,
3985
+ 2067,
3986
+ 0,
3987
+ 0,
3988
+ 35,
3989
+ 15,
3990
+ 2,
3991
+ 2,
3992
+ 0,
3993
+ 0,
3994
+ 0,
3995
+ 0
3996
+ ],
3997
+ [
3998
+ 0,
3999
+ 33,
4000
+ 930,
4001
+ 0,
4002
+ 17,
4003
+ 1,
4004
+ 0,
4005
+ 0,
4006
+ 0,
4007
+ 4,
4008
+ 177,
4009
+ 0,
4010
+ 0,
4011
+ 0,
4012
+ 4,
4013
+ 0,
4014
+ 31,
4015
+ 5,
4016
+ 0,
4017
+ 0
4018
+ ],
4019
+ [
4020
+ 0,
4021
+ 8,
4022
+ 0,
4023
+ 0,
4024
+ 90,
4025
+ 0,
4026
+ 9,
4027
+ 3,
4028
+ 7,
4029
+ 0,
4030
+ 0,
4031
+ 6535,
4032
+ 0,
4033
+ 0,
4034
+ 15,
4035
+ 0,
4036
+ 70,
4037
+ 0,
4038
+ 5,
4039
+ 0
4040
+ ],
4041
+ [
4042
+ 0,
4043
+ 112,
4044
+ 17,
4045
+ 210,
4046
+ 0,
4047
+ 4,
4048
+ 4,
4049
+ 411,
4050
+ 490,
4051
+ 2917,
4052
+ 3,
4053
+ 159,
4054
+ 1344,
4055
+ 159,
4056
+ 129,
4057
+ 18,
4058
+ 12,
4059
+ 6,
4060
+ 51,
4061
+ 0
4062
+ ],
4063
+ [
4064
+ 0,
4065
+ 1,
4066
+ 47,
4067
+ 63,
4068
+ 0,
4069
+ 0,
4070
+ 0,
4071
+ 216,
4072
+ 9,
4073
+ 27,
4074
+ 0,
4075
+ 76,
4076
+ 226,
4077
+ 110,
4078
+ 8,
4079
+ 4,
4080
+ 8,
4081
+ 1,
4082
+ 0,
4083
+ 0
4084
+ ],
4085
+ [
4086
+ 0,
4087
+ 1002,
4088
+ 17,
4089
+ 41,
4090
+ 0,
4091
+ 2,
4092
+ 1,
4093
+ 45,
4094
+ 424,
4095
+ 0,
4096
+ 1,
4097
+ 70,
4098
+ 0,
4099
+ 0,
4100
+ 1692,
4101
+ 0,
4102
+ 193,
4103
+ 16,
4104
+ 0,
4105
+ 0
4106
+ ],
4107
+ [
4108
+ 0,
4109
+ 27,
4110
+ 6,
4111
+ 36,
4112
+ 4,
4113
+ 6,
4114
+ 0,
4115
+ 0,
4116
+ 0,
4117
+ 42,
4118
+ 0,
4119
+ 0,
4120
+ 0,
4121
+ 0,
4122
+ 0,
4123
+ 1788,
4124
+ 0,
4125
+ 0,
4126
+ 0,
4127
+ 0
4128
+ ],
4129
+ [
4130
+ 0,
4131
+ 53,
4132
+ 0,
4133
+ 6,
4134
+ 0,
4135
+ 0,
4136
+ 0,
4137
+ 28,
4138
+ 888,
4139
+ 0,
4140
+ 0,
4141
+ 14,
4142
+ 0,
4143
+ 0,
4144
+ 48,
4145
+ 0,
4146
+ 1792,
4147
+ 0,
4148
+ 0,
4149
+ 0
4150
+ ],
4151
+ [
4152
+ 0,
4153
+ 212,
4154
+ 396,
4155
+ 83,
4156
+ 18,
4157
+ 344,
4158
+ 0,
4159
+ 0,
4160
+ 0,
4161
+ 47,
4162
+ 136,
4163
+ 0,
4164
+ 0,
4165
+ 0,
4166
+ 0,
4167
+ 1,
4168
+ 20,
4169
+ 38,
4170
+ 0,
4171
+ 0
4172
+ ],
4173
+ [
4174
+ 0,
4175
+ 10,
4176
+ 0,
4177
+ 353,
4178
+ 0,
4179
+ 0,
4180
+ 0,
4181
+ 157,
4182
+ 1,
4183
+ 0,
4184
+ 0,
4185
+ 15,
4186
+ 107,
4187
+ 0,
4188
+ 90,
4189
+ 46,
4190
+ 89,
4191
+ 0,
4192
+ 658,
4193
+ 0
4194
+ ],
4195
+ [
4196
+ 0,
4197
+ 0,
4198
+ 0,
4199
+ 0,
4200
+ 0,
4201
+ 0,
4202
+ 0,
4203
+ 0,
4204
+ 0,
4205
+ 0,
4206
+ 0,
4207
+ 0,
4208
+ 0,
4209
+ 0,
4210
+ 0,
4211
+ 0,
4212
+ 0,
4213
+ 0,
4214
+ 0,
4215
+ 0
4216
+ ]
4217
+ ]
4218
+ },
4219
+ "add:0.5": {
4220
+ "miou": 0.49560936060529176,
4221
+ "oa": 0.7815897430404559,
4222
+ "macro_f1": 0.6142095713562745,
4223
+ "kappa": 0.7570831504320071,
4224
+ "per_class_iou": [
4225
+ 0.7809832522960561,
4226
+ 0.7747635312664214,
4227
+ 0.838018830393847,
4228
+ 0.4392241379310345,
4229
+ 0.8724077885072028,
4230
+ 0.413290113452188,
4231
+ 0.6302926525529265,
4232
+ 0.7018746652383503,
4233
+ 0.3770852428964253,
4234
+ 0.01990049751243781,
4235
+ 0.7929901423877328,
4236
+ 0.1576155242216948,
4237
+ 0.16926770708283315,
4238
+ 0.3483215913800249,
4239
+ 0.7415110356536503,
4240
+ 0.44854032657100446,
4241
+ 0.07692307692307693,
4242
+ 0.3379583746283449
4243
+ ],
4244
+ "confusion_matrix": [
4245
+ [
4246
+ 0,
4247
+ 0,
4248
+ 0,
4249
+ 0,
4250
+ 0,
4251
+ 0,
4252
+ 0,
4253
+ 0,
4254
+ 0,
4255
+ 0,
4256
+ 0,
4257
+ 0,
4258
+ 0,
4259
+ 0,
4260
+ 0,
4261
+ 0,
4262
+ 0,
4263
+ 0,
4264
+ 0,
4265
+ 0
4266
+ ],
4267
+ [
4268
+ 0,
4269
+ 14456,
4270
+ 122,
4271
+ 84,
4272
+ 5,
4273
+ 27,
4274
+ 18,
4275
+ 1,
4276
+ 566,
4277
+ 0,
4278
+ 4,
4279
+ 272,
4280
+ 61,
4281
+ 3,
4282
+ 759,
4283
+ 6,
4284
+ 373,
4285
+ 7,
4286
+ 16,
4287
+ 0
4288
+ ],
4289
+ [
4290
+ 0,
4291
+ 115,
4292
+ 11795,
4293
+ 102,
4294
+ 18,
4295
+ 28,
4296
+ 17,
4297
+ 1,
4298
+ 1,
4299
+ 20,
4300
+ 21,
4301
+ 196,
4302
+ 35,
4303
+ 1,
4304
+ 73,
4305
+ 0,
4306
+ 38,
4307
+ 13,
4308
+ 3,
4309
+ 0
4310
+ ],
4311
+ [
4312
+ 0,
4313
+ 122,
4314
+ 156,
4315
+ 12639,
4316
+ 5,
4317
+ 11,
4318
+ 1,
4319
+ 231,
4320
+ 0,
4321
+ 38,
4322
+ 5,
4323
+ 0,
4324
+ 23,
4325
+ 2,
4326
+ 139,
4327
+ 109,
4328
+ 28,
4329
+ 9,
4330
+ 350,
4331
+ 0
4332
+ ],
4333
+ [
4334
+ 0,
4335
+ 32,
4336
+ 840,
4337
+ 22,
4338
+ 1019,
4339
+ 58,
4340
+ 0,
4341
+ 0,
4342
+ 0,
4343
+ 0,
4344
+ 11,
4345
+ 0,
4346
+ 18,
4347
+ 0,
4348
+ 0,
4349
+ 2,
4350
+ 0,
4351
+ 45,
4352
+ 0,
4353
+ 0
4354
+ ],
4355
+ [
4356
+ 0,
4357
+ 54,
4358
+ 5,
4359
+ 31,
4360
+ 41,
4361
+ 5511,
4362
+ 0,
4363
+ 0,
4364
+ 0,
4365
+ 0,
4366
+ 0,
4367
+ 0,
4368
+ 0,
4369
+ 0,
4370
+ 19,
4371
+ 24,
4372
+ 0,
4373
+ 104,
4374
+ 0,
4375
+ 0
4376
+ ],
4377
+ [
4378
+ 0,
4379
+ 83,
4380
+ 220,
4381
+ 17,
4382
+ 6,
4383
+ 0,
4384
+ 1020,
4385
+ 33,
4386
+ 113,
4387
+ 0,
4388
+ 6,
4389
+ 600,
4390
+ 0,
4391
+ 0,
4392
+ 53,
4393
+ 0,
4394
+ 6,
4395
+ 251,
4396
+ 0,
4397
+ 0
4398
+ ],
4399
+ [
4400
+ 0,
4401
+ 6,
4402
+ 0,
4403
+ 32,
4404
+ 0,
4405
+ 0,
4406
+ 5,
4407
+ 4049,
4408
+ 375,
4409
+ 27,
4410
+ 0,
4411
+ 30,
4412
+ 594,
4413
+ 0,
4414
+ 35,
4415
+ 96,
4416
+ 125,
4417
+ 0,
4418
+ 5,
4419
+ 0
4420
+ ],
4421
+ [
4422
+ 0,
4423
+ 29,
4424
+ 0,
4425
+ 0,
4426
+ 0,
4427
+ 0,
4428
+ 0,
4429
+ 2,
4430
+ 6552,
4431
+ 0,
4432
+ 0,
4433
+ 9,
4434
+ 0,
4435
+ 0,
4436
+ 5,
4437
+ 0,
4438
+ 1,
4439
+ 0,
4440
+ 0,
4441
+ 0
4442
+ ],
4443
+ [
4444
+ 0,
4445
+ 0,
4446
+ 14,
4447
+ 2,
4448
+ 0,
4449
+ 0,
4450
+ 0,
4451
+ 20,
4452
+ 5,
4453
+ 2057,
4454
+ 3,
4455
+ 0,
4456
+ 41,
4457
+ 4,
4458
+ 3,
4459
+ 16,
4460
+ 0,
4461
+ 1,
4462
+ 0,
4463
+ 0
4464
+ ],
4465
+ [
4466
+ 0,
4467
+ 47,
4468
+ 1045,
4469
+ 2,
4470
+ 20,
4471
+ 7,
4472
+ 0,
4473
+ 0,
4474
+ 0,
4475
+ 4,
4476
+ 28,
4477
+ 0,
4478
+ 0,
4479
+ 0,
4480
+ 1,
4481
+ 1,
4482
+ 24,
4483
+ 23,
4484
+ 0,
4485
+ 0
4486
+ ],
4487
+ [
4488
+ 0,
4489
+ 3,
4490
+ 0,
4491
+ 0,
4492
+ 106,
4493
+ 0,
4494
+ 0,
4495
+ 4,
4496
+ 8,
4497
+ 0,
4498
+ 0,
4499
+ 6516,
4500
+ 2,
4501
+ 0,
4502
+ 27,
4503
+ 0,
4504
+ 72,
4505
+ 0,
4506
+ 4,
4507
+ 0
4508
+ ],
4509
+ [
4510
+ 0,
4511
+ 102,
4512
+ 17,
4513
+ 287,
4514
+ 0,
4515
+ 1,
4516
+ 19,
4517
+ 386,
4518
+ 374,
4519
+ 3084,
4520
+ 12,
4521
+ 173,
4522
+ 1129,
4523
+ 27,
4524
+ 74,
4525
+ 152,
4526
+ 110,
4527
+ 1,
4528
+ 98,
4529
+ 0
4530
+ ],
4531
+ [
4532
+ 0,
4533
+ 0,
4534
+ 42,
4535
+ 83,
4536
+ 0,
4537
+ 0,
4538
+ 0,
4539
+ 198,
4540
+ 15,
4541
+ 23,
4542
+ 4,
4543
+ 30,
4544
+ 220,
4545
+ 141,
4546
+ 14,
4547
+ 8,
4548
+ 17,
4549
+ 1,
4550
+ 0,
4551
+ 0
4552
+ ],
4553
+ [
4554
+ 0,
4555
+ 931,
4556
+ 12,
4557
+ 42,
4558
+ 0,
4559
+ 0,
4560
+ 0,
4561
+ 38,
4562
+ 446,
4563
+ 0,
4564
+ 7,
4565
+ 97,
4566
+ 0,
4567
+ 0,
4568
+ 1681,
4569
+ 0,
4570
+ 250,
4571
+ 0,
4572
+ 0,
4573
+ 0
4574
+ ],
4575
+ [
4576
+ 0,
4577
+ 29,
4578
+ 4,
4579
+ 58,
4580
+ 0,
4581
+ 7,
4582
+ 0,
4583
+ 0,
4584
+ 0,
4585
+ 44,
4586
+ 0,
4587
+ 0,
4588
+ 0,
4589
+ 0,
4590
+ 1,
4591
+ 1747,
4592
+ 0,
4593
+ 5,
4594
+ 14,
4595
+ 0
4596
+ ],
4597
+ [
4598
+ 0,
4599
+ 41,
4600
+ 0,
4601
+ 13,
4602
+ 0,
4603
+ 0,
4604
+ 0,
4605
+ 12,
4606
+ 824,
4607
+ 0,
4608
+ 2,
4609
+ 40,
4610
+ 0,
4611
+ 0,
4612
+ 82,
4613
+ 0,
4614
+ 1813,
4615
+ 0,
4616
+ 2,
4617
+ 0
4618
+ ],
4619
+ [
4620
+ 0,
4621
+ 123,
4622
+ 270,
4623
+ 120,
4624
+ 72,
4625
+ 389,
4626
+ 0,
4627
+ 0,
4628
+ 0,
4629
+ 49,
4630
+ 130,
4631
+ 0,
4632
+ 0,
4633
+ 0,
4634
+ 0,
4635
+ 0,
4636
+ 7,
4637
+ 135,
4638
+ 0,
4639
+ 0
4640
+ ],
4641
+ [
4642
+ 0,
4643
+ 13,
4644
+ 0,
4645
+ 319,
4646
+ 0,
4647
+ 0,
4648
+ 0,
4649
+ 119,
4650
+ 10,
4651
+ 0,
4652
+ 0,
4653
+ 28,
4654
+ 123,
4655
+ 0,
4656
+ 37,
4657
+ 33,
4658
+ 162,
4659
+ 0,
4660
+ 682,
4661
+ 0
4662
+ ],
4663
+ [
4664
+ 0,
4665
+ 0,
4666
+ 0,
4667
+ 0,
4668
+ 0,
4669
+ 0,
4670
+ 0,
4671
+ 0,
4672
+ 0,
4673
+ 0,
4674
+ 0,
4675
+ 0,
4676
+ 0,
4677
+ 0,
4678
+ 0,
4679
+ 0,
4680
+ 0,
4681
+ 0,
4682
+ 0,
4683
+ 0
4684
+ ]
4685
+ ]
4686
+ }
4687
+ },
4688
+ "seconds": 11.983984745107591,
4689
+ "test_used_for_selection": false,
4690
+ "model_count": 1
4691
+ }
main_method/configurations/32X32_highest_observed_test_seed3407/test_results.json ADDED
@@ -0,0 +1,1883 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "kind": "attention",
3
+ "seed": 3407,
4
+ "mode": "add",
5
+ "alpha": 0.1,
6
+ "metrics": {
7
+ "miou": 0.4952977260959119,
8
+ "oa": 0.809438708403747,
9
+ "macro_f1": 0.6244851115289156,
10
+ "kappa": 0.7633505948395706,
11
+ "per_class_iou": [
12
+ 0.8084389779816274,
13
+ 0.7150961184355896,
14
+ 0.8763378415995546,
15
+ 0.4874198708984528,
16
+ 0.8740049868785484,
17
+ 0.37208006385830683,
18
+ 0.4537028497648252,
19
+ 0.6245882473592452,
20
+ 0.8043280486177659,
21
+ 0.08840140567289417,
22
+ 0.5444820072275975,
23
+ 0.3127379815711673,
24
+ 0.400269398461593,
25
+ 0.275189878983062,
26
+ 0.6285072951739619,
27
+ 0.28143899488860274,
28
+ 0.1002876053896462,
29
+ 0.26804749696397245
30
+ ],
31
+ "confusion_matrix": [
32
+ [
33
+ 0,
34
+ 0,
35
+ 0,
36
+ 0,
37
+ 0,
38
+ 0,
39
+ 0,
40
+ 0,
41
+ 0,
42
+ 0,
43
+ 0,
44
+ 0,
45
+ 0,
46
+ 0,
47
+ 0,
48
+ 0,
49
+ 0,
50
+ 0,
51
+ 0,
52
+ 0
53
+ ],
54
+ [
55
+ 0,
56
+ 1300978,
57
+ 7108,
58
+ 8230,
59
+ 1043,
60
+ 780,
61
+ 944,
62
+ 2440,
63
+ 19265,
64
+ 725,
65
+ 551,
66
+ 3746,
67
+ 9121,
68
+ 500,
69
+ 30359,
70
+ 1046,
71
+ 77382,
72
+ 846,
73
+ 939,
74
+ 0
75
+ ],
76
+ [
77
+ 0,
78
+ 10132,
79
+ 485443,
80
+ 4883,
81
+ 3909,
82
+ 1030,
83
+ 1783,
84
+ 190,
85
+ 754,
86
+ 550,
87
+ 29667,
88
+ 17322,
89
+ 558,
90
+ 315,
91
+ 1146,
92
+ 236,
93
+ 854,
94
+ 1856,
95
+ 52,
96
+ 0
97
+ ],
98
+ [
99
+ 0,
100
+ 15669,
101
+ 3059,
102
+ 639072,
103
+ 408,
104
+ 1060,
105
+ 215,
106
+ 4858,
107
+ 875,
108
+ 3567,
109
+ 183,
110
+ 23,
111
+ 2780,
112
+ 352,
113
+ 3898,
114
+ 4578,
115
+ 822,
116
+ 136,
117
+ 6734,
118
+ 0
119
+ ],
120
+ [
121
+ 0,
122
+ 7422,
123
+ 42127,
124
+ 1657,
125
+ 87138,
126
+ 1460,
127
+ 4693,
128
+ 59,
129
+ 217,
130
+ 70,
131
+ 10104,
132
+ 4144,
133
+ 319,
134
+ 384,
135
+ 663,
136
+ 63,
137
+ 334,
138
+ 2531,
139
+ 7,
140
+ 0
141
+ ],
142
+ [
143
+ 0,
144
+ 2110,
145
+ 1205,
146
+ 853,
147
+ 338,
148
+ 120229,
149
+ 305,
150
+ 121,
151
+ 22,
152
+ 231,
153
+ 741,
154
+ 257,
155
+ 29,
156
+ 33,
157
+ 1797,
158
+ 27,
159
+ 139,
160
+ 682,
161
+ 0,
162
+ 0
163
+ ],
164
+ [
165
+ 0,
166
+ 3690,
167
+ 7059,
168
+ 651,
169
+ 3536,
170
+ 317,
171
+ 24705,
172
+ 170,
173
+ 843,
174
+ 99,
175
+ 2928,
176
+ 5956,
177
+ 173,
178
+ 399,
179
+ 2204,
180
+ 327,
181
+ 151,
182
+ 554,
183
+ 0,
184
+ 0
185
+ ],
186
+ [
187
+ 0,
188
+ 1302,
189
+ 139,
190
+ 2981,
191
+ 24,
192
+ 240,
193
+ 34,
194
+ 49195,
195
+ 7301,
196
+ 2498,
197
+ 91,
198
+ 370,
199
+ 1548,
200
+ 1487,
201
+ 3005,
202
+ 9797,
203
+ 651,
204
+ 184,
205
+ 1086,
206
+ 0
207
+ ],
208
+ [
209
+ 0,
210
+ 17381,
211
+ 135,
212
+ 4096,
213
+ 0,
214
+ 0,
215
+ 22,
216
+ 1196,
217
+ 152259,
218
+ 2,
219
+ 1,
220
+ 322,
221
+ 1285,
222
+ 52,
223
+ 479,
224
+ 409,
225
+ 9586,
226
+ 2,
227
+ 250,
228
+ 0
229
+ ],
230
+ [
231
+ 0,
232
+ 253,
233
+ 197,
234
+ 1039,
235
+ 34,
236
+ 103,
237
+ 306,
238
+ 729,
239
+ 44,
240
+ 66308,
241
+ 0,
242
+ 36,
243
+ 877,
244
+ 40,
245
+ 614,
246
+ 363,
247
+ 64,
248
+ 0,
249
+ 40,
250
+ 0
251
+ ],
252
+ [
253
+ 0,
254
+ 2578,
255
+ 42312,
256
+ 430,
257
+ 1677,
258
+ 110,
259
+ 163,
260
+ 5,
261
+ 8,
262
+ 4,
263
+ 9861,
264
+ 107,
265
+ 11,
266
+ 0,
267
+ 312,
268
+ 8,
269
+ 125,
270
+ 651,
271
+ 0,
272
+ 0
273
+ ],
274
+ [
275
+ 0,
276
+ 1154,
277
+ 2400,
278
+ 13,
279
+ 3,
280
+ 0,
281
+ 1616,
282
+ 209,
283
+ 1202,
284
+ 0,
285
+ 173,
286
+ 60719,
287
+ 79,
288
+ 0,
289
+ 1496,
290
+ 0,
291
+ 730,
292
+ 2,
293
+ 164,
294
+ 0
295
+ ],
296
+ [
297
+ 0,
298
+ 2954,
299
+ 121,
300
+ 4164,
301
+ 2,
302
+ 13,
303
+ 547,
304
+ 9854,
305
+ 3853,
306
+ 1906,
307
+ 63,
308
+ 4578,
309
+ 27186,
310
+ 871,
311
+ 1364,
312
+ 390,
313
+ 2162,
314
+ 89,
315
+ 598,
316
+ 0
317
+ ],
318
+ [
319
+ 0,
320
+ 468,
321
+ 124,
322
+ 1305,
323
+ 3,
324
+ 25,
325
+ 92,
326
+ 3563,
327
+ 508,
328
+ 816,
329
+ 17,
330
+ 290,
331
+ 2859,
332
+ 11292,
333
+ 367,
334
+ 364,
335
+ 479,
336
+ 2,
337
+ 39,
338
+ 0
339
+ ],
340
+ [
341
+ 0,
342
+ 52773,
343
+ 1184,
344
+ 878,
345
+ 607,
346
+ 373,
347
+ 1429,
348
+ 866,
349
+ 7094,
350
+ 569,
351
+ 800,
352
+ 1108,
353
+ 1051,
354
+ 321,
355
+ 50073,
356
+ 291,
357
+ 7693,
358
+ 424,
359
+ 260,
360
+ 0
361
+ ],
362
+ [
363
+ 0,
364
+ 1398,
365
+ 168,
366
+ 5730,
367
+ 133,
368
+ 139,
369
+ 10,
370
+ 767,
371
+ 26,
372
+ 180,
373
+ 15,
374
+ 2122,
375
+ 731,
376
+ 4,
377
+ 369,
378
+ 54320,
379
+ 82,
380
+ 22,
381
+ 2100,
382
+ 0
383
+ ],
384
+ [
385
+ 0,
386
+ 11247,
387
+ 351,
388
+ 705,
389
+ 4,
390
+ 0,
391
+ 42,
392
+ 391,
393
+ 10659,
394
+ 49,
395
+ 59,
396
+ 982,
397
+ 1147,
398
+ 56,
399
+ 487,
400
+ 20,
401
+ 50491,
402
+ 7,
403
+ 162,
404
+ 0
405
+ ],
406
+ [
407
+ 0,
408
+ 7947,
409
+ 10436,
410
+ 1212,
411
+ 3597,
412
+ 2787,
413
+ 390,
414
+ 44,
415
+ 14,
416
+ 7,
417
+ 7792,
418
+ 2,
419
+ 719,
420
+ 752,
421
+ 1832,
422
+ 62,
423
+ 74,
424
+ 5091,
425
+ 11,
426
+ 0
427
+ ],
428
+ [
429
+ 0,
430
+ 4766,
431
+ 45,
432
+ 2137,
433
+ 64,
434
+ 5,
435
+ 44,
436
+ 1035,
437
+ 3613,
438
+ 119,
439
+ 1,
440
+ 192,
441
+ 2927,
442
+ 32,
443
+ 3772,
444
+ 130,
445
+ 1216,
446
+ 7,
447
+ 11919,
448
+ 0
449
+ ],
450
+ [
451
+ 0,
452
+ 0,
453
+ 0,
454
+ 0,
455
+ 0,
456
+ 0,
457
+ 0,
458
+ 0,
459
+ 0,
460
+ 0,
461
+ 0,
462
+ 0,
463
+ 0,
464
+ 0,
465
+ 0,
466
+ 0,
467
+ 0,
468
+ 0,
469
+ 0,
470
+ 0
471
+ ]
472
+ ]
473
+ },
474
+ "reference": {
475
+ "miou": 0.4923823641221446,
476
+ "oa": 0.8069722305391867,
477
+ "macro_f1": 0.6220716182656123,
478
+ "kappa": 0.7604756314593856,
479
+ "per_class_iou": [
480
+ 0.8075790627351255,
481
+ 0.71292826214508,
482
+ 0.8722037487999142,
483
+ 0.49159387306580987,
484
+ 0.8753945402194118,
485
+ 0.3695274547328132,
486
+ 0.44380969707996,
487
+ 0.618820955172456,
488
+ 0.7991021866100304,
489
+ 0.09855478879306705,
490
+ 0.5415849299975815,
491
+ 0.3029233700492677,
492
+ 0.38863181158919813,
493
+ 0.2724438255931417,
494
+ 0.623407163708818,
495
+ 0.2832768116184144,
496
+ 0.09794562774695224,
497
+ 0.26315444454156106
498
+ ],
499
+ "confusion_matrix": [
500
+ [
501
+ 0,
502
+ 0,
503
+ 0,
504
+ 0,
505
+ 0,
506
+ 0,
507
+ 0,
508
+ 0,
509
+ 0,
510
+ 0,
511
+ 0,
512
+ 0,
513
+ 0,
514
+ 0,
515
+ 0,
516
+ 0,
517
+ 0,
518
+ 0,
519
+ 0,
520
+ 0
521
+ ],
522
+ [
523
+ 0,
524
+ 1299809,
525
+ 7054,
526
+ 7868,
527
+ 1175,
528
+ 742,
529
+ 1048,
530
+ 2568,
531
+ 20005,
532
+ 768,
533
+ 615,
534
+ 3295,
535
+ 9943,
536
+ 588,
537
+ 30648,
538
+ 989,
539
+ 77038,
540
+ 790,
541
+ 1060,
542
+ 0
543
+ ],
544
+ [
545
+ 0,
546
+ 9859,
547
+ 479954,
548
+ 4841,
549
+ 4319,
550
+ 1012,
551
+ 2059,
552
+ 205,
553
+ 754,
554
+ 550,
555
+ 33703,
556
+ 18399,
557
+ 572,
558
+ 489,
559
+ 1251,
560
+ 226,
561
+ 886,
562
+ 1549,
563
+ 52,
564
+ 0
565
+ ],
566
+ [
567
+ 0,
568
+ 16269,
569
+ 3221,
570
+ 635028,
571
+ 530,
572
+ 1075,
573
+ 235,
574
+ 5684,
575
+ 971,
576
+ 3614,
577
+ 217,
578
+ 25,
579
+ 3166,
580
+ 458,
581
+ 4014,
582
+ 4873,
583
+ 892,
584
+ 137,
585
+ 7880,
586
+ 0
587
+ ],
588
+ [
589
+ 0,
590
+ 7275,
591
+ 39630,
592
+ 1499,
593
+ 88130,
594
+ 1366,
595
+ 5100,
596
+ 62,
597
+ 247,
598
+ 69,
599
+ 11784,
600
+ 3859,
601
+ 335,
602
+ 391,
603
+ 687,
604
+ 59,
605
+ 385,
606
+ 2507,
607
+ 7,
608
+ 0
609
+ ],
610
+ [
611
+ 0,
612
+ 2038,
613
+ 1202,
614
+ 849,
615
+ 339,
616
+ 120091,
617
+ 328,
618
+ 119,
619
+ 27,
620
+ 241,
621
+ 828,
622
+ 257,
623
+ 32,
624
+ 36,
625
+ 1857,
626
+ 27,
627
+ 150,
628
+ 698,
629
+ 0,
630
+ 0
631
+ ],
632
+ [
633
+ 0,
634
+ 3661,
635
+ 6519,
636
+ 626,
637
+ 3375,
638
+ 331,
639
+ 25102,
640
+ 184,
641
+ 884,
642
+ 96,
643
+ 3047,
644
+ 5974,
645
+ 179,
646
+ 400,
647
+ 2361,
648
+ 321,
649
+ 142,
650
+ 560,
651
+ 0,
652
+ 0
653
+ ],
654
+ [
655
+ 0,
656
+ 1361,
657
+ 139,
658
+ 2822,
659
+ 18,
660
+ 239,
661
+ 48,
662
+ 48788,
663
+ 7325,
664
+ 2676,
665
+ 106,
666
+ 347,
667
+ 1797,
668
+ 1652,
669
+ 3326,
670
+ 9436,
671
+ 691,
672
+ 52,
673
+ 1110,
674
+ 0
675
+ ],
676
+ [
677
+ 0,
678
+ 17496,
679
+ 131,
680
+ 4134,
681
+ 0,
682
+ 0,
683
+ 28,
684
+ 1205,
685
+ 151587,
686
+ 5,
687
+ 2,
688
+ 256,
689
+ 1490,
690
+ 77,
691
+ 484,
692
+ 515,
693
+ 9821,
694
+ 3,
695
+ 243,
696
+ 0
697
+ ],
698
+ [
699
+ 0,
700
+ 232,
701
+ 197,
702
+ 1044,
703
+ 38,
704
+ 102,
705
+ 354,
706
+ 822,
707
+ 23,
708
+ 66220,
709
+ 0,
710
+ 30,
711
+ 875,
712
+ 53,
713
+ 590,
714
+ 363,
715
+ 59,
716
+ 0,
717
+ 45,
718
+ 0
719
+ ],
720
+ [
721
+ 0,
722
+ 2589,
723
+ 40372,
724
+ 432,
725
+ 1697,
726
+ 85,
727
+ 183,
728
+ 6,
729
+ 6,
730
+ 3,
731
+ 11668,
732
+ 128,
733
+ 13,
734
+ 0,
735
+ 328,
736
+ 9,
737
+ 143,
738
+ 700,
739
+ 0,
740
+ 0
741
+ ],
742
+ [
743
+ 0,
744
+ 1201,
745
+ 2390,
746
+ 12,
747
+ 4,
748
+ 0,
749
+ 1850,
750
+ 224,
751
+ 1190,
752
+ 0,
753
+ 187,
754
+ 60462,
755
+ 122,
756
+ 0,
757
+ 1454,
758
+ 0,
759
+ 684,
760
+ 0,
761
+ 180,
762
+ 0
763
+ ],
764
+ [
765
+ 0,
766
+ 2978,
767
+ 119,
768
+ 4039,
769
+ 5,
770
+ 14,
771
+ 597,
772
+ 9868,
773
+ 3941,
774
+ 1934,
775
+ 59,
776
+ 4827,
777
+ 26869,
778
+ 905,
779
+ 1457,
780
+ 341,
781
+ 2151,
782
+ 74,
783
+ 537,
784
+ 0
785
+ ],
786
+ [
787
+ 0,
788
+ 505,
789
+ 118,
790
+ 1280,
791
+ 2,
792
+ 27,
793
+ 105,
794
+ 3700,
795
+ 479,
796
+ 856,
797
+ 19,
798
+ 235,
799
+ 2717,
800
+ 11254,
801
+ 430,
802
+ 362,
803
+ 482,
804
+ 4,
805
+ 38,
806
+ 0
807
+ ],
808
+ [
809
+ 0,
810
+ 52630,
811
+ 1153,
812
+ 729,
813
+ 599,
814
+ 370,
815
+ 1654,
816
+ 912,
817
+ 7181,
818
+ 630,
819
+ 800,
820
+ 1006,
821
+ 1038,
822
+ 375,
823
+ 49894,
824
+ 305,
825
+ 7834,
826
+ 405,
827
+ 279,
828
+ 0
829
+ ],
830
+ [
831
+ 0,
832
+ 1535,
833
+ 175,
834
+ 5701,
835
+ 139,
836
+ 134,
837
+ 10,
838
+ 958,
839
+ 53,
840
+ 178,
841
+ 19,
842
+ 2044,
843
+ 902,
844
+ 13,
845
+ 434,
846
+ 53815,
847
+ 96,
848
+ 19,
849
+ 2091,
850
+ 0
851
+ ],
852
+ [
853
+ 0,
854
+ 10908,
855
+ 344,
856
+ 660,
857
+ 5,
858
+ 0,
859
+ 48,
860
+ 386,
861
+ 10783,
862
+ 50,
863
+ 67,
864
+ 797,
865
+ 1211,
866
+ 65,
867
+ 427,
868
+ 24,
869
+ 50870,
870
+ 10,
871
+ 204,
872
+ 0
873
+ ],
874
+ [
875
+ 0,
876
+ 8066,
877
+ 9726,
878
+ 1198,
879
+ 3564,
880
+ 2564,
881
+ 469,
882
+ 60,
883
+ 10,
884
+ 10,
885
+ 8574,
886
+ 2,
887
+ 722,
888
+ 769,
889
+ 1940,
890
+ 73,
891
+ 83,
892
+ 4925,
893
+ 14,
894
+ 0
895
+ ],
896
+ [
897
+ 0,
898
+ 4907,
899
+ 45,
900
+ 2050,
901
+ 73,
902
+ 5,
903
+ 52,
904
+ 1034,
905
+ 3605,
906
+ 141,
907
+ 2,
908
+ 198,
909
+ 2870,
910
+ 74,
911
+ 3653,
912
+ 85,
913
+ 1181,
914
+ 6,
915
+ 12043,
916
+ 0
917
+ ],
918
+ [
919
+ 0,
920
+ 0,
921
+ 0,
922
+ 0,
923
+ 0,
924
+ 0,
925
+ 0,
926
+ 0,
927
+ 0,
928
+ 0,
929
+ 0,
930
+ 0,
931
+ 0,
932
+ 0,
933
+ 0,
934
+ 0,
935
+ 0,
936
+ 0,
937
+ 0,
938
+ 0
939
+ ]
940
+ ]
941
+ },
942
+ "standalone": {
943
+ "miou": 0.42322742079483355,
944
+ "oa": 0.7650703817158506,
945
+ "macro_f1": 0.5514021279229557,
946
+ "kappa": 0.7100282789129488,
947
+ "per_class_iou": [
948
+ 0.7766295817357658,
949
+ 0.668194300892582,
950
+ 0.796005824300275,
951
+ 0.2823564887555746,
952
+ 0.7571911845511178,
953
+ 0.26546953392908423,
954
+ 0.4166956858193074,
955
+ 0.6035350147571773,
956
+ 0.755304001976866,
957
+ 0.023774912075029308,
958
+ 0.45084315311297724,
959
+ 0.27075090077145825,
960
+ 0.29968979344783236,
961
+ 0.2566058092518448,
962
+ 0.5429309094012718,
963
+ 0.21723143776375717,
964
+ 0.07717463180042079,
965
+ 0.15771040996466096
966
+ ],
967
+ "confusion_matrix": [
968
+ [
969
+ 0,
970
+ 0,
971
+ 0,
972
+ 0,
973
+ 0,
974
+ 0,
975
+ 0,
976
+ 0,
977
+ 0,
978
+ 0,
979
+ 0,
980
+ 0,
981
+ 0,
982
+ 0,
983
+ 0,
984
+ 0,
985
+ 0,
986
+ 0,
987
+ 0,
988
+ 0
989
+ ],
990
+ [
991
+ 0,
992
+ 1235992,
993
+ 12389,
994
+ 33426,
995
+ 2583,
996
+ 2160,
997
+ 275,
998
+ 1599,
999
+ 17333,
1000
+ 956,
1001
+ 1885,
1002
+ 12887,
1003
+ 4105,
1004
+ 417,
1005
+ 43908,
1006
+ 2119,
1007
+ 85000,
1008
+ 7051,
1009
+ 1918,
1010
+ 0
1011
+ ],
1012
+ [
1013
+ 0,
1014
+ 11703,
1015
+ 490039,
1016
+ 8270,
1017
+ 6171,
1018
+ 2880,
1019
+ 767,
1020
+ 150,
1021
+ 708,
1022
+ 492,
1023
+ 11935,
1024
+ 15297,
1025
+ 1938,
1026
+ 127,
1027
+ 941,
1028
+ 670,
1029
+ 1340,
1030
+ 6980,
1031
+ 272,
1032
+ 0
1033
+ ],
1034
+ [
1035
+ 0,
1036
+ 14395,
1037
+ 4677,
1038
+ 615014,
1039
+ 1024,
1040
+ 1127,
1041
+ 94,
1042
+ 816,
1043
+ 1848,
1044
+ 5514,
1045
+ 2253,
1046
+ 129,
1047
+ 3932,
1048
+ 457,
1049
+ 7485,
1050
+ 7276,
1051
+ 1504,
1052
+ 2676,
1053
+ 18068,
1054
+ 0
1055
+ ],
1056
+ [
1057
+ 0,
1058
+ 6977,
1059
+ 71945,
1060
+ 2187,
1061
+ 53373,
1062
+ 6666,
1063
+ 2013,
1064
+ 68,
1065
+ 130,
1066
+ 35,
1067
+ 2940,
1068
+ 6946,
1069
+ 479,
1070
+ 125,
1071
+ 1250,
1072
+ 195,
1073
+ 422,
1074
+ 7553,
1075
+ 88,
1076
+ 0
1077
+ ],
1078
+ [
1079
+ 0,
1080
+ 3277,
1081
+ 2058,
1082
+ 1045,
1083
+ 1659,
1084
+ 114376,
1085
+ 240,
1086
+ 51,
1087
+ 49,
1088
+ 574,
1089
+ 718,
1090
+ 703,
1091
+ 87,
1092
+ 239,
1093
+ 1415,
1094
+ 80,
1095
+ 89,
1096
+ 2444,
1097
+ 15,
1098
+ 0
1099
+ ],
1100
+ [
1101
+ 0,
1102
+ 2956,
1103
+ 12400,
1104
+ 1648,
1105
+ 6524,
1106
+ 146,
1107
+ 15715,
1108
+ 184,
1109
+ 600,
1110
+ 247,
1111
+ 2439,
1112
+ 6104,
1113
+ 131,
1114
+ 347,
1115
+ 1989,
1116
+ 214,
1117
+ 588,
1118
+ 1521,
1119
+ 9,
1120
+ 0
1121
+ ],
1122
+ [
1123
+ 0,
1124
+ 1025,
1125
+ 1542,
1126
+ 5349,
1127
+ 79,
1128
+ 272,
1129
+ 9,
1130
+ 43078,
1131
+ 6347,
1132
+ 1035,
1133
+ 540,
1134
+ 1260,
1135
+ 2591,
1136
+ 580,
1137
+ 1380,
1138
+ 9267,
1139
+ 701,
1140
+ 5309,
1141
+ 1569,
1142
+ 0
1143
+ ],
1144
+ [
1145
+ 0,
1146
+ 13585,
1147
+ 199,
1148
+ 6713,
1149
+ 0,
1150
+ 0,
1151
+ 15,
1152
+ 4346,
1153
+ 143960,
1154
+ 0,
1155
+ 156,
1156
+ 2075,
1157
+ 2401,
1158
+ 20,
1159
+ 2296,
1160
+ 489,
1161
+ 8480,
1162
+ 217,
1163
+ 2525,
1164
+ 0
1165
+ ],
1166
+ [
1167
+ 0,
1168
+ 694,
1169
+ 153,
1170
+ 1308,
1171
+ 33,
1172
+ 257,
1173
+ 46,
1174
+ 201,
1175
+ 174,
1176
+ 64188,
1177
+ 55,
1178
+ 163,
1179
+ 779,
1180
+ 70,
1181
+ 610,
1182
+ 1251,
1183
+ 235,
1184
+ 731,
1185
+ 99,
1186
+ 0
1187
+ ],
1188
+ [
1189
+ 0,
1190
+ 2203,
1191
+ 46064,
1192
+ 1175,
1193
+ 1655,
1194
+ 1528,
1195
+ 186,
1196
+ 11,
1197
+ 12,
1198
+ 25,
1199
+ 2028,
1200
+ 135,
1201
+ 538,
1202
+ 7,
1203
+ 278,
1204
+ 210,
1205
+ 210,
1206
+ 2029,
1207
+ 68,
1208
+ 0
1209
+ ],
1210
+ [
1211
+ 0,
1212
+ 709,
1213
+ 3177,
1214
+ 36,
1215
+ 100,
1216
+ 31,
1217
+ 527,
1218
+ 298,
1219
+ 1514,
1220
+ 0,
1221
+ 24,
1222
+ 59647,
1223
+ 39,
1224
+ 82,
1225
+ 1718,
1226
+ 13,
1227
+ 1906,
1228
+ 120,
1229
+ 19,
1230
+ 0
1231
+ ],
1232
+ [
1233
+ 0,
1234
+ 2423,
1235
+ 314,
1236
+ 5259,
1237
+ 45,
1238
+ 78,
1239
+ 435,
1240
+ 8028,
1241
+ 4097,
1242
+ 2152,
1243
+ 404,
1244
+ 3109,
1245
+ 24497,
1246
+ 568,
1247
+ 1295,
1248
+ 1376,
1249
+ 3870,
1250
+ 465,
1251
+ 2300,
1252
+ 0
1253
+ ],
1254
+ [
1255
+ 0,
1256
+ 576,
1257
+ 226,
1258
+ 1541,
1259
+ 107,
1260
+ 15,
1261
+ 76,
1262
+ 1545,
1263
+ 450,
1264
+ 328,
1265
+ 291,
1266
+ 1122,
1267
+ 5801,
1268
+ 7922,
1269
+ 295,
1270
+ 584,
1271
+ 446,
1272
+ 1084,
1273
+ 204,
1274
+ 0
1275
+ ],
1276
+ [
1277
+ 0,
1278
+ 45485,
1279
+ 1688,
1280
+ 2631,
1281
+ 1096,
1282
+ 751,
1283
+ 383,
1284
+ 684,
1285
+ 6176,
1286
+ 399,
1287
+ 463,
1288
+ 3575,
1289
+ 2192,
1290
+ 294,
1291
+ 51849,
1292
+ 784,
1293
+ 7291,
1294
+ 1569,
1295
+ 484,
1296
+ 0
1297
+ ],
1298
+ [
1299
+ 0,
1300
+ 606,
1301
+ 201,
1302
+ 6777,
1303
+ 91,
1304
+ 156,
1305
+ 2,
1306
+ 462,
1307
+ 50,
1308
+ 1374,
1309
+ 292,
1310
+ 2066,
1311
+ 753,
1312
+ 64,
1313
+ 829,
1314
+ 50890,
1315
+ 114,
1316
+ 444,
1317
+ 3145,
1318
+ 0
1319
+ ],
1320
+ [
1321
+ 0,
1322
+ 12682,
1323
+ 411,
1324
+ 2382,
1325
+ 23,
1326
+ 7,
1327
+ 7,
1328
+ 1029,
1329
+ 8545,
1330
+ 93,
1331
+ 41,
1332
+ 4745,
1333
+ 909,
1334
+ 84,
1335
+ 3917,
1336
+ 57,
1337
+ 41592,
1338
+ 54,
1339
+ 281,
1340
+ 0
1341
+ ],
1342
+ [
1343
+ 0,
1344
+ 4342,
1345
+ 15162,
1346
+ 1896,
1347
+ 4161,
1348
+ 5797,
1349
+ 353,
1350
+ 12,
1351
+ 86,
1352
+ 103,
1353
+ 2481,
1354
+ 13,
1355
+ 626,
1356
+ 336,
1357
+ 753,
1358
+ 100,
1359
+ 114,
1360
+ 6419,
1361
+ 15,
1362
+ 0
1363
+ ],
1364
+ [
1365
+ 0,
1366
+ 1841,
1367
+ 92,
1368
+ 2693,
1369
+ 284,
1370
+ 63,
1371
+ 7,
1372
+ 1963,
1373
+ 2932,
1374
+ 609,
1375
+ 21,
1376
+ 2012,
1377
+ 2462,
1378
+ 4,
1379
+ 3904,
1380
+ 731,
1381
+ 2295,
1382
+ 159,
1383
+ 9952,
1384
+ 0
1385
+ ],
1386
+ [
1387
+ 0,
1388
+ 0,
1389
+ 0,
1390
+ 0,
1391
+ 0,
1392
+ 0,
1393
+ 0,
1394
+ 0,
1395
+ 0,
1396
+ 0,
1397
+ 0,
1398
+ 0,
1399
+ 0,
1400
+ 0,
1401
+ 0,
1402
+ 0,
1403
+ 0,
1404
+ 0,
1405
+ 0,
1406
+ 0
1407
+ ]
1408
+ ]
1409
+ },
1410
+ "records": {
1411
+ "add:0.1": {
1412
+ "miou": 0.4952977260959119,
1413
+ "oa": 0.809438708403747,
1414
+ "macro_f1": 0.6244851115289156,
1415
+ "kappa": 0.7633505948395706,
1416
+ "per_class_iou": [
1417
+ 0.8084389779816274,
1418
+ 0.7150961184355896,
1419
+ 0.8763378415995546,
1420
+ 0.4874198708984528,
1421
+ 0.8740049868785484,
1422
+ 0.37208006385830683,
1423
+ 0.4537028497648252,
1424
+ 0.6245882473592452,
1425
+ 0.8043280486177659,
1426
+ 0.08840140567289417,
1427
+ 0.5444820072275975,
1428
+ 0.3127379815711673,
1429
+ 0.400269398461593,
1430
+ 0.275189878983062,
1431
+ 0.6285072951739619,
1432
+ 0.28143899488860274,
1433
+ 0.1002876053896462,
1434
+ 0.26804749696397245
1435
+ ],
1436
+ "confusion_matrix": [
1437
+ [
1438
+ 0,
1439
+ 0,
1440
+ 0,
1441
+ 0,
1442
+ 0,
1443
+ 0,
1444
+ 0,
1445
+ 0,
1446
+ 0,
1447
+ 0,
1448
+ 0,
1449
+ 0,
1450
+ 0,
1451
+ 0,
1452
+ 0,
1453
+ 0,
1454
+ 0,
1455
+ 0,
1456
+ 0,
1457
+ 0
1458
+ ],
1459
+ [
1460
+ 0,
1461
+ 1300978,
1462
+ 7108,
1463
+ 8230,
1464
+ 1043,
1465
+ 780,
1466
+ 944,
1467
+ 2440,
1468
+ 19265,
1469
+ 725,
1470
+ 551,
1471
+ 3746,
1472
+ 9121,
1473
+ 500,
1474
+ 30359,
1475
+ 1046,
1476
+ 77382,
1477
+ 846,
1478
+ 939,
1479
+ 0
1480
+ ],
1481
+ [
1482
+ 0,
1483
+ 10132,
1484
+ 485443,
1485
+ 4883,
1486
+ 3909,
1487
+ 1030,
1488
+ 1783,
1489
+ 190,
1490
+ 754,
1491
+ 550,
1492
+ 29667,
1493
+ 17322,
1494
+ 558,
1495
+ 315,
1496
+ 1146,
1497
+ 236,
1498
+ 854,
1499
+ 1856,
1500
+ 52,
1501
+ 0
1502
+ ],
1503
+ [
1504
+ 0,
1505
+ 15669,
1506
+ 3059,
1507
+ 639072,
1508
+ 408,
1509
+ 1060,
1510
+ 215,
1511
+ 4858,
1512
+ 875,
1513
+ 3567,
1514
+ 183,
1515
+ 23,
1516
+ 2780,
1517
+ 352,
1518
+ 3898,
1519
+ 4578,
1520
+ 822,
1521
+ 136,
1522
+ 6734,
1523
+ 0
1524
+ ],
1525
+ [
1526
+ 0,
1527
+ 7422,
1528
+ 42127,
1529
+ 1657,
1530
+ 87138,
1531
+ 1460,
1532
+ 4693,
1533
+ 59,
1534
+ 217,
1535
+ 70,
1536
+ 10104,
1537
+ 4144,
1538
+ 319,
1539
+ 384,
1540
+ 663,
1541
+ 63,
1542
+ 334,
1543
+ 2531,
1544
+ 7,
1545
+ 0
1546
+ ],
1547
+ [
1548
+ 0,
1549
+ 2110,
1550
+ 1205,
1551
+ 853,
1552
+ 338,
1553
+ 120229,
1554
+ 305,
1555
+ 121,
1556
+ 22,
1557
+ 231,
1558
+ 741,
1559
+ 257,
1560
+ 29,
1561
+ 33,
1562
+ 1797,
1563
+ 27,
1564
+ 139,
1565
+ 682,
1566
+ 0,
1567
+ 0
1568
+ ],
1569
+ [
1570
+ 0,
1571
+ 3690,
1572
+ 7059,
1573
+ 651,
1574
+ 3536,
1575
+ 317,
1576
+ 24705,
1577
+ 170,
1578
+ 843,
1579
+ 99,
1580
+ 2928,
1581
+ 5956,
1582
+ 173,
1583
+ 399,
1584
+ 2204,
1585
+ 327,
1586
+ 151,
1587
+ 554,
1588
+ 0,
1589
+ 0
1590
+ ],
1591
+ [
1592
+ 0,
1593
+ 1302,
1594
+ 139,
1595
+ 2981,
1596
+ 24,
1597
+ 240,
1598
+ 34,
1599
+ 49195,
1600
+ 7301,
1601
+ 2498,
1602
+ 91,
1603
+ 370,
1604
+ 1548,
1605
+ 1487,
1606
+ 3005,
1607
+ 9797,
1608
+ 651,
1609
+ 184,
1610
+ 1086,
1611
+ 0
1612
+ ],
1613
+ [
1614
+ 0,
1615
+ 17381,
1616
+ 135,
1617
+ 4096,
1618
+ 0,
1619
+ 0,
1620
+ 22,
1621
+ 1196,
1622
+ 152259,
1623
+ 2,
1624
+ 1,
1625
+ 322,
1626
+ 1285,
1627
+ 52,
1628
+ 479,
1629
+ 409,
1630
+ 9586,
1631
+ 2,
1632
+ 250,
1633
+ 0
1634
+ ],
1635
+ [
1636
+ 0,
1637
+ 253,
1638
+ 197,
1639
+ 1039,
1640
+ 34,
1641
+ 103,
1642
+ 306,
1643
+ 729,
1644
+ 44,
1645
+ 66308,
1646
+ 0,
1647
+ 36,
1648
+ 877,
1649
+ 40,
1650
+ 614,
1651
+ 363,
1652
+ 64,
1653
+ 0,
1654
+ 40,
1655
+ 0
1656
+ ],
1657
+ [
1658
+ 0,
1659
+ 2578,
1660
+ 42312,
1661
+ 430,
1662
+ 1677,
1663
+ 110,
1664
+ 163,
1665
+ 5,
1666
+ 8,
1667
+ 4,
1668
+ 9861,
1669
+ 107,
1670
+ 11,
1671
+ 0,
1672
+ 312,
1673
+ 8,
1674
+ 125,
1675
+ 651,
1676
+ 0,
1677
+ 0
1678
+ ],
1679
+ [
1680
+ 0,
1681
+ 1154,
1682
+ 2400,
1683
+ 13,
1684
+ 3,
1685
+ 0,
1686
+ 1616,
1687
+ 209,
1688
+ 1202,
1689
+ 0,
1690
+ 173,
1691
+ 60719,
1692
+ 79,
1693
+ 0,
1694
+ 1496,
1695
+ 0,
1696
+ 730,
1697
+ 2,
1698
+ 164,
1699
+ 0
1700
+ ],
1701
+ [
1702
+ 0,
1703
+ 2954,
1704
+ 121,
1705
+ 4164,
1706
+ 2,
1707
+ 13,
1708
+ 547,
1709
+ 9854,
1710
+ 3853,
1711
+ 1906,
1712
+ 63,
1713
+ 4578,
1714
+ 27186,
1715
+ 871,
1716
+ 1364,
1717
+ 390,
1718
+ 2162,
1719
+ 89,
1720
+ 598,
1721
+ 0
1722
+ ],
1723
+ [
1724
+ 0,
1725
+ 468,
1726
+ 124,
1727
+ 1305,
1728
+ 3,
1729
+ 25,
1730
+ 92,
1731
+ 3563,
1732
+ 508,
1733
+ 816,
1734
+ 17,
1735
+ 290,
1736
+ 2859,
1737
+ 11292,
1738
+ 367,
1739
+ 364,
1740
+ 479,
1741
+ 2,
1742
+ 39,
1743
+ 0
1744
+ ],
1745
+ [
1746
+ 0,
1747
+ 52773,
1748
+ 1184,
1749
+ 878,
1750
+ 607,
1751
+ 373,
1752
+ 1429,
1753
+ 866,
1754
+ 7094,
1755
+ 569,
1756
+ 800,
1757
+ 1108,
1758
+ 1051,
1759
+ 321,
1760
+ 50073,
1761
+ 291,
1762
+ 7693,
1763
+ 424,
1764
+ 260,
1765
+ 0
1766
+ ],
1767
+ [
1768
+ 0,
1769
+ 1398,
1770
+ 168,
1771
+ 5730,
1772
+ 133,
1773
+ 139,
1774
+ 10,
1775
+ 767,
1776
+ 26,
1777
+ 180,
1778
+ 15,
1779
+ 2122,
1780
+ 731,
1781
+ 4,
1782
+ 369,
1783
+ 54320,
1784
+ 82,
1785
+ 22,
1786
+ 2100,
1787
+ 0
1788
+ ],
1789
+ [
1790
+ 0,
1791
+ 11247,
1792
+ 351,
1793
+ 705,
1794
+ 4,
1795
+ 0,
1796
+ 42,
1797
+ 391,
1798
+ 10659,
1799
+ 49,
1800
+ 59,
1801
+ 982,
1802
+ 1147,
1803
+ 56,
1804
+ 487,
1805
+ 20,
1806
+ 50491,
1807
+ 7,
1808
+ 162,
1809
+ 0
1810
+ ],
1811
+ [
1812
+ 0,
1813
+ 7947,
1814
+ 10436,
1815
+ 1212,
1816
+ 3597,
1817
+ 2787,
1818
+ 390,
1819
+ 44,
1820
+ 14,
1821
+ 7,
1822
+ 7792,
1823
+ 2,
1824
+ 719,
1825
+ 752,
1826
+ 1832,
1827
+ 62,
1828
+ 74,
1829
+ 5091,
1830
+ 11,
1831
+ 0
1832
+ ],
1833
+ [
1834
+ 0,
1835
+ 4766,
1836
+ 45,
1837
+ 2137,
1838
+ 64,
1839
+ 5,
1840
+ 44,
1841
+ 1035,
1842
+ 3613,
1843
+ 119,
1844
+ 1,
1845
+ 192,
1846
+ 2927,
1847
+ 32,
1848
+ 3772,
1849
+ 130,
1850
+ 1216,
1851
+ 7,
1852
+ 11919,
1853
+ 0
1854
+ ],
1855
+ [
1856
+ 0,
1857
+ 0,
1858
+ 0,
1859
+ 0,
1860
+ 0,
1861
+ 0,
1862
+ 0,
1863
+ 0,
1864
+ 0,
1865
+ 0,
1866
+ 0,
1867
+ 0,
1868
+ 0,
1869
+ 0,
1870
+ 0,
1871
+ 0,
1872
+ 0,
1873
+ 0,
1874
+ 0,
1875
+ 0
1876
+ ]
1877
+ ]
1878
+ }
1879
+ },
1880
+ "seconds": 487.52680730680004,
1881
+ "test_used_for_selection": false,
1882
+ "model_count": 1
1883
+ }
main_method/configurations/32X32_recommended_validation_seed3407/manifest.json ADDED
@@ -0,0 +1,25 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "name": "recommended_validation",
3
+ "seed": 3407,
4
+ "addition_kind": "cnn_control",
5
+ "addition_alpha": 0.25,
6
+ "sam_checkpoint": "sam_network_seed3407.tar",
7
+ "feature_cluster_checkpoint": "training_feature_cluster_centres_seed3407.tar",
8
+ "original_cnn_checkpoint": "original_temporal_cnn_seed3407.tar",
9
+ "addition_checkpoint": "new_temporal_cnn_seed3407.tar",
10
+ "shared_checkpoint_directory": "../../checkpoints/shared",
11
+ "selection": "validation_miou",
12
+ "weights": {
13
+ "sam": 0.28125,
14
+ "training_feature_cluster_centres": 0.28125,
15
+ "original_cnn": 0.1875,
16
+ "addition": 0.25
17
+ },
18
+ "sha256": {
19
+ "sam_network_seed3407.tar": "aa834986f0756f8bcf5646f3af63d0ccbd59ad46d33f6a64641e98fe14e679f1",
20
+ "training_feature_cluster_centres_seed3407.tar": "3a17469c8d41370e6808f00c24fc49f8801c88a9e4715b5a19802bba9ec3fb30",
21
+ "original_temporal_cnn_seed3407.tar": "08ba0ec1c2409596301504f299c40b8eb20346c12241903364d74179b23a1774",
22
+ "new_temporal_cnn_seed3407.tar": "a08c3485199d8b519bf1a9dad72c84545b7adee818798acdfe068135be3de833",
23
+ "attention_temporal_cnn_seed3407.tar": "de57690bdbae4ff182b983429e1b6c2683a9ad1fc7bfe9011a7a3cfc24f53bf3"
24
+ }
25
+ }
main_method/configurations/32X32_recommended_validation_seed3407/selection.json ADDED
@@ -0,0 +1,4691 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "kind": "cnn_control",
3
+ "seed": 3407,
4
+ "mode": "add",
5
+ "alpha": 0.25,
6
+ "metrics": {
7
+ "miou": 0.5256398451814701,
8
+ "oa": 0.7954606313128608,
9
+ "macro_f1": 0.6400266863319044,
10
+ "kappa": 0.7725060156424988,
11
+ "per_class_iou": [
12
+ 0.7863696632193052,
13
+ 0.7940560621411685,
14
+ 0.8422681105804802,
15
+ 0.5216035634743875,
16
+ 0.8953563366655918,
17
+ 0.5666403785488959,
18
+ 0.6681021224238696,
19
+ 0.6854425749817118,
20
+ 0.3865969759193579,
21
+ 0.15913978494623657,
22
+ 0.8521227955584585,
23
+ 0.16817463736895016,
24
+ 0.15324165029469547,
25
+ 0.3526720731960907,
26
+ 0.8232323232323232,
27
+ 0.5073836723321259,
28
+ 0.010297482837528604,
29
+ 0.2888170055452865
30
+ ],
31
+ "confusion_matrix": [
32
+ [
33
+ 0,
34
+ 0,
35
+ 0,
36
+ 0,
37
+ 0,
38
+ 0,
39
+ 0,
40
+ 0,
41
+ 0,
42
+ 0,
43
+ 0,
44
+ 0,
45
+ 0,
46
+ 0,
47
+ 0,
48
+ 0,
49
+ 0,
50
+ 0,
51
+ 0,
52
+ 0
53
+ ],
54
+ [
55
+ 0,
56
+ 14827,
57
+ 104,
58
+ 46,
59
+ 8,
60
+ 16,
61
+ 20,
62
+ 1,
63
+ 480,
64
+ 0,
65
+ 3,
66
+ 211,
67
+ 80,
68
+ 3,
69
+ 659,
70
+ 16,
71
+ 296,
72
+ 4,
73
+ 6,
74
+ 0
75
+ ],
76
+ [
77
+ 0,
78
+ 160,
79
+ 11756,
80
+ 93,
81
+ 27,
82
+ 17,
83
+ 59,
84
+ 3,
85
+ 0,
86
+ 18,
87
+ 25,
88
+ 184,
89
+ 13,
90
+ 1,
91
+ 99,
92
+ 0,
93
+ 10,
94
+ 4,
95
+ 8,
96
+ 0
97
+ ],
98
+ [
99
+ 0,
100
+ 165,
101
+ 132,
102
+ 12522,
103
+ 19,
104
+ 10,
105
+ 2,
106
+ 144,
107
+ 0,
108
+ 31,
109
+ 1,
110
+ 0,
111
+ 2,
112
+ 6,
113
+ 113,
114
+ 137,
115
+ 34,
116
+ 11,
117
+ 539,
118
+ 0
119
+ ],
120
+ [
121
+ 0,
122
+ 23,
123
+ 477,
124
+ 28,
125
+ 1171,
126
+ 50,
127
+ 1,
128
+ 0,
129
+ 0,
130
+ 0,
131
+ 130,
132
+ 0,
133
+ 18,
134
+ 10,
135
+ 0,
136
+ 2,
137
+ 6,
138
+ 128,
139
+ 3,
140
+ 0
141
+ ],
142
+ [
143
+ 0,
144
+ 83,
145
+ 1,
146
+ 23,
147
+ 0,
148
+ 5553,
149
+ 0,
150
+ 0,
151
+ 0,
152
+ 0,
153
+ 0,
154
+ 0,
155
+ 0,
156
+ 0,
157
+ 19,
158
+ 8,
159
+ 1,
160
+ 101,
161
+ 0,
162
+ 0
163
+ ],
164
+ [
165
+ 0,
166
+ 96,
167
+ 76,
168
+ 5,
169
+ 7,
170
+ 0,
171
+ 1437,
172
+ 49,
173
+ 253,
174
+ 0,
175
+ 0,
176
+ 217,
177
+ 0,
178
+ 0,
179
+ 77,
180
+ 0,
181
+ 5,
182
+ 186,
183
+ 0,
184
+ 0
185
+ ],
186
+ [
187
+ 0,
188
+ 7,
189
+ 0,
190
+ 14,
191
+ 0,
192
+ 0,
193
+ 10,
194
+ 4344,
195
+ 415,
196
+ 65,
197
+ 0,
198
+ 10,
199
+ 472,
200
+ 0,
201
+ 33,
202
+ 1,
203
+ 4,
204
+ 0,
205
+ 4,
206
+ 0
207
+ ],
208
+ [
209
+ 0,
210
+ 29,
211
+ 0,
212
+ 0,
213
+ 0,
214
+ 0,
215
+ 0,
216
+ 0,
217
+ 6559,
218
+ 0,
219
+ 0,
220
+ 9,
221
+ 0,
222
+ 0,
223
+ 0,
224
+ 0,
225
+ 1,
226
+ 0,
227
+ 0,
228
+ 0
229
+ ],
230
+ [
231
+ 0,
232
+ 6,
233
+ 20,
234
+ 6,
235
+ 0,
236
+ 1,
237
+ 0,
238
+ 26,
239
+ 0,
240
+ 2071,
241
+ 0,
242
+ 0,
243
+ 16,
244
+ 14,
245
+ 5,
246
+ 1,
247
+ 0,
248
+ 0,
249
+ 0,
250
+ 0
251
+ ],
252
+ [
253
+ 0,
254
+ 34,
255
+ 886,
256
+ 0,
257
+ 14,
258
+ 0,
259
+ 2,
260
+ 0,
261
+ 0,
262
+ 5,
263
+ 222,
264
+ 0,
265
+ 0,
266
+ 0,
267
+ 5,
268
+ 0,
269
+ 30,
270
+ 4,
271
+ 0,
272
+ 0
273
+ ],
274
+ [
275
+ 0,
276
+ 17,
277
+ 0,
278
+ 0,
279
+ 91,
280
+ 0,
281
+ 14,
282
+ 5,
283
+ 10,
284
+ 0,
285
+ 0,
286
+ 6523,
287
+ 0,
288
+ 0,
289
+ 13,
290
+ 0,
291
+ 63,
292
+ 0,
293
+ 6,
294
+ 0
295
+ ],
296
+ [
297
+ 0,
298
+ 107,
299
+ 18,
300
+ 205,
301
+ 0,
302
+ 3,
303
+ 10,
304
+ 473,
305
+ 524,
306
+ 2954,
307
+ 6,
308
+ 129,
309
+ 1171,
310
+ 188,
311
+ 120,
312
+ 47,
313
+ 11,
314
+ 8,
315
+ 72,
316
+ 0
317
+ ],
318
+ [
319
+ 0,
320
+ 1,
321
+ 44,
322
+ 53,
323
+ 0,
324
+ 0,
325
+ 0,
326
+ 189,
327
+ 8,
328
+ 36,
329
+ 1,
330
+ 71,
331
+ 216,
332
+ 156,
333
+ 12,
334
+ 2,
335
+ 7,
336
+ 0,
337
+ 0,
338
+ 0
339
+ ],
340
+ [
341
+ 0,
342
+ 1027,
343
+ 18,
344
+ 38,
345
+ 0,
346
+ 0,
347
+ 10,
348
+ 43,
349
+ 402,
350
+ 0,
351
+ 0,
352
+ 58,
353
+ 0,
354
+ 0,
355
+ 1696,
356
+ 0,
357
+ 205,
358
+ 7,
359
+ 0,
360
+ 0
361
+ ],
362
+ [
363
+ 0,
364
+ 28,
365
+ 6,
366
+ 32,
367
+ 4,
368
+ 6,
369
+ 0,
370
+ 0,
371
+ 0,
372
+ 40,
373
+ 0,
374
+ 0,
375
+ 0,
376
+ 0,
377
+ 0,
378
+ 1793,
379
+ 0,
380
+ 0,
381
+ 0,
382
+ 0
383
+ ],
384
+ [
385
+ 0,
386
+ 51,
387
+ 0,
388
+ 8,
389
+ 0,
390
+ 0,
391
+ 0,
392
+ 19,
393
+ 875,
394
+ 0,
395
+ 0,
396
+ 14,
397
+ 0,
398
+ 0,
399
+ 41,
400
+ 0,
401
+ 1821,
402
+ 0,
403
+ 0,
404
+ 0
405
+ ],
406
+ [
407
+ 0,
408
+ 230,
409
+ 546,
410
+ 75,
411
+ 28,
412
+ 310,
413
+ 0,
414
+ 0,
415
+ 0,
416
+ 42,
417
+ 27,
418
+ 0,
419
+ 0,
420
+ 0,
421
+ 0,
422
+ 4,
423
+ 15,
424
+ 18,
425
+ 0,
426
+ 0
427
+ ],
428
+ [
429
+ 0,
430
+ 11,
431
+ 0,
432
+ 373,
433
+ 0,
434
+ 0,
435
+ 0,
436
+ 171,
437
+ 4,
438
+ 0,
439
+ 0,
440
+ 10,
441
+ 100,
442
+ 0,
443
+ 109,
444
+ 51,
445
+ 72,
446
+ 0,
447
+ 625,
448
+ 0
449
+ ],
450
+ [
451
+ 0,
452
+ 0,
453
+ 0,
454
+ 0,
455
+ 0,
456
+ 0,
457
+ 0,
458
+ 0,
459
+ 0,
460
+ 0,
461
+ 0,
462
+ 0,
463
+ 0,
464
+ 0,
465
+ 0,
466
+ 0,
467
+ 0,
468
+ 0,
469
+ 0,
470
+ 0
471
+ ]
472
+ ]
473
+ },
474
+ "reference": {
475
+ "miou": 0.517690746616618,
476
+ "oa": 0.7853386317627274,
477
+ "macro_f1": 0.6313043933615895,
478
+ "kappa": 0.7617504573466095,
479
+ "per_class_iou": [
480
+ 0.7832551694734599,
481
+ 0.810901842177619,
482
+ 0.7879978325657003,
483
+ 0.5577777777777778,
484
+ 0.8986279257465698,
485
+ 0.580084909301428,
486
+ 0.6166109930154874,
487
+ 0.6909798968529628,
488
+ 0.38513513513513514,
489
+ 0.1546572934973638,
490
+ 0.8519243313763861,
491
+ 0.19663702056698165,
492
+ 0.10965323336457357,
493
+ 0.3287156144864437,
494
+ 0.830249768732655,
495
+ 0.5048543689320388,
496
+ 0.02144607843137255,
497
+ 0.20892424766516776
498
+ ],
499
+ "confusion_matrix": [
500
+ [
501
+ 0,
502
+ 0,
503
+ 0,
504
+ 0,
505
+ 0,
506
+ 0,
507
+ 0,
508
+ 0,
509
+ 0,
510
+ 0,
511
+ 0,
512
+ 0,
513
+ 0,
514
+ 0,
515
+ 0,
516
+ 0,
517
+ 0,
518
+ 0,
519
+ 0,
520
+ 0
521
+ ],
522
+ [
523
+ 0,
524
+ 14697,
525
+ 126,
526
+ 50,
527
+ 60,
528
+ 18,
529
+ 47,
530
+ 5,
531
+ 490,
532
+ 0,
533
+ 3,
534
+ 219,
535
+ 87,
536
+ 3,
537
+ 699,
538
+ 21,
539
+ 245,
540
+ 5,
541
+ 5,
542
+ 0
543
+ ],
544
+ [
545
+ 0,
546
+ 100,
547
+ 11797,
548
+ 79,
549
+ 11,
550
+ 15,
551
+ 56,
552
+ 3,
553
+ 0,
554
+ 19,
555
+ 59,
556
+ 191,
557
+ 21,
558
+ 8,
559
+ 98,
560
+ 0,
561
+ 7,
562
+ 5,
563
+ 8,
564
+ 0
565
+ ],
566
+ [
567
+ 0,
568
+ 165,
569
+ 120,
570
+ 11634,
571
+ 26,
572
+ 11,
573
+ 3,
574
+ 200,
575
+ 1,
576
+ 33,
577
+ 3,
578
+ 0,
579
+ 2,
580
+ 6,
581
+ 215,
582
+ 134,
583
+ 39,
584
+ 1,
585
+ 1275,
586
+ 0
587
+ ],
588
+ [
589
+ 0,
590
+ 25,
591
+ 305,
592
+ 30,
593
+ 1255,
594
+ 41,
595
+ 21,
596
+ 0,
597
+ 0,
598
+ 0,
599
+ 300,
600
+ 0,
601
+ 12,
602
+ 9,
603
+ 0,
604
+ 0,
605
+ 22,
606
+ 23,
607
+ 4,
608
+ 0
609
+ ],
610
+ [
611
+ 0,
612
+ 71,
613
+ 7,
614
+ 25,
615
+ 0,
616
+ 5567,
617
+ 0,
618
+ 0,
619
+ 0,
620
+ 0,
621
+ 0,
622
+ 0,
623
+ 0,
624
+ 0,
625
+ 18,
626
+ 9,
627
+ 0,
628
+ 92,
629
+ 0,
630
+ 0
631
+ ],
632
+ [
633
+ 0,
634
+ 63,
635
+ 73,
636
+ 4,
637
+ 17,
638
+ 4,
639
+ 1503,
640
+ 26,
641
+ 228,
642
+ 0,
643
+ 2,
644
+ 224,
645
+ 0,
646
+ 0,
647
+ 81,
648
+ 0,
649
+ 4,
650
+ 179,
651
+ 0,
652
+ 0
653
+ ],
654
+ [
655
+ 0,
656
+ 4,
657
+ 1,
658
+ 7,
659
+ 0,
660
+ 0,
661
+ 15,
662
+ 4061,
663
+ 338,
664
+ 113,
665
+ 0,
666
+ 10,
667
+ 713,
668
+ 2,
669
+ 82,
670
+ 5,
671
+ 3,
672
+ 0,
673
+ 25,
674
+ 0
675
+ ],
676
+ [
677
+ 0,
678
+ 21,
679
+ 0,
680
+ 0,
681
+ 0,
682
+ 0,
683
+ 0,
684
+ 0,
685
+ 6565,
686
+ 0,
687
+ 0,
688
+ 11,
689
+ 0,
690
+ 0,
691
+ 0,
692
+ 0,
693
+ 1,
694
+ 0,
695
+ 0,
696
+ 0
697
+ ],
698
+ [
699
+ 0,
700
+ 5,
701
+ 21,
702
+ 3,
703
+ 0,
704
+ 1,
705
+ 0,
706
+ 23,
707
+ 0,
708
+ 2052,
709
+ 0,
710
+ 0,
711
+ 24,
712
+ 33,
713
+ 4,
714
+ 0,
715
+ 0,
716
+ 0,
717
+ 0,
718
+ 0
719
+ ],
720
+ [
721
+ 0,
722
+ 22,
723
+ 868,
724
+ 0,
725
+ 2,
726
+ 0,
727
+ 1,
728
+ 0,
729
+ 0,
730
+ 5,
731
+ 264,
732
+ 0,
733
+ 0,
734
+ 0,
735
+ 5,
736
+ 0,
737
+ 33,
738
+ 2,
739
+ 0,
740
+ 0
741
+ ],
742
+ [
743
+ 0,
744
+ 8,
745
+ 1,
746
+ 0,
747
+ 67,
748
+ 0,
749
+ 26,
750
+ 4,
751
+ 11,
752
+ 0,
753
+ 0,
754
+ 6530,
755
+ 0,
756
+ 0,
757
+ 20,
758
+ 0,
759
+ 67,
760
+ 0,
761
+ 8,
762
+ 0
763
+ ],
764
+ [
765
+ 0,
766
+ 114,
767
+ 20,
768
+ 133,
769
+ 1,
770
+ 5,
771
+ 3,
772
+ 450,
773
+ 474,
774
+ 2875,
775
+ 0,
776
+ 101,
777
+ 1415,
778
+ 210,
779
+ 164,
780
+ 25,
781
+ 10,
782
+ 10,
783
+ 36,
784
+ 0
785
+ ],
786
+ [
787
+ 0,
788
+ 1,
789
+ 46,
790
+ 49,
791
+ 0,
792
+ 3,
793
+ 0,
794
+ 195,
795
+ 5,
796
+ 39,
797
+ 1,
798
+ 98,
799
+ 212,
800
+ 117,
801
+ 17,
802
+ 4,
803
+ 7,
804
+ 0,
805
+ 2,
806
+ 0
807
+ ],
808
+ [
809
+ 0,
810
+ 1033,
811
+ 18,
812
+ 37,
813
+ 0,
814
+ 3,
815
+ 10,
816
+ 54,
817
+ 438,
818
+ 0,
819
+ 0,
820
+ 60,
821
+ 5,
822
+ 0,
823
+ 1661,
824
+ 0,
825
+ 165,
826
+ 20,
827
+ 0,
828
+ 0
829
+ ],
830
+ [
831
+ 0,
832
+ 25,
833
+ 10,
834
+ 23,
835
+ 10,
836
+ 7,
837
+ 0,
838
+ 2,
839
+ 0,
840
+ 36,
841
+ 0,
842
+ 0,
843
+ 0,
844
+ 0,
845
+ 0,
846
+ 1795,
847
+ 1,
848
+ 0,
849
+ 0,
850
+ 0
851
+ ],
852
+ [
853
+ 0,
854
+ 56,
855
+ 0,
856
+ 5,
857
+ 0,
858
+ 0,
859
+ 0,
860
+ 48,
861
+ 918,
862
+ 0,
863
+ 0,
864
+ 5,
865
+ 0,
866
+ 0,
867
+ 29,
868
+ 0,
869
+ 1768,
870
+ 0,
871
+ 0,
872
+ 0
873
+ ],
874
+ [
875
+ 0,
876
+ 254,
877
+ 455,
878
+ 30,
879
+ 9,
880
+ 298,
881
+ 0,
882
+ 0,
883
+ 0,
884
+ 42,
885
+ 137,
886
+ 0,
887
+ 0,
888
+ 0,
889
+ 0,
890
+ 4,
891
+ 29,
892
+ 35,
893
+ 2,
894
+ 0
895
+ ],
896
+ [
897
+ 0,
898
+ 17,
899
+ 0,
900
+ 421,
901
+ 0,
902
+ 0,
903
+ 1,
904
+ 197,
905
+ 0,
906
+ 0,
907
+ 0,
908
+ 4,
909
+ 74,
910
+ 0,
911
+ 117,
912
+ 51,
913
+ 40,
914
+ 0,
915
+ 604,
916
+ 0
917
+ ],
918
+ [
919
+ 0,
920
+ 0,
921
+ 0,
922
+ 0,
923
+ 0,
924
+ 0,
925
+ 0,
926
+ 0,
927
+ 0,
928
+ 0,
929
+ 0,
930
+ 0,
931
+ 0,
932
+ 0,
933
+ 0,
934
+ 0,
935
+ 0,
936
+ 0,
937
+ 0,
938
+ 0
939
+ ]
940
+ ]
941
+ },
942
+ "standalone": {
943
+ "miou": 0.4613928392731144,
944
+ "oa": 0.7604674328681141,
945
+ "macro_f1": 0.5759941645308279,
946
+ "kappa": 0.7334592941868356,
947
+ "per_class_iou": [
948
+ 0.7620059058177485,
949
+ 0.7649862388400349,
950
+ 0.8101845791333945,
951
+ 0.2290852228303362,
952
+ 0.8758389261744967,
953
+ 0.39676840215439857,
954
+ 0.6524031942142534,
955
+ 0.6626579698328577,
956
+ 0.3693058568329718,
957
+ 0.0,
958
+ 0.7717776420281002,
959
+ 0.055872634424752175,
960
+ 0.2665094339622642,
961
+ 0.3076137987344356,
962
+ 0.6036308623298033,
963
+ 0.4603658536585366,
964
+ 0.009932043910088865,
965
+ 0.30613254203758655
966
+ ],
967
+ "confusion_matrix": [
968
+ [
969
+ 0,
970
+ 0,
971
+ 0,
972
+ 0,
973
+ 0,
974
+ 0,
975
+ 0,
976
+ 0,
977
+ 0,
978
+ 0,
979
+ 0,
980
+ 0,
981
+ 0,
982
+ 0,
983
+ 0,
984
+ 0,
985
+ 0,
986
+ 0,
987
+ 0,
988
+ 0
989
+ ],
990
+ [
991
+ 0,
992
+ 14709,
993
+ 61,
994
+ 84,
995
+ 15,
996
+ 14,
997
+ 16,
998
+ 2,
999
+ 587,
1000
+ 0,
1001
+ 1,
1002
+ 203,
1003
+ 68,
1004
+ 3,
1005
+ 639,
1006
+ 7,
1007
+ 357,
1008
+ 5,
1009
+ 9,
1010
+ 0
1011
+ ],
1012
+ [
1013
+ 0,
1014
+ 384,
1015
+ 11396,
1016
+ 97,
1017
+ 96,
1018
+ 26,
1019
+ 89,
1020
+ 0,
1021
+ 3,
1022
+ 16,
1023
+ 75,
1024
+ 187,
1025
+ 4,
1026
+ 1,
1027
+ 29,
1028
+ 0,
1029
+ 47,
1030
+ 23,
1031
+ 4,
1032
+ 0
1033
+ ],
1034
+ [
1035
+ 0,
1036
+ 243,
1037
+ 159,
1038
+ 12378,
1039
+ 23,
1040
+ 5,
1041
+ 1,
1042
+ 190,
1043
+ 14,
1044
+ 43,
1045
+ 16,
1046
+ 0,
1047
+ 42,
1048
+ 13,
1049
+ 90,
1050
+ 289,
1051
+ 37,
1052
+ 59,
1053
+ 266,
1054
+ 0
1055
+ ],
1056
+ [
1057
+ 0,
1058
+ 62,
1059
+ 686,
1060
+ 2,
1061
+ 586,
1062
+ 82,
1063
+ 21,
1064
+ 0,
1065
+ 0,
1066
+ 0,
1067
+ 184,
1068
+ 1,
1069
+ 25,
1070
+ 7,
1071
+ 60,
1072
+ 12,
1073
+ 0,
1074
+ 319,
1075
+ 0,
1076
+ 0
1077
+ ],
1078
+ [
1079
+ 0,
1080
+ 105,
1081
+ 17,
1082
+ 19,
1083
+ 14,
1084
+ 5481,
1085
+ 0,
1086
+ 0,
1087
+ 0,
1088
+ 0,
1089
+ 3,
1090
+ 0,
1091
+ 0,
1092
+ 0,
1093
+ 16,
1094
+ 0,
1095
+ 0,
1096
+ 134,
1097
+ 0,
1098
+ 0
1099
+ ],
1100
+ [
1101
+ 0,
1102
+ 147,
1103
+ 21,
1104
+ 26,
1105
+ 5,
1106
+ 0,
1107
+ 1105,
1108
+ 36,
1109
+ 224,
1110
+ 0,
1111
+ 11,
1112
+ 738,
1113
+ 0,
1114
+ 0,
1115
+ 78,
1116
+ 0,
1117
+ 8,
1118
+ 9,
1119
+ 0,
1120
+ 0
1121
+ ],
1122
+ [
1123
+ 0,
1124
+ 20,
1125
+ 0,
1126
+ 47,
1127
+ 0,
1128
+ 0,
1129
+ 17,
1130
+ 4330,
1131
+ 760,
1132
+ 0,
1133
+ 0,
1134
+ 9,
1135
+ 147,
1136
+ 0,
1137
+ 25,
1138
+ 0,
1139
+ 24,
1140
+ 0,
1141
+ 0,
1142
+ 0
1143
+ ],
1144
+ [
1145
+ 0,
1146
+ 55,
1147
+ 0,
1148
+ 0,
1149
+ 0,
1150
+ 0,
1151
+ 0,
1152
+ 5,
1153
+ 6502,
1154
+ 0,
1155
+ 0,
1156
+ 6,
1157
+ 0,
1158
+ 0,
1159
+ 29,
1160
+ 0,
1161
+ 1,
1162
+ 0,
1163
+ 0,
1164
+ 0
1165
+ ],
1166
+ [
1167
+ 0,
1168
+ 17,
1169
+ 2,
1170
+ 16,
1171
+ 3,
1172
+ 4,
1173
+ 0,
1174
+ 20,
1175
+ 7,
1176
+ 2043,
1177
+ 2,
1178
+ 0,
1179
+ 1,
1180
+ 3,
1181
+ 7,
1182
+ 35,
1183
+ 0,
1184
+ 6,
1185
+ 0,
1186
+ 0
1187
+ ],
1188
+ [
1189
+ 0,
1190
+ 147,
1191
+ 836,
1192
+ 16,
1193
+ 115,
1194
+ 2,
1195
+ 28,
1196
+ 0,
1197
+ 0,
1198
+ 2,
1199
+ 0,
1200
+ 0,
1201
+ 0,
1202
+ 0,
1203
+ 21,
1204
+ 12,
1205
+ 0,
1206
+ 23,
1207
+ 0,
1208
+ 0
1209
+ ],
1210
+ [
1211
+ 0,
1212
+ 39,
1213
+ 0,
1214
+ 0,
1215
+ 151,
1216
+ 0,
1217
+ 86,
1218
+ 5,
1219
+ 17,
1220
+ 1,
1221
+ 0,
1222
+ 6317,
1223
+ 1,
1224
+ 1,
1225
+ 50,
1226
+ 0,
1227
+ 74,
1228
+ 0,
1229
+ 0,
1230
+ 0
1231
+ ],
1232
+ [
1233
+ 0,
1234
+ 99,
1235
+ 20,
1236
+ 369,
1237
+ 3,
1238
+ 0,
1239
+ 72,
1240
+ 668,
1241
+ 374,
1242
+ 3162,
1243
+ 43,
1244
+ 175,
1245
+ 372,
1246
+ 16,
1247
+ 77,
1248
+ 314,
1249
+ 62,
1250
+ 5,
1251
+ 215,
1252
+ 0
1253
+ ],
1254
+ [
1255
+ 0,
1256
+ 21,
1257
+ 19,
1258
+ 66,
1259
+ 0,
1260
+ 0,
1261
+ 13,
1262
+ 116,
1263
+ 15,
1264
+ 25,
1265
+ 18,
1266
+ 1,
1267
+ 173,
1268
+ 226,
1269
+ 53,
1270
+ 29,
1271
+ 8,
1272
+ 13,
1273
+ 0,
1274
+ 0
1275
+ ],
1276
+ [
1277
+ 0,
1278
+ 968,
1279
+ 11,
1280
+ 33,
1281
+ 6,
1282
+ 0,
1283
+ 32,
1284
+ 58,
1285
+ 473,
1286
+ 0,
1287
+ 1,
1288
+ 53,
1289
+ 0,
1290
+ 0,
1291
+ 1507,
1292
+ 0,
1293
+ 357,
1294
+ 5,
1295
+ 0,
1296
+ 0
1297
+ ],
1298
+ [
1299
+ 0,
1300
+ 85,
1301
+ 0,
1302
+ 75,
1303
+ 0,
1304
+ 0,
1305
+ 2,
1306
+ 0,
1307
+ 0,
1308
+ 114,
1309
+ 0,
1310
+ 0,
1311
+ 10,
1312
+ 8,
1313
+ 0,
1314
+ 1596,
1315
+ 0,
1316
+ 17,
1317
+ 2,
1318
+ 0
1319
+ ],
1320
+ [
1321
+ 0,
1322
+ 24,
1323
+ 0,
1324
+ 32,
1325
+ 0,
1326
+ 0,
1327
+ 0,
1328
+ 61,
1329
+ 709,
1330
+ 0,
1331
+ 0,
1332
+ 45,
1333
+ 0,
1334
+ 0,
1335
+ 146,
1336
+ 0,
1337
+ 1812,
1338
+ 0,
1339
+ 0,
1340
+ 0
1341
+ ],
1342
+ [
1343
+ 0,
1344
+ 57,
1345
+ 588,
1346
+ 209,
1347
+ 80,
1348
+ 336,
1349
+ 0,
1350
+ 0,
1351
+ 0,
1352
+ 3,
1353
+ 3,
1354
+ 0,
1355
+ 0,
1356
+ 0,
1357
+ 0,
1358
+ 0,
1359
+ 0,
1360
+ 19,
1361
+ 0,
1362
+ 0
1363
+ ],
1364
+ [
1365
+ 0,
1366
+ 50,
1367
+ 0,
1368
+ 319,
1369
+ 0,
1370
+ 0,
1371
+ 0,
1372
+ 97,
1373
+ 31,
1374
+ 0,
1375
+ 0,
1376
+ 25,
1377
+ 141,
1378
+ 0,
1379
+ 75,
1380
+ 37,
1381
+ 132,
1382
+ 0,
1383
+ 619,
1384
+ 0
1385
+ ],
1386
+ [
1387
+ 0,
1388
+ 0,
1389
+ 0,
1390
+ 0,
1391
+ 0,
1392
+ 0,
1393
+ 0,
1394
+ 0,
1395
+ 0,
1396
+ 0,
1397
+ 0,
1398
+ 0,
1399
+ 0,
1400
+ 0,
1401
+ 0,
1402
+ 0,
1403
+ 0,
1404
+ 0,
1405
+ 0,
1406
+ 0
1407
+ ]
1408
+ ]
1409
+ },
1410
+ "records": {
1411
+ "replace:0.0": {
1412
+ "miou": 0.5069881701623682,
1413
+ "oa": 0.775366587761485,
1414
+ "macro_f1": 0.6219409132377508,
1415
+ "kappa": 0.751105731991019,
1416
+ "per_class_iou": [
1417
+ 0.7781331627485474,
1418
+ 0.8032224168126094,
1419
+ 0.7638945508900666,
1420
+ 0.4874521480221182,
1421
+ 0.9024627349319507,
1422
+ 0.5841441441441442,
1423
+ 0.58692089974676,
1424
+ 0.6966029723991507,
1425
+ 0.3621249761131282,
1426
+ 0.14381270903010032,
1427
+ 0.8547984770907181,
1428
+ 0.20548880393227745,
1429
+ 0.09766277128547579,
1430
+ 0.3258513931888545,
1431
+ 0.8012422360248447,
1432
+ 0.5073593073593073,
1433
+ 0.02595051297525649,
1434
+ 0.19866284622731614
1435
+ ],
1436
+ "confusion_matrix": [
1437
+ [
1438
+ 0,
1439
+ 0,
1440
+ 0,
1441
+ 0,
1442
+ 0,
1443
+ 0,
1444
+ 0,
1445
+ 0,
1446
+ 0,
1447
+ 0,
1448
+ 0,
1449
+ 0,
1450
+ 0,
1451
+ 0,
1452
+ 0,
1453
+ 0,
1454
+ 0,
1455
+ 0,
1456
+ 0,
1457
+ 0
1458
+ ],
1459
+ [
1460
+ 0,
1461
+ 14597,
1462
+ 134,
1463
+ 59,
1464
+ 97,
1465
+ 22,
1466
+ 60,
1467
+ 13,
1468
+ 517,
1469
+ 2,
1470
+ 3,
1471
+ 236,
1472
+ 93,
1473
+ 1,
1474
+ 670,
1475
+ 34,
1476
+ 230,
1477
+ 6,
1478
+ 6,
1479
+ 0
1480
+ ],
1481
+ [
1482
+ 0,
1483
+ 103,
1484
+ 11466,
1485
+ 73,
1486
+ 93,
1487
+ 22,
1488
+ 105,
1489
+ 5,
1490
+ 0,
1491
+ 22,
1492
+ 170,
1493
+ 265,
1494
+ 14,
1495
+ 18,
1496
+ 94,
1497
+ 1,
1498
+ 10,
1499
+ 7,
1500
+ 9,
1501
+ 0
1502
+ ],
1503
+ [
1504
+ 0,
1505
+ 165,
1506
+ 104,
1507
+ 11243,
1508
+ 50,
1509
+ 13,
1510
+ 4,
1511
+ 297,
1512
+ 7,
1513
+ 28,
1514
+ 7,
1515
+ 0,
1516
+ 2,
1517
+ 8,
1518
+ 245,
1519
+ 129,
1520
+ 46,
1521
+ 2,
1522
+ 1518,
1523
+ 0
1524
+ ],
1525
+ [
1526
+ 0,
1527
+ 45,
1528
+ 243,
1529
+ 34,
1530
+ 1146,
1531
+ 15,
1532
+ 65,
1533
+ 0,
1534
+ 1,
1535
+ 0,
1536
+ 431,
1537
+ 0,
1538
+ 14,
1539
+ 3,
1540
+ 0,
1541
+ 1,
1542
+ 34,
1543
+ 11,
1544
+ 4,
1545
+ 0
1546
+ ],
1547
+ [
1548
+ 0,
1549
+ 65,
1550
+ 2,
1551
+ 24,
1552
+ 0,
1553
+ 5570,
1554
+ 0,
1555
+ 0,
1556
+ 2,
1557
+ 0,
1558
+ 3,
1559
+ 0,
1560
+ 0,
1561
+ 0,
1562
+ 17,
1563
+ 8,
1564
+ 0,
1565
+ 98,
1566
+ 0,
1567
+ 0
1568
+ ],
1569
+ [
1570
+ 0,
1571
+ 39,
1572
+ 61,
1573
+ 4,
1574
+ 21,
1575
+ 4,
1576
+ 1621,
1577
+ 26,
1578
+ 240,
1579
+ 0,
1580
+ 5,
1581
+ 102,
1582
+ 2,
1583
+ 0,
1584
+ 86,
1585
+ 0,
1586
+ 3,
1587
+ 194,
1588
+ 0,
1589
+ 0
1590
+ ],
1591
+ [
1592
+ 0,
1593
+ 4,
1594
+ 1,
1595
+ 4,
1596
+ 0,
1597
+ 0,
1598
+ 15,
1599
+ 3940,
1600
+ 285,
1601
+ 100,
1602
+ 0,
1603
+ 13,
1604
+ 845,
1605
+ 6,
1606
+ 107,
1607
+ 13,
1608
+ 3,
1609
+ 0,
1610
+ 43,
1611
+ 0
1612
+ ],
1613
+ [
1614
+ 0,
1615
+ 11,
1616
+ 0,
1617
+ 0,
1618
+ 0,
1619
+ 0,
1620
+ 5,
1621
+ 0,
1622
+ 6562,
1623
+ 0,
1624
+ 0,
1625
+ 17,
1626
+ 0,
1627
+ 0,
1628
+ 2,
1629
+ 0,
1630
+ 1,
1631
+ 0,
1632
+ 0,
1633
+ 0
1634
+ ],
1635
+ [
1636
+ 0,
1637
+ 3,
1638
+ 20,
1639
+ 3,
1640
+ 0,
1641
+ 1,
1642
+ 0,
1643
+ 15,
1644
+ 0,
1645
+ 1895,
1646
+ 0,
1647
+ 0,
1648
+ 26,
1649
+ 151,
1650
+ 51,
1651
+ 1,
1652
+ 0,
1653
+ 0,
1654
+ 0,
1655
+ 0
1656
+ ],
1657
+ [
1658
+ 0,
1659
+ 18,
1660
+ 826,
1661
+ 1,
1662
+ 0,
1663
+ 1,
1664
+ 6,
1665
+ 0,
1666
+ 0,
1667
+ 4,
1668
+ 301,
1669
+ 0,
1670
+ 0,
1671
+ 0,
1672
+ 5,
1673
+ 0,
1674
+ 35,
1675
+ 5,
1676
+ 0,
1677
+ 0
1678
+ ],
1679
+ [
1680
+ 0,
1681
+ 9,
1682
+ 2,
1683
+ 0,
1684
+ 13,
1685
+ 0,
1686
+ 80,
1687
+ 10,
1688
+ 15,
1689
+ 0,
1690
+ 0,
1691
+ 6511,
1692
+ 0,
1693
+ 0,
1694
+ 27,
1695
+ 0,
1696
+ 67,
1697
+ 0,
1698
+ 8,
1699
+ 0
1700
+ ],
1701
+ [
1702
+ 0,
1703
+ 109,
1704
+ 19,
1705
+ 109,
1706
+ 1,
1707
+ 8,
1708
+ 7,
1709
+ 431,
1710
+ 459,
1711
+ 2819,
1712
+ 0,
1713
+ 93,
1714
+ 1505,
1715
+ 215,
1716
+ 168,
1717
+ 66,
1718
+ 10,
1719
+ 10,
1720
+ 17,
1721
+ 0
1722
+ ],
1723
+ [
1724
+ 0,
1725
+ 4,
1726
+ 33,
1727
+ 40,
1728
+ 0,
1729
+ 5,
1730
+ 2,
1731
+ 198,
1732
+ 5,
1733
+ 25,
1734
+ 0,
1735
+ 92,
1736
+ 219,
1737
+ 117,
1738
+ 30,
1739
+ 13,
1740
+ 7,
1741
+ 1,
1742
+ 5,
1743
+ 0
1744
+ ],
1745
+ [
1746
+ 0,
1747
+ 1057,
1748
+ 17,
1749
+ 37,
1750
+ 0,
1751
+ 9,
1752
+ 15,
1753
+ 52,
1754
+ 382,
1755
+ 0,
1756
+ 0,
1757
+ 53,
1758
+ 16,
1759
+ 0,
1760
+ 1684,
1761
+ 22,
1762
+ 132,
1763
+ 28,
1764
+ 0,
1765
+ 0
1766
+ ],
1767
+ [
1768
+ 0,
1769
+ 18,
1770
+ 10,
1771
+ 24,
1772
+ 13,
1773
+ 7,
1774
+ 0,
1775
+ 2,
1776
+ 0,
1777
+ 28,
1778
+ 0,
1779
+ 0,
1780
+ 0,
1781
+ 0,
1782
+ 0,
1783
+ 1806,
1784
+ 1,
1785
+ 0,
1786
+ 0,
1787
+ 0
1788
+ ],
1789
+ [
1790
+ 0,
1791
+ 52,
1792
+ 0,
1793
+ 5,
1794
+ 0,
1795
+ 0,
1796
+ 0,
1797
+ 71,
1798
+ 909,
1799
+ 0,
1800
+ 0,
1801
+ 3,
1802
+ 0,
1803
+ 0,
1804
+ 29,
1805
+ 0,
1806
+ 1758,
1807
+ 0,
1808
+ 2,
1809
+ 0
1810
+ ],
1811
+ [
1812
+ 0,
1813
+ 262,
1814
+ 324,
1815
+ 17,
1816
+ 16,
1817
+ 276,
1818
+ 2,
1819
+ 2,
1820
+ 0,
1821
+ 39,
1822
+ 272,
1823
+ 0,
1824
+ 0,
1825
+ 0,
1826
+ 2,
1827
+ 6,
1828
+ 31,
1829
+ 43,
1830
+ 3,
1831
+ 0
1832
+ ],
1833
+ [
1834
+ 0,
1835
+ 15,
1836
+ 2,
1837
+ 416,
1838
+ 0,
1839
+ 0,
1840
+ 1,
1841
+ 212,
1842
+ 0,
1843
+ 0,
1844
+ 0,
1845
+ 1,
1846
+ 47,
1847
+ 0,
1848
+ 131,
1849
+ 51,
1850
+ 26,
1851
+ 0,
1852
+ 624,
1853
+ 0
1854
+ ],
1855
+ [
1856
+ 0,
1857
+ 0,
1858
+ 0,
1859
+ 0,
1860
+ 0,
1861
+ 0,
1862
+ 0,
1863
+ 0,
1864
+ 0,
1865
+ 0,
1866
+ 0,
1867
+ 0,
1868
+ 0,
1869
+ 0,
1870
+ 0,
1871
+ 0,
1872
+ 0,
1873
+ 0,
1874
+ 0,
1875
+ 0
1876
+ ]
1877
+ ]
1878
+ },
1879
+ "replace:0.1": {
1880
+ "miou": 0.5113629710124012,
1881
+ "oa": 0.7790404987093111,
1882
+ "macro_f1": 0.6255474200669079,
1883
+ "kappa": 0.7550350100044476,
1884
+ "per_class_iou": [
1885
+ 0.7811167945439045,
1886
+ 0.8054339517754152,
1887
+ 0.7692098832473527,
1888
+ 0.5002143163309044,
1889
+ 0.902316539769966,
1890
+ 0.5940850277264326,
1891
+ 0.5970888355342137,
1892
+ 0.6943092870742543,
1893
+ 0.36634414722064124,
1894
+ 0.15201654601861428,
1895
+ 0.8627165718820262,
1896
+ 0.20307776861775212,
1897
+ 0.10042918454935622,
1898
+ 0.32927068999410264,
1899
+ 0.8150994575045208,
1900
+ 0.5095632315158436,
1901
+ 0.023593466424682397,
1902
+ 0.1986477784932389
1903
+ ],
1904
+ "confusion_matrix": [
1905
+ [
1906
+ 0,
1907
+ 0,
1908
+ 0,
1909
+ 0,
1910
+ 0,
1911
+ 0,
1912
+ 0,
1913
+ 0,
1914
+ 0,
1915
+ 0,
1916
+ 0,
1917
+ 0,
1918
+ 0,
1919
+ 0,
1920
+ 0,
1921
+ 0,
1922
+ 0,
1923
+ 0,
1924
+ 0,
1925
+ 0
1926
+ ],
1927
+ [
1928
+ 0,
1929
+ 14660,
1930
+ 129,
1931
+ 53,
1932
+ 94,
1933
+ 19,
1934
+ 56,
1935
+ 9,
1936
+ 496,
1937
+ 2,
1938
+ 3,
1939
+ 225,
1940
+ 92,
1941
+ 1,
1942
+ 648,
1943
+ 30,
1944
+ 253,
1945
+ 5,
1946
+ 5,
1947
+ 0
1948
+ ],
1949
+ [
1950
+ 0,
1951
+ 110,
1952
+ 11591,
1953
+ 72,
1954
+ 65,
1955
+ 21,
1956
+ 89,
1957
+ 5,
1958
+ 0,
1959
+ 22,
1960
+ 137,
1961
+ 216,
1962
+ 17,
1963
+ 12,
1964
+ 93,
1965
+ 0,
1966
+ 11,
1967
+ 7,
1968
+ 9,
1969
+ 0
1970
+ ],
1971
+ [
1972
+ 0,
1973
+ 169,
1974
+ 107,
1975
+ 11332,
1976
+ 50,
1977
+ 12,
1978
+ 5,
1979
+ 261,
1980
+ 6,
1981
+ 33,
1982
+ 4,
1983
+ 0,
1984
+ 2,
1985
+ 8,
1986
+ 216,
1987
+ 124,
1988
+ 43,
1989
+ 3,
1990
+ 1493,
1991
+ 0
1992
+ ],
1993
+ [
1994
+ 0,
1995
+ 45,
1996
+ 284,
1997
+ 34,
1998
+ 1167,
1999
+ 14,
2000
+ 50,
2001
+ 0,
2002
+ 1,
2003
+ 0,
2004
+ 387,
2005
+ 0,
2006
+ 14,
2007
+ 3,
2008
+ 0,
2009
+ 1,
2010
+ 32,
2011
+ 11,
2012
+ 4,
2013
+ 0
2014
+ ],
2015
+ [
2016
+ 0,
2017
+ 66,
2018
+ 2,
2019
+ 23,
2020
+ 0,
2021
+ 5570,
2022
+ 0,
2023
+ 0,
2024
+ 1,
2025
+ 0,
2026
+ 1,
2027
+ 0,
2028
+ 0,
2029
+ 0,
2030
+ 18,
2031
+ 8,
2032
+ 0,
2033
+ 100,
2034
+ 0,
2035
+ 0
2036
+ ],
2037
+ [
2038
+ 0,
2039
+ 48,
2040
+ 60,
2041
+ 3,
2042
+ 18,
2043
+ 3,
2044
+ 1607,
2045
+ 31,
2046
+ 249,
2047
+ 0,
2048
+ 4,
2049
+ 100,
2050
+ 0,
2051
+ 0,
2052
+ 85,
2053
+ 0,
2054
+ 4,
2055
+ 196,
2056
+ 0,
2057
+ 0
2058
+ ],
2059
+ [
2060
+ 0,
2061
+ 4,
2062
+ 1,
2063
+ 4,
2064
+ 0,
2065
+ 0,
2066
+ 15,
2067
+ 3979,
2068
+ 314,
2069
+ 102,
2070
+ 0,
2071
+ 12,
2072
+ 792,
2073
+ 3,
2074
+ 103,
2075
+ 13,
2076
+ 4,
2077
+ 0,
2078
+ 33,
2079
+ 0
2080
+ ],
2081
+ [
2082
+ 0,
2083
+ 12,
2084
+ 0,
2085
+ 0,
2086
+ 0,
2087
+ 0,
2088
+ 4,
2089
+ 0,
2090
+ 6564,
2091
+ 0,
2092
+ 0,
2093
+ 17,
2094
+ 0,
2095
+ 0,
2096
+ 0,
2097
+ 0,
2098
+ 1,
2099
+ 0,
2100
+ 0,
2101
+ 0
2102
+ ],
2103
+ [
2104
+ 0,
2105
+ 3,
2106
+ 19,
2107
+ 3,
2108
+ 0,
2109
+ 1,
2110
+ 0,
2111
+ 13,
2112
+ 0,
2113
+ 1931,
2114
+ 0,
2115
+ 0,
2116
+ 25,
2117
+ 128,
2118
+ 43,
2119
+ 0,
2120
+ 0,
2121
+ 0,
2122
+ 0,
2123
+ 0
2124
+ ],
2125
+ [
2126
+ 0,
2127
+ 20,
2128
+ 833,
2129
+ 1,
2130
+ 0,
2131
+ 1,
2132
+ 5,
2133
+ 0,
2134
+ 0,
2135
+ 4,
2136
+ 294,
2137
+ 0,
2138
+ 0,
2139
+ 0,
2140
+ 5,
2141
+ 0,
2142
+ 34,
2143
+ 5,
2144
+ 0,
2145
+ 0
2146
+ ],
2147
+ [
2148
+ 0,
2149
+ 11,
2150
+ 2,
2151
+ 0,
2152
+ 32,
2153
+ 0,
2154
+ 55,
2155
+ 10,
2156
+ 15,
2157
+ 0,
2158
+ 0,
2159
+ 6523,
2160
+ 0,
2161
+ 0,
2162
+ 21,
2163
+ 0,
2164
+ 65,
2165
+ 0,
2166
+ 8,
2167
+ 0
2168
+ ],
2169
+ [
2170
+ 0,
2171
+ 109,
2172
+ 19,
2173
+ 122,
2174
+ 1,
2175
+ 7,
2176
+ 5,
2177
+ 436,
2178
+ 467,
2179
+ 2845,
2180
+ 0,
2181
+ 98,
2182
+ 1478,
2183
+ 214,
2184
+ 160,
2185
+ 44,
2186
+ 11,
2187
+ 9,
2188
+ 21,
2189
+ 0
2190
+ ],
2191
+ [
2192
+ 0,
2193
+ 3,
2194
+ 34,
2195
+ 41,
2196
+ 0,
2197
+ 5,
2198
+ 2,
2199
+ 198,
2200
+ 4,
2201
+ 24,
2202
+ 0,
2203
+ 90,
2204
+ 223,
2205
+ 117,
2206
+ 30,
2207
+ 12,
2208
+ 8,
2209
+ 1,
2210
+ 4,
2211
+ 0
2212
+ ],
2213
+ [
2214
+ 0,
2215
+ 1051,
2216
+ 17,
2217
+ 37,
2218
+ 0,
2219
+ 5,
2220
+ 10,
2221
+ 53,
2222
+ 410,
2223
+ 0,
2224
+ 0,
2225
+ 57,
2226
+ 13,
2227
+ 0,
2228
+ 1675,
2229
+ 15,
2230
+ 140,
2231
+ 21,
2232
+ 0,
2233
+ 0
2234
+ ],
2235
+ [
2236
+ 0,
2237
+ 18,
2238
+ 10,
2239
+ 22,
2240
+ 12,
2241
+ 7,
2242
+ 0,
2243
+ 2,
2244
+ 0,
2245
+ 34,
2246
+ 0,
2247
+ 0,
2248
+ 0,
2249
+ 0,
2250
+ 0,
2251
+ 1803,
2252
+ 1,
2253
+ 0,
2254
+ 0,
2255
+ 0
2256
+ ],
2257
+ [
2258
+ 0,
2259
+ 51,
2260
+ 0,
2261
+ 6,
2262
+ 0,
2263
+ 0,
2264
+ 0,
2265
+ 63,
2266
+ 893,
2267
+ 0,
2268
+ 0,
2269
+ 3,
2270
+ 0,
2271
+ 0,
2272
+ 28,
2273
+ 0,
2274
+ 1785,
2275
+ 0,
2276
+ 0,
2277
+ 0
2278
+ ],
2279
+ [
2280
+ 0,
2281
+ 253,
2282
+ 396,
2283
+ 26,
2284
+ 14,
2285
+ 289,
2286
+ 0,
2287
+ 2,
2288
+ 0,
2289
+ 39,
2290
+ 196,
2291
+ 0,
2292
+ 0,
2293
+ 0,
2294
+ 2,
2295
+ 5,
2296
+ 31,
2297
+ 39,
2298
+ 3,
2299
+ 0
2300
+ ],
2301
+ [
2302
+ 0,
2303
+ 15,
2304
+ 1,
2305
+ 417,
2306
+ 0,
2307
+ 0,
2308
+ 1,
2309
+ 202,
2310
+ 0,
2311
+ 0,
2312
+ 0,
2313
+ 1,
2314
+ 54,
2315
+ 0,
2316
+ 131,
2317
+ 51,
2318
+ 36,
2319
+ 0,
2320
+ 617,
2321
+ 0
2322
+ ],
2323
+ [
2324
+ 0,
2325
+ 0,
2326
+ 0,
2327
+ 0,
2328
+ 0,
2329
+ 0,
2330
+ 0,
2331
+ 0,
2332
+ 0,
2333
+ 0,
2334
+ 0,
2335
+ 0,
2336
+ 0,
2337
+ 0,
2338
+ 0,
2339
+ 0,
2340
+ 0,
2341
+ 0,
2342
+ 0,
2343
+ 0
2344
+ ]
2345
+ ]
2346
+ },
2347
+ "replace:0.25": {
2348
+ "miou": 0.5182835011064869,
2349
+ "oa": 0.785435031758443,
2350
+ "macro_f1": 0.6316003078697231,
2351
+ "kappa": 0.7618478524534972,
2352
+ "per_class_iou": [
2353
+ 0.7832996704581694,
2354
+ 0.8062435677530018,
2355
+ 0.7874746106973595,
2356
+ 0.5129784425868896,
2357
+ 0.9010205734650899,
2358
+ 0.601304681504221,
2359
+ 0.6181900726392252,
2360
+ 0.6893835976057965,
2361
+ 0.38136389254179975,
2362
+ 0.16567342073897498,
2363
+ 0.8686102236421726,
2364
+ 0.19648829431438128,
2365
+ 0.11090742438130156,
2366
+ 0.3352238201336844,
2367
+ 0.8365921787709497,
2368
+ 0.5123804164321891,
2369
+ 0.018213866039952998,
2370
+ 0.20375426621160408
2371
+ ],
2372
+ "confusion_matrix": [
2373
+ [
2374
+ 0,
2375
+ 0,
2376
+ 0,
2377
+ 0,
2378
+ 0,
2379
+ 0,
2380
+ 0,
2381
+ 0,
2382
+ 0,
2383
+ 0,
2384
+ 0,
2385
+ 0,
2386
+ 0,
2387
+ 0,
2388
+ 0,
2389
+ 0,
2390
+ 0,
2391
+ 0,
2392
+ 0,
2393
+ 0
2394
+ ],
2395
+ [
2396
+ 0,
2397
+ 14737,
2398
+ 116,
2399
+ 50,
2400
+ 67,
2401
+ 18,
2402
+ 46,
2403
+ 5,
2404
+ 478,
2405
+ 1,
2406
+ 3,
2407
+ 212,
2408
+ 90,
2409
+ 1,
2410
+ 639,
2411
+ 24,
2412
+ 284,
2413
+ 5,
2414
+ 4,
2415
+ 0
2416
+ ],
2417
+ [
2418
+ 0,
2419
+ 127,
2420
+ 11751,
2421
+ 77,
2422
+ 18,
2423
+ 16,
2424
+ 74,
2425
+ 5,
2426
+ 0,
2427
+ 20,
2428
+ 68,
2429
+ 182,
2430
+ 16,
2431
+ 7,
2432
+ 91,
2433
+ 0,
2434
+ 11,
2435
+ 6,
2436
+ 8,
2437
+ 0
2438
+ ],
2439
+ [
2440
+ 0,
2441
+ 176,
2442
+ 119,
2443
+ 11631,
2444
+ 32,
2445
+ 9,
2446
+ 3,
2447
+ 211,
2448
+ 0,
2449
+ 35,
2450
+ 0,
2451
+ 0,
2452
+ 3,
2453
+ 7,
2454
+ 133,
2455
+ 123,
2456
+ 43,
2457
+ 5,
2458
+ 1338,
2459
+ 0
2460
+ ],
2461
+ [
2462
+ 0,
2463
+ 39,
2464
+ 369,
2465
+ 30,
2466
+ 1166,
2467
+ 26,
2468
+ 12,
2469
+ 0,
2470
+ 0,
2471
+ 0,
2472
+ 295,
2473
+ 0,
2474
+ 18,
2475
+ 9,
2476
+ 0,
2477
+ 1,
2478
+ 21,
2479
+ 58,
2480
+ 3,
2481
+ 0
2482
+ ],
2483
+ [
2484
+ 0,
2485
+ 70,
2486
+ 2,
2487
+ 24,
2488
+ 0,
2489
+ 5562,
2490
+ 0,
2491
+ 0,
2492
+ 0,
2493
+ 0,
2494
+ 0,
2495
+ 0,
2496
+ 0,
2497
+ 0,
2498
+ 19,
2499
+ 7,
2500
+ 1,
2501
+ 104,
2502
+ 0,
2503
+ 0
2504
+ ],
2505
+ [
2506
+ 0,
2507
+ 62,
2508
+ 61,
2509
+ 3,
2510
+ 9,
2511
+ 1,
2512
+ 1567,
2513
+ 42,
2514
+ 265,
2515
+ 0,
2516
+ 4,
2517
+ 107,
2518
+ 0,
2519
+ 0,
2520
+ 85,
2521
+ 0,
2522
+ 5,
2523
+ 197,
2524
+ 0,
2525
+ 0
2526
+ ],
2527
+ [
2528
+ 0,
2529
+ 5,
2530
+ 1,
2531
+ 7,
2532
+ 0,
2533
+ 0,
2534
+ 14,
2535
+ 4085,
2536
+ 376,
2537
+ 96,
2538
+ 0,
2539
+ 10,
2540
+ 667,
2541
+ 1,
2542
+ 91,
2543
+ 4,
2544
+ 4,
2545
+ 0,
2546
+ 18,
2547
+ 0
2548
+ ],
2549
+ [
2550
+ 0,
2551
+ 19,
2552
+ 0,
2553
+ 0,
2554
+ 0,
2555
+ 0,
2556
+ 2,
2557
+ 0,
2558
+ 6565,
2559
+ 0,
2560
+ 0,
2561
+ 10,
2562
+ 0,
2563
+ 0,
2564
+ 1,
2565
+ 0,
2566
+ 1,
2567
+ 0,
2568
+ 0,
2569
+ 0
2570
+ ],
2571
+ [
2572
+ 0,
2573
+ 3,
2574
+ 19,
2575
+ 3,
2576
+ 0,
2577
+ 1,
2578
+ 0,
2579
+ 15,
2580
+ 0,
2581
+ 2030,
2582
+ 0,
2583
+ 0,
2584
+ 22,
2585
+ 62,
2586
+ 11,
2587
+ 0,
2588
+ 0,
2589
+ 0,
2590
+ 0,
2591
+ 0
2592
+ ],
2593
+ [
2594
+ 0,
2595
+ 25,
2596
+ 846,
2597
+ 1,
2598
+ 2,
2599
+ 1,
2600
+ 3,
2601
+ 0,
2602
+ 0,
2603
+ 4,
2604
+ 278,
2605
+ 0,
2606
+ 0,
2607
+ 0,
2608
+ 5,
2609
+ 0,
2610
+ 32,
2611
+ 5,
2612
+ 0,
2613
+ 0
2614
+ ],
2615
+ [
2616
+ 0,
2617
+ 14,
2618
+ 1,
2619
+ 0,
2620
+ 65,
2621
+ 0,
2622
+ 21,
2623
+ 9,
2624
+ 10,
2625
+ 0,
2626
+ 0,
2627
+ 6525,
2628
+ 0,
2629
+ 0,
2630
+ 20,
2631
+ 0,
2632
+ 69,
2633
+ 0,
2634
+ 8,
2635
+ 0
2636
+ ],
2637
+ [
2638
+ 0,
2639
+ 107,
2640
+ 18,
2641
+ 139,
2642
+ 1,
2643
+ 5,
2644
+ 8,
2645
+ 448,
2646
+ 476,
2647
+ 2894,
2648
+ 0,
2649
+ 113,
2650
+ 1410,
2651
+ 208,
2652
+ 158,
2653
+ 16,
2654
+ 9,
2655
+ 11,
2656
+ 25,
2657
+ 0
2658
+ ],
2659
+ [
2660
+ 0,
2661
+ 1,
2662
+ 39,
2663
+ 40,
2664
+ 1,
2665
+ 2,
2666
+ 3,
2667
+ 209,
2668
+ 7,
2669
+ 28,
2670
+ 1,
2671
+ 76,
2672
+ 233,
2673
+ 121,
2674
+ 22,
2675
+ 9,
2676
+ 4,
2677
+ 0,
2678
+ 0,
2679
+ 0
2680
+ ],
2681
+ [
2682
+ 0,
2683
+ 1054,
2684
+ 17,
2685
+ 36,
2686
+ 0,
2687
+ 2,
2688
+ 11,
2689
+ 54,
2690
+ 440,
2691
+ 0,
2692
+ 0,
2693
+ 54,
2694
+ 10,
2695
+ 0,
2696
+ 1655,
2697
+ 0,
2698
+ 155,
2699
+ 16,
2700
+ 0,
2701
+ 0
2702
+ ],
2703
+ [
2704
+ 0,
2705
+ 25,
2706
+ 10,
2707
+ 22,
2708
+ 10,
2709
+ 6,
2710
+ 0,
2711
+ 2,
2712
+ 0,
2713
+ 36,
2714
+ 0,
2715
+ 0,
2716
+ 0,
2717
+ 0,
2718
+ 0,
2719
+ 1797,
2720
+ 1,
2721
+ 0,
2722
+ 0,
2723
+ 0
2724
+ ],
2725
+ [
2726
+ 0,
2727
+ 49,
2728
+ 0,
2729
+ 6,
2730
+ 0,
2731
+ 0,
2732
+ 0,
2733
+ 46,
2734
+ 871,
2735
+ 0,
2736
+ 0,
2737
+ 5,
2738
+ 0,
2739
+ 0,
2740
+ 31,
2741
+ 0,
2742
+ 1821,
2743
+ 0,
2744
+ 0,
2745
+ 0
2746
+ ],
2747
+ [
2748
+ 0,
2749
+ 241,
2750
+ 480,
2751
+ 43,
2752
+ 21,
2753
+ 297,
2754
+ 0,
2755
+ 0,
2756
+ 0,
2757
+ 43,
2758
+ 105,
2759
+ 0,
2760
+ 0,
2761
+ 0,
2762
+ 0,
2763
+ 5,
2764
+ 29,
2765
+ 31,
2766
+ 0,
2767
+ 0
2768
+ ],
2769
+ [
2770
+ 0,
2771
+ 17,
2772
+ 0,
2773
+ 421,
2774
+ 0,
2775
+ 0,
2776
+ 1,
2777
+ 183,
2778
+ 2,
2779
+ 0,
2780
+ 0,
2781
+ 1,
2782
+ 71,
2783
+ 0,
2784
+ 127,
2785
+ 50,
2786
+ 56,
2787
+ 0,
2788
+ 597,
2789
+ 0
2790
+ ],
2791
+ [
2792
+ 0,
2793
+ 0,
2794
+ 0,
2795
+ 0,
2796
+ 0,
2797
+ 0,
2798
+ 0,
2799
+ 0,
2800
+ 0,
2801
+ 0,
2802
+ 0,
2803
+ 0,
2804
+ 0,
2805
+ 0,
2806
+ 0,
2807
+ 0,
2808
+ 0,
2809
+ 0,
2810
+ 0,
2811
+ 0
2812
+ ]
2813
+ ]
2814
+ },
2815
+ "replace:0.5": {
2816
+ "miou": 0.5209658545455325,
2817
+ "oa": 0.7927828536540954,
2818
+ "macro_f1": 0.6373933424943236,
2819
+ "kappa": 0.769462142403631,
2820
+ "per_class_iou": [
2821
+ 0.7878516016676341,
2822
+ 0.7888686007979983,
2823
+ 0.8445144427317204,
2824
+ 0.49109856708640903,
2825
+ 0.8941347083467612,
2826
+ 0.5404040404040404,
2827
+ 0.6748503912843333,
2828
+ 0.6828175471501511,
2829
+ 0.3781158357771261,
2830
+ 0.17151607963246554,
2831
+ 0.8444444444444444,
2832
+ 0.12860438292964244,
2833
+ 0.20142421159715157,
2834
+ 0.36407237846086765,
2835
+ 0.7722902097902098,
2836
+ 0.509185632026323,
2837
+ 0.008,
2838
+ 0.2951923076923077
2839
+ ],
2840
+ "confusion_matrix": [
2841
+ [
2842
+ 0,
2843
+ 0,
2844
+ 0,
2845
+ 0,
2846
+ 0,
2847
+ 0,
2848
+ 0,
2849
+ 0,
2850
+ 0,
2851
+ 0,
2852
+ 0,
2853
+ 0,
2854
+ 0,
2855
+ 0,
2856
+ 0,
2857
+ 0,
2858
+ 0,
2859
+ 0,
2860
+ 0,
2861
+ 0
2862
+ ],
2863
+ [
2864
+ 0,
2865
+ 14929,
2866
+ 93,
2867
+ 54,
2868
+ 8,
2869
+ 14,
2870
+ 11,
2871
+ 0,
2872
+ 480,
2873
+ 0,
2874
+ 3,
2875
+ 217,
2876
+ 79,
2877
+ 2,
2878
+ 547,
2879
+ 17,
2880
+ 318,
2881
+ 3,
2882
+ 5,
2883
+ 0
2884
+ ],
2885
+ [
2886
+ 0,
2887
+ 234,
2888
+ 11665,
2889
+ 95,
2890
+ 42,
2891
+ 16,
2892
+ 74,
2893
+ 3,
2894
+ 0,
2895
+ 18,
2896
+ 29,
2897
+ 178,
2898
+ 6,
2899
+ 1,
2900
+ 89,
2901
+ 0,
2902
+ 15,
2903
+ 4,
2904
+ 8,
2905
+ 0
2906
+ ],
2907
+ [
2908
+ 0,
2909
+ 174,
2910
+ 133,
2911
+ 12601,
2912
+ 14,
2913
+ 8,
2914
+ 2,
2915
+ 155,
2916
+ 1,
2917
+ 37,
2918
+ 8,
2919
+ 0,
2920
+ 12,
2921
+ 1,
2922
+ 53,
2923
+ 161,
2924
+ 35,
2925
+ 38,
2926
+ 435,
2927
+ 0
2928
+ ],
2929
+ [
2930
+ 0,
2931
+ 31,
2932
+ 527,
2933
+ 20,
2934
+ 1131,
2935
+ 48,
2936
+ 0,
2937
+ 0,
2938
+ 0,
2939
+ 0,
2940
+ 31,
2941
+ 0,
2942
+ 24,
2943
+ 9,
2944
+ 0,
2945
+ 5,
2946
+ 3,
2947
+ 218,
2948
+ 0,
2949
+ 0
2950
+ ],
2951
+ [
2952
+ 0,
2953
+ 79,
2954
+ 1,
2955
+ 20,
2956
+ 0,
2957
+ 5549,
2958
+ 0,
2959
+ 0,
2960
+ 0,
2961
+ 0,
2962
+ 0,
2963
+ 0,
2964
+ 0,
2965
+ 0,
2966
+ 19,
2967
+ 5,
2968
+ 0,
2969
+ 116,
2970
+ 0,
2971
+ 0
2972
+ ],
2973
+ [
2974
+ 0,
2975
+ 106,
2976
+ 51,
2977
+ 4,
2978
+ 2,
2979
+ 0,
2980
+ 1391,
2981
+ 70,
2982
+ 253,
2983
+ 0,
2984
+ 3,
2985
+ 266,
2986
+ 0,
2987
+ 0,
2988
+ 85,
2989
+ 0,
2990
+ 5,
2991
+ 172,
2992
+ 0,
2993
+ 0
2994
+ ],
2995
+ [
2996
+ 0,
2997
+ 13,
2998
+ 0,
2999
+ 14,
3000
+ 0,
3001
+ 0,
3002
+ 14,
3003
+ 4398,
3004
+ 485,
3005
+ 19,
3006
+ 0,
3007
+ 7,
3008
+ 419,
3009
+ 0,
3010
+ 7,
3011
+ 0,
3012
+ 3,
3013
+ 0,
3014
+ 0,
3015
+ 0
3016
+ ],
3017
+ [
3018
+ 0,
3019
+ 34,
3020
+ 0,
3021
+ 0,
3022
+ 0,
3023
+ 0,
3024
+ 0,
3025
+ 0,
3026
+ 6553,
3027
+ 0,
3028
+ 0,
3029
+ 8,
3030
+ 0,
3031
+ 0,
3032
+ 2,
3033
+ 0,
3034
+ 1,
3035
+ 0,
3036
+ 0,
3037
+ 0
3038
+ ],
3039
+ [
3040
+ 0,
3041
+ 6,
3042
+ 17,
3043
+ 7,
3044
+ 2,
3045
+ 3,
3046
+ 0,
3047
+ 26,
3048
+ 0,
3049
+ 2063,
3050
+ 0,
3051
+ 0,
3052
+ 12,
3053
+ 17,
3054
+ 8,
3055
+ 5,
3056
+ 0,
3057
+ 0,
3058
+ 0,
3059
+ 0
3060
+ ],
3061
+ [
3062
+ 0,
3063
+ 44,
3064
+ 862,
3065
+ 6,
3066
+ 24,
3067
+ 0,
3068
+ 2,
3069
+ 0,
3070
+ 0,
3071
+ 4,
3072
+ 224,
3073
+ 0,
3074
+ 0,
3075
+ 0,
3076
+ 3,
3077
+ 0,
3078
+ 24,
3079
+ 9,
3080
+ 0,
3081
+ 0
3082
+ ],
3083
+ [
3084
+ 0,
3085
+ 18,
3086
+ 0,
3087
+ 0,
3088
+ 108,
3089
+ 0,
3090
+ 10,
3091
+ 9,
3092
+ 11,
3093
+ 0,
3094
+ 0,
3095
+ 6498,
3096
+ 0,
3097
+ 0,
3098
+ 16,
3099
+ 0,
3100
+ 69,
3101
+ 0,
3102
+ 3,
3103
+ 0
3104
+ ],
3105
+ [
3106
+ 0,
3107
+ 95,
3108
+ 20,
3109
+ 219,
3110
+ 0,
3111
+ 0,
3112
+ 34,
3113
+ 502,
3114
+ 502,
3115
+ 3103,
3116
+ 18,
3117
+ 153,
3118
+ 892,
3119
+ 157,
3120
+ 81,
3121
+ 137,
3122
+ 18,
3123
+ 12,
3124
+ 103,
3125
+ 0
3126
+ ],
3127
+ [
3128
+ 0,
3129
+ 8,
3130
+ 29,
3131
+ 44,
3132
+ 0,
3133
+ 0,
3134
+ 7,
3135
+ 170,
3136
+ 9,
3137
+ 27,
3138
+ 7,
3139
+ 48,
3140
+ 223,
3141
+ 198,
3142
+ 16,
3143
+ 3,
3144
+ 6,
3145
+ 1,
3146
+ 0,
3147
+ 0
3148
+ ],
3149
+ [
3150
+ 0,
3151
+ 1045,
3152
+ 15,
3153
+ 37,
3154
+ 0,
3155
+ 0,
3156
+ 12,
3157
+ 40,
3158
+ 410,
3159
+ 0,
3160
+ 0,
3161
+ 51,
3162
+ 0,
3163
+ 0,
3164
+ 1670,
3165
+ 0,
3166
+ 223,
3167
+ 1,
3168
+ 0,
3169
+ 0
3170
+ ],
3171
+ [
3172
+ 0,
3173
+ 36,
3174
+ 4,
3175
+ 40,
3176
+ 1,
3177
+ 5,
3178
+ 0,
3179
+ 0,
3180
+ 0,
3181
+ 48,
3182
+ 0,
3183
+ 0,
3184
+ 2,
3185
+ 0,
3186
+ 0,
3187
+ 1767,
3188
+ 0,
3189
+ 6,
3190
+ 0,
3191
+ 0
3192
+ ],
3193
+ [
3194
+ 0,
3195
+ 39,
3196
+ 0,
3197
+ 16,
3198
+ 0,
3199
+ 0,
3200
+ 0,
3201
+ 14,
3202
+ 837,
3203
+ 0,
3204
+ 0,
3205
+ 17,
3206
+ 0,
3207
+ 0,
3208
+ 49,
3209
+ 0,
3210
+ 1857,
3211
+ 0,
3212
+ 0,
3213
+ 0
3214
+ ],
3215
+ [
3216
+ 0,
3217
+ 183,
3218
+ 558,
3219
+ 113,
3220
+ 55,
3221
+ 323,
3222
+ 0,
3223
+ 0,
3224
+ 0,
3225
+ 34,
3226
+ 5,
3227
+ 0,
3228
+ 0,
3229
+ 0,
3230
+ 0,
3231
+ 2,
3232
+ 7,
3233
+ 15,
3234
+ 0,
3235
+ 0
3236
+ ],
3237
+ [
3238
+ 0,
3239
+ 24,
3240
+ 0,
3241
+ 364,
3242
+ 0,
3243
+ 0,
3244
+ 0,
3245
+ 149,
3246
+ 11,
3247
+ 0,
3248
+ 0,
3249
+ 8,
3250
+ 113,
3251
+ 0,
3252
+ 108,
3253
+ 44,
3254
+ 91,
3255
+ 0,
3256
+ 614,
3257
+ 0
3258
+ ],
3259
+ [
3260
+ 0,
3261
+ 0,
3262
+ 0,
3263
+ 0,
3264
+ 0,
3265
+ 0,
3266
+ 0,
3267
+ 0,
3268
+ 0,
3269
+ 0,
3270
+ 0,
3271
+ 0,
3272
+ 0,
3273
+ 0,
3274
+ 0,
3275
+ 0,
3276
+ 0,
3277
+ 0,
3278
+ 0,
3279
+ 0
3280
+ ]
3281
+ ]
3282
+ },
3283
+ "add:0.1": {
3284
+ "miou": 0.5212361736883501,
3285
+ "oa": 0.7897301871231028,
3286
+ "macro_f1": 0.634597286240264,
3287
+ "kappa": 0.7664244164888394,
3288
+ "per_class_iou": [
3289
+ 0.7848168654173765,
3290
+ 0.8042692491304644,
3291
+ 0.8103925940941955,
3292
+ 0.5514606741573034,
3293
+ 0.8984173126614987,
3294
+ 0.580632565404139,
3295
+ 0.6315869631434663,
3296
+ 0.6881551362683438,
3297
+ 0.38625725519565624,
3298
+ 0.15341264871634314,
3299
+ 0.854807063440157,
3300
+ 0.19133980036552792,
3301
+ 0.11556829035339064,
3302
+ 0.3336673346693387,
3303
+ 0.8366013071895425,
3304
+ 0.5090754395916052,
3305
+ 0.019867549668874173,
3306
+ 0.23192307692307693
3307
+ ],
3308
+ "confusion_matrix": [
3309
+ [
3310
+ 0,
3311
+ 0,
3312
+ 0,
3313
+ 0,
3314
+ 0,
3315
+ 0,
3316
+ 0,
3317
+ 0,
3318
+ 0,
3319
+ 0,
3320
+ 0,
3321
+ 0,
3322
+ 0,
3323
+ 0,
3324
+ 0,
3325
+ 0,
3326
+ 0,
3327
+ 0,
3328
+ 0,
3329
+ 0
3330
+ ],
3331
+ [
3332
+ 0,
3333
+ 14742,
3334
+ 118,
3335
+ 47,
3336
+ 30,
3337
+ 16,
3338
+ 41,
3339
+ 5,
3340
+ 481,
3341
+ 0,
3342
+ 3,
3343
+ 209,
3344
+ 87,
3345
+ 3,
3346
+ 710,
3347
+ 19,
3348
+ 260,
3349
+ 5,
3350
+ 4,
3351
+ 0
3352
+ ],
3353
+ [
3354
+ 0,
3355
+ 113,
3356
+ 11793,
3357
+ 83,
3358
+ 15,
3359
+ 16,
3360
+ 55,
3361
+ 4,
3362
+ 0,
3363
+ 19,
3364
+ 49,
3365
+ 186,
3366
+ 21,
3367
+ 4,
3368
+ 99,
3369
+ 0,
3370
+ 8,
3371
+ 4,
3372
+ 8,
3373
+ 0
3374
+ ],
3375
+ [
3376
+ 0,
3377
+ 160,
3378
+ 129,
3379
+ 11993,
3380
+ 23,
3381
+ 11,
3382
+ 3,
3383
+ 183,
3384
+ 0,
3385
+ 33,
3386
+ 2,
3387
+ 0,
3388
+ 2,
3389
+ 6,
3390
+ 162,
3391
+ 130,
3392
+ 35,
3393
+ 4,
3394
+ 992,
3395
+ 0
3396
+ ],
3397
+ [
3398
+ 0,
3399
+ 22,
3400
+ 366,
3401
+ 31,
3402
+ 1227,
3403
+ 46,
3404
+ 7,
3405
+ 0,
3406
+ 0,
3407
+ 0,
3408
+ 250,
3409
+ 0,
3410
+ 14,
3411
+ 9,
3412
+ 0,
3413
+ 0,
3414
+ 20,
3415
+ 52,
3416
+ 3,
3417
+ 0
3418
+ ],
3419
+ [
3420
+ 0,
3421
+ 73,
3422
+ 5,
3423
+ 25,
3424
+ 0,
3425
+ 5563,
3426
+ 0,
3427
+ 0,
3428
+ 0,
3429
+ 0,
3430
+ 0,
3431
+ 0,
3432
+ 0,
3433
+ 0,
3434
+ 19,
3435
+ 8,
3436
+ 2,
3437
+ 94,
3438
+ 0,
3439
+ 0
3440
+ ],
3441
+ [
3442
+ 0,
3443
+ 75,
3444
+ 73,
3445
+ 3,
3446
+ 14,
3447
+ 0,
3448
+ 1487,
3449
+ 33,
3450
+ 240,
3451
+ 0,
3452
+ 2,
3453
+ 217,
3454
+ 0,
3455
+ 0,
3456
+ 82,
3457
+ 0,
3458
+ 4,
3459
+ 178,
3460
+ 0,
3461
+ 0
3462
+ ],
3463
+ [
3464
+ 0,
3465
+ 6,
3466
+ 1,
3467
+ 11,
3468
+ 0,
3469
+ 0,
3470
+ 14,
3471
+ 4147,
3472
+ 374,
3473
+ 107,
3474
+ 0,
3475
+ 8,
3476
+ 619,
3477
+ 1,
3478
+ 73,
3479
+ 1,
3480
+ 4,
3481
+ 0,
3482
+ 13,
3483
+ 0
3484
+ ],
3485
+ [
3486
+ 0,
3487
+ 24,
3488
+ 0,
3489
+ 0,
3490
+ 0,
3491
+ 0,
3492
+ 0,
3493
+ 0,
3494
+ 6565,
3495
+ 0,
3496
+ 0,
3497
+ 8,
3498
+ 0,
3499
+ 0,
3500
+ 0,
3501
+ 0,
3502
+ 1,
3503
+ 0,
3504
+ 0,
3505
+ 0
3506
+ ],
3507
+ [
3508
+ 0,
3509
+ 4,
3510
+ 21,
3511
+ 3,
3512
+ 0,
3513
+ 1,
3514
+ 0,
3515
+ 22,
3516
+ 0,
3517
+ 2063,
3518
+ 0,
3519
+ 0,
3520
+ 25,
3521
+ 23,
3522
+ 4,
3523
+ 0,
3524
+ 0,
3525
+ 0,
3526
+ 0,
3527
+ 0
3528
+ ],
3529
+ [
3530
+ 0,
3531
+ 31,
3532
+ 878,
3533
+ 0,
3534
+ 4,
3535
+ 0,
3536
+ 1,
3537
+ 0,
3538
+ 0,
3539
+ 5,
3540
+ 245,
3541
+ 0,
3542
+ 0,
3543
+ 0,
3544
+ 5,
3545
+ 0,
3546
+ 30,
3547
+ 3,
3548
+ 0,
3549
+ 0
3550
+ ],
3551
+ [
3552
+ 0,
3553
+ 9,
3554
+ 0,
3555
+ 0,
3556
+ 74,
3557
+ 0,
3558
+ 17,
3559
+ 5,
3560
+ 10,
3561
+ 0,
3562
+ 0,
3563
+ 6535,
3564
+ 0,
3565
+ 0,
3566
+ 18,
3567
+ 0,
3568
+ 67,
3569
+ 0,
3570
+ 7,
3571
+ 0
3572
+ ],
3573
+ [
3574
+ 0,
3575
+ 113,
3576
+ 18,
3577
+ 152,
3578
+ 0,
3579
+ 4,
3580
+ 4,
3581
+ 456,
3582
+ 497,
3583
+ 2891,
3584
+ 2,
3585
+ 109,
3586
+ 1361,
3587
+ 205,
3588
+ 153,
3589
+ 17,
3590
+ 8,
3591
+ 10,
3592
+ 46,
3593
+ 0
3594
+ ],
3595
+ [
3596
+ 0,
3597
+ 1,
3598
+ 46,
3599
+ 49,
3600
+ 0,
3601
+ 0,
3602
+ 0,
3603
+ 200,
3604
+ 8,
3605
+ 40,
3606
+ 1,
3607
+ 93,
3608
+ 210,
3609
+ 121,
3610
+ 16,
3611
+ 4,
3612
+ 6,
3613
+ 0,
3614
+ 1,
3615
+ 0
3616
+ ],
3617
+ [
3618
+ 0,
3619
+ 1029,
3620
+ 18,
3621
+ 37,
3622
+ 0,
3623
+ 2,
3624
+ 10,
3625
+ 52,
3626
+ 437,
3627
+ 0,
3628
+ 0,
3629
+ 60,
3630
+ 1,
3631
+ 0,
3632
+ 1665,
3633
+ 0,
3634
+ 177,
3635
+ 16,
3636
+ 0,
3637
+ 0
3638
+ ],
3639
+ [
3640
+ 0,
3641
+ 28,
3642
+ 10,
3643
+ 27,
3644
+ 7,
3645
+ 6,
3646
+ 0,
3647
+ 1,
3648
+ 0,
3649
+ 38,
3650
+ 0,
3651
+ 0,
3652
+ 0,
3653
+ 0,
3654
+ 0,
3655
+ 1792,
3656
+ 0,
3657
+ 0,
3658
+ 0,
3659
+ 0
3660
+ ],
3661
+ [
3662
+ 0,
3663
+ 55,
3664
+ 0,
3665
+ 6,
3666
+ 0,
3667
+ 0,
3668
+ 0,
3669
+ 37,
3670
+ 895,
3671
+ 0,
3672
+ 0,
3673
+ 7,
3674
+ 0,
3675
+ 0,
3676
+ 34,
3677
+ 0,
3678
+ 1795,
3679
+ 0,
3680
+ 0,
3681
+ 0
3682
+ ],
3683
+ [
3684
+ 0,
3685
+ 248,
3686
+ 503,
3687
+ 40,
3688
+ 11,
3689
+ 301,
3690
+ 0,
3691
+ 0,
3692
+ 0,
3693
+ 42,
3694
+ 86,
3695
+ 0,
3696
+ 0,
3697
+ 0,
3698
+ 0,
3699
+ 4,
3700
+ 27,
3701
+ 33,
3702
+ 0,
3703
+ 0
3704
+ ],
3705
+ [
3706
+ 0,
3707
+ 13,
3708
+ 0,
3709
+ 417,
3710
+ 0,
3711
+ 0,
3712
+ 1,
3713
+ 189,
3714
+ 0,
3715
+ 0,
3716
+ 0,
3717
+ 6,
3718
+ 88,
3719
+ 0,
3720
+ 111,
3721
+ 50,
3722
+ 48,
3723
+ 0,
3724
+ 603,
3725
+ 0
3726
+ ],
3727
+ [
3728
+ 0,
3729
+ 0,
3730
+ 0,
3731
+ 0,
3732
+ 0,
3733
+ 0,
3734
+ 0,
3735
+ 0,
3736
+ 0,
3737
+ 0,
3738
+ 0,
3739
+ 0,
3740
+ 0,
3741
+ 0,
3742
+ 0,
3743
+ 0,
3744
+ 0,
3745
+ 0,
3746
+ 0,
3747
+ 0
3748
+ ]
3749
+ ]
3750
+ },
3751
+ "add:0.25": {
3752
+ "miou": 0.5256398451814701,
3753
+ "oa": 0.7954606313128608,
3754
+ "macro_f1": 0.6400266863319044,
3755
+ "kappa": 0.7725060156424988,
3756
+ "per_class_iou": [
3757
+ 0.7863696632193052,
3758
+ 0.7940560621411685,
3759
+ 0.8422681105804802,
3760
+ 0.5216035634743875,
3761
+ 0.8953563366655918,
3762
+ 0.5666403785488959,
3763
+ 0.6681021224238696,
3764
+ 0.6854425749817118,
3765
+ 0.3865969759193579,
3766
+ 0.15913978494623657,
3767
+ 0.8521227955584585,
3768
+ 0.16817463736895016,
3769
+ 0.15324165029469547,
3770
+ 0.3526720731960907,
3771
+ 0.8232323232323232,
3772
+ 0.5073836723321259,
3773
+ 0.010297482837528604,
3774
+ 0.2888170055452865
3775
+ ],
3776
+ "confusion_matrix": [
3777
+ [
3778
+ 0,
3779
+ 0,
3780
+ 0,
3781
+ 0,
3782
+ 0,
3783
+ 0,
3784
+ 0,
3785
+ 0,
3786
+ 0,
3787
+ 0,
3788
+ 0,
3789
+ 0,
3790
+ 0,
3791
+ 0,
3792
+ 0,
3793
+ 0,
3794
+ 0,
3795
+ 0,
3796
+ 0,
3797
+ 0
3798
+ ],
3799
+ [
3800
+ 0,
3801
+ 14827,
3802
+ 104,
3803
+ 46,
3804
+ 8,
3805
+ 16,
3806
+ 20,
3807
+ 1,
3808
+ 480,
3809
+ 0,
3810
+ 3,
3811
+ 211,
3812
+ 80,
3813
+ 3,
3814
+ 659,
3815
+ 16,
3816
+ 296,
3817
+ 4,
3818
+ 6,
3819
+ 0
3820
+ ],
3821
+ [
3822
+ 0,
3823
+ 160,
3824
+ 11756,
3825
+ 93,
3826
+ 27,
3827
+ 17,
3828
+ 59,
3829
+ 3,
3830
+ 0,
3831
+ 18,
3832
+ 25,
3833
+ 184,
3834
+ 13,
3835
+ 1,
3836
+ 99,
3837
+ 0,
3838
+ 10,
3839
+ 4,
3840
+ 8,
3841
+ 0
3842
+ ],
3843
+ [
3844
+ 0,
3845
+ 165,
3846
+ 132,
3847
+ 12522,
3848
+ 19,
3849
+ 10,
3850
+ 2,
3851
+ 144,
3852
+ 0,
3853
+ 31,
3854
+ 1,
3855
+ 0,
3856
+ 2,
3857
+ 6,
3858
+ 113,
3859
+ 137,
3860
+ 34,
3861
+ 11,
3862
+ 539,
3863
+ 0
3864
+ ],
3865
+ [
3866
+ 0,
3867
+ 23,
3868
+ 477,
3869
+ 28,
3870
+ 1171,
3871
+ 50,
3872
+ 1,
3873
+ 0,
3874
+ 0,
3875
+ 0,
3876
+ 130,
3877
+ 0,
3878
+ 18,
3879
+ 10,
3880
+ 0,
3881
+ 2,
3882
+ 6,
3883
+ 128,
3884
+ 3,
3885
+ 0
3886
+ ],
3887
+ [
3888
+ 0,
3889
+ 83,
3890
+ 1,
3891
+ 23,
3892
+ 0,
3893
+ 5553,
3894
+ 0,
3895
+ 0,
3896
+ 0,
3897
+ 0,
3898
+ 0,
3899
+ 0,
3900
+ 0,
3901
+ 0,
3902
+ 19,
3903
+ 8,
3904
+ 1,
3905
+ 101,
3906
+ 0,
3907
+ 0
3908
+ ],
3909
+ [
3910
+ 0,
3911
+ 96,
3912
+ 76,
3913
+ 5,
3914
+ 7,
3915
+ 0,
3916
+ 1437,
3917
+ 49,
3918
+ 253,
3919
+ 0,
3920
+ 0,
3921
+ 217,
3922
+ 0,
3923
+ 0,
3924
+ 77,
3925
+ 0,
3926
+ 5,
3927
+ 186,
3928
+ 0,
3929
+ 0
3930
+ ],
3931
+ [
3932
+ 0,
3933
+ 7,
3934
+ 0,
3935
+ 14,
3936
+ 0,
3937
+ 0,
3938
+ 10,
3939
+ 4344,
3940
+ 415,
3941
+ 65,
3942
+ 0,
3943
+ 10,
3944
+ 472,
3945
+ 0,
3946
+ 33,
3947
+ 1,
3948
+ 4,
3949
+ 0,
3950
+ 4,
3951
+ 0
3952
+ ],
3953
+ [
3954
+ 0,
3955
+ 29,
3956
+ 0,
3957
+ 0,
3958
+ 0,
3959
+ 0,
3960
+ 0,
3961
+ 0,
3962
+ 6559,
3963
+ 0,
3964
+ 0,
3965
+ 9,
3966
+ 0,
3967
+ 0,
3968
+ 0,
3969
+ 0,
3970
+ 1,
3971
+ 0,
3972
+ 0,
3973
+ 0
3974
+ ],
3975
+ [
3976
+ 0,
3977
+ 6,
3978
+ 20,
3979
+ 6,
3980
+ 0,
3981
+ 1,
3982
+ 0,
3983
+ 26,
3984
+ 0,
3985
+ 2071,
3986
+ 0,
3987
+ 0,
3988
+ 16,
3989
+ 14,
3990
+ 5,
3991
+ 1,
3992
+ 0,
3993
+ 0,
3994
+ 0,
3995
+ 0
3996
+ ],
3997
+ [
3998
+ 0,
3999
+ 34,
4000
+ 886,
4001
+ 0,
4002
+ 14,
4003
+ 0,
4004
+ 2,
4005
+ 0,
4006
+ 0,
4007
+ 5,
4008
+ 222,
4009
+ 0,
4010
+ 0,
4011
+ 0,
4012
+ 5,
4013
+ 0,
4014
+ 30,
4015
+ 4,
4016
+ 0,
4017
+ 0
4018
+ ],
4019
+ [
4020
+ 0,
4021
+ 17,
4022
+ 0,
4023
+ 0,
4024
+ 91,
4025
+ 0,
4026
+ 14,
4027
+ 5,
4028
+ 10,
4029
+ 0,
4030
+ 0,
4031
+ 6523,
4032
+ 0,
4033
+ 0,
4034
+ 13,
4035
+ 0,
4036
+ 63,
4037
+ 0,
4038
+ 6,
4039
+ 0
4040
+ ],
4041
+ [
4042
+ 0,
4043
+ 107,
4044
+ 18,
4045
+ 205,
4046
+ 0,
4047
+ 3,
4048
+ 10,
4049
+ 473,
4050
+ 524,
4051
+ 2954,
4052
+ 6,
4053
+ 129,
4054
+ 1171,
4055
+ 188,
4056
+ 120,
4057
+ 47,
4058
+ 11,
4059
+ 8,
4060
+ 72,
4061
+ 0
4062
+ ],
4063
+ [
4064
+ 0,
4065
+ 1,
4066
+ 44,
4067
+ 53,
4068
+ 0,
4069
+ 0,
4070
+ 0,
4071
+ 189,
4072
+ 8,
4073
+ 36,
4074
+ 1,
4075
+ 71,
4076
+ 216,
4077
+ 156,
4078
+ 12,
4079
+ 2,
4080
+ 7,
4081
+ 0,
4082
+ 0,
4083
+ 0
4084
+ ],
4085
+ [
4086
+ 0,
4087
+ 1027,
4088
+ 18,
4089
+ 38,
4090
+ 0,
4091
+ 0,
4092
+ 10,
4093
+ 43,
4094
+ 402,
4095
+ 0,
4096
+ 0,
4097
+ 58,
4098
+ 0,
4099
+ 0,
4100
+ 1696,
4101
+ 0,
4102
+ 205,
4103
+ 7,
4104
+ 0,
4105
+ 0
4106
+ ],
4107
+ [
4108
+ 0,
4109
+ 28,
4110
+ 6,
4111
+ 32,
4112
+ 4,
4113
+ 6,
4114
+ 0,
4115
+ 0,
4116
+ 0,
4117
+ 40,
4118
+ 0,
4119
+ 0,
4120
+ 0,
4121
+ 0,
4122
+ 0,
4123
+ 1793,
4124
+ 0,
4125
+ 0,
4126
+ 0,
4127
+ 0
4128
+ ],
4129
+ [
4130
+ 0,
4131
+ 51,
4132
+ 0,
4133
+ 8,
4134
+ 0,
4135
+ 0,
4136
+ 0,
4137
+ 19,
4138
+ 875,
4139
+ 0,
4140
+ 0,
4141
+ 14,
4142
+ 0,
4143
+ 0,
4144
+ 41,
4145
+ 0,
4146
+ 1821,
4147
+ 0,
4148
+ 0,
4149
+ 0
4150
+ ],
4151
+ [
4152
+ 0,
4153
+ 230,
4154
+ 546,
4155
+ 75,
4156
+ 28,
4157
+ 310,
4158
+ 0,
4159
+ 0,
4160
+ 0,
4161
+ 42,
4162
+ 27,
4163
+ 0,
4164
+ 0,
4165
+ 0,
4166
+ 0,
4167
+ 4,
4168
+ 15,
4169
+ 18,
4170
+ 0,
4171
+ 0
4172
+ ],
4173
+ [
4174
+ 0,
4175
+ 11,
4176
+ 0,
4177
+ 373,
4178
+ 0,
4179
+ 0,
4180
+ 0,
4181
+ 171,
4182
+ 4,
4183
+ 0,
4184
+ 0,
4185
+ 10,
4186
+ 100,
4187
+ 0,
4188
+ 109,
4189
+ 51,
4190
+ 72,
4191
+ 0,
4192
+ 625,
4193
+ 0
4194
+ ],
4195
+ [
4196
+ 0,
4197
+ 0,
4198
+ 0,
4199
+ 0,
4200
+ 0,
4201
+ 0,
4202
+ 0,
4203
+ 0,
4204
+ 0,
4205
+ 0,
4206
+ 0,
4207
+ 0,
4208
+ 0,
4209
+ 0,
4210
+ 0,
4211
+ 0,
4212
+ 0,
4213
+ 0,
4214
+ 0,
4215
+ 0
4216
+ ]
4217
+ ]
4218
+ },
4219
+ "add:0.5": {
4220
+ "miou": 0.5090612468206375,
4221
+ "oa": 0.7875772538854554,
4222
+ "macro_f1": 0.6261832418365842,
4223
+ "kappa": 0.7636132382344394,
4224
+ "per_class_iou": [
4225
+ 0.7859325605900949,
4226
+ 0.7847862672500842,
4227
+ 0.8417616097008461,
4228
+ 0.4688974688974689,
4229
+ 0.8888531446035065,
4230
+ 0.4957098283931357,
4231
+ 0.6741316270566727,
4232
+ 0.6773225739706187,
4233
+ 0.3778793418647166,
4234
+ 0.12577639751552794,
4235
+ 0.8244294275149815,
4236
+ 0.09631811487481591,
4237
+ 0.2294557097118463,
4238
+ 0.3591641271223335,
4239
+ 0.7114754098360656,
4240
+ 0.5004046398705152,
4241
+ 0.005789473684210527,
4242
+ 0.3150147203140334
4243
+ ],
4244
+ "confusion_matrix": [
4245
+ [
4246
+ 0,
4247
+ 0,
4248
+ 0,
4249
+ 0,
4250
+ 0,
4251
+ 0,
4252
+ 0,
4253
+ 0,
4254
+ 0,
4255
+ 0,
4256
+ 0,
4257
+ 0,
4258
+ 0,
4259
+ 0,
4260
+ 0,
4261
+ 0,
4262
+ 0,
4263
+ 0,
4264
+ 0,
4265
+ 0
4266
+ ],
4267
+ [
4268
+ 0,
4269
+ 14917,
4270
+ 80,
4271
+ 63,
4272
+ 1,
4273
+ 16,
4274
+ 9,
4275
+ 0,
4276
+ 521,
4277
+ 0,
4278
+ 2,
4279
+ 206,
4280
+ 70,
4281
+ 2,
4282
+ 557,
4283
+ 14,
4284
+ 316,
4285
+ 0,
4286
+ 6,
4287
+ 0
4288
+ ],
4289
+ [
4290
+ 0,
4291
+ 246,
4292
+ 11658,
4293
+ 100,
4294
+ 54,
4295
+ 18,
4296
+ 60,
4297
+ 1,
4298
+ 0,
4299
+ 17,
4300
+ 18,
4301
+ 183,
4302
+ 6,
4303
+ 1,
4304
+ 93,
4305
+ 0,
4306
+ 15,
4307
+ 2,
4308
+ 5,
4309
+ 0
4310
+ ],
4311
+ [
4312
+ 0,
4313
+ 161,
4314
+ 141,
4315
+ 12634,
4316
+ 13,
4317
+ 8,
4318
+ 2,
4319
+ 174,
4320
+ 2,
4321
+ 37,
4322
+ 8,
4323
+ 0,
4324
+ 16,
4325
+ 6,
4326
+ 56,
4327
+ 201,
4328
+ 29,
4329
+ 38,
4330
+ 342,
4331
+ 0
4332
+ ],
4333
+ [
4334
+ 0,
4335
+ 31,
4336
+ 532,
4337
+ 15,
4338
+ 1093,
4339
+ 50,
4340
+ 0,
4341
+ 0,
4342
+ 0,
4343
+ 0,
4344
+ 25,
4345
+ 0,
4346
+ 25,
4347
+ 11,
4348
+ 0,
4349
+ 6,
4350
+ 0,
4351
+ 259,
4352
+ 0,
4353
+ 0
4354
+ ],
4355
+ [
4356
+ 0,
4357
+ 99,
4358
+ 0,
4359
+ 22,
4360
+ 0,
4361
+ 5526,
4362
+ 0,
4363
+ 0,
4364
+ 0,
4365
+ 0,
4366
+ 0,
4367
+ 0,
4368
+ 0,
4369
+ 0,
4370
+ 19,
4371
+ 4,
4372
+ 0,
4373
+ 119,
4374
+ 0,
4375
+ 0
4376
+ ],
4377
+ [
4378
+ 0,
4379
+ 120,
4380
+ 49,
4381
+ 9,
4382
+ 3,
4383
+ 0,
4384
+ 1271,
4385
+ 70,
4386
+ 222,
4387
+ 0,
4388
+ 2,
4389
+ 412,
4390
+ 0,
4391
+ 0,
4392
+ 77,
4393
+ 0,
4394
+ 5,
4395
+ 168,
4396
+ 0,
4397
+ 0
4398
+ ],
4399
+ [
4400
+ 0,
4401
+ 13,
4402
+ 0,
4403
+ 16,
4404
+ 0,
4405
+ 0,
4406
+ 12,
4407
+ 4425,
4408
+ 585,
4409
+ 9,
4410
+ 0,
4411
+ 9,
4412
+ 292,
4413
+ 0,
4414
+ 10,
4415
+ 0,
4416
+ 8,
4417
+ 0,
4418
+ 0,
4419
+ 0
4420
+ ],
4421
+ [
4422
+ 0,
4423
+ 43,
4424
+ 0,
4425
+ 0,
4426
+ 0,
4427
+ 0,
4428
+ 0,
4429
+ 0,
4430
+ 6547,
4431
+ 0,
4432
+ 0,
4433
+ 7,
4434
+ 0,
4435
+ 0,
4436
+ 1,
4437
+ 0,
4438
+ 0,
4439
+ 0,
4440
+ 0,
4441
+ 0
4442
+ ],
4443
+ [
4444
+ 0,
4445
+ 11,
4446
+ 14,
4447
+ 7,
4448
+ 1,
4449
+ 3,
4450
+ 0,
4451
+ 31,
4452
+ 2,
4453
+ 2067,
4454
+ 0,
4455
+ 0,
4456
+ 7,
4457
+ 4,
4458
+ 8,
4459
+ 11,
4460
+ 0,
4461
+ 0,
4462
+ 0,
4463
+ 0
4464
+ ],
4465
+ [
4466
+ 0,
4467
+ 67,
4468
+ 896,
4469
+ 9,
4470
+ 29,
4471
+ 1,
4472
+ 2,
4473
+ 0,
4474
+ 0,
4475
+ 4,
4476
+ 162,
4477
+ 0,
4478
+ 0,
4479
+ 0,
4480
+ 5,
4481
+ 0,
4482
+ 23,
4483
+ 4,
4484
+ 0,
4485
+ 0
4486
+ ],
4487
+ [
4488
+ 0,
4489
+ 20,
4490
+ 0,
4491
+ 0,
4492
+ 130,
4493
+ 0,
4494
+ 12,
4495
+ 7,
4496
+ 9,
4497
+ 0,
4498
+ 0,
4499
+ 6466,
4500
+ 0,
4501
+ 0,
4502
+ 20,
4503
+ 0,
4504
+ 75,
4505
+ 0,
4506
+ 3,
4507
+ 0
4508
+ ],
4509
+ [
4510
+ 0,
4511
+ 94,
4512
+ 20,
4513
+ 277,
4514
+ 0,
4515
+ 0,
4516
+ 53,
4517
+ 572,
4518
+ 453,
4519
+ 3118,
4520
+ 29,
4521
+ 158,
4522
+ 654,
4523
+ 117,
4524
+ 68,
4525
+ 242,
4526
+ 29,
4527
+ 6,
4528
+ 156,
4529
+ 0
4530
+ ],
4531
+ [
4532
+ 0,
4533
+ 13,
4534
+ 37,
4535
+ 62,
4536
+ 0,
4537
+ 0,
4538
+ 1,
4539
+ 145,
4540
+ 14,
4541
+ 30,
4542
+ 2,
4543
+ 31,
4544
+ 205,
4545
+ 215,
4546
+ 23,
4547
+ 10,
4548
+ 7,
4549
+ 1,
4550
+ 0,
4551
+ 0
4552
+ ],
4553
+ [
4554
+ 0,
4555
+ 1014,
4556
+ 16,
4557
+ 34,
4558
+ 0,
4559
+ 0,
4560
+ 5,
4561
+ 36,
4562
+ 417,
4563
+ 0,
4564
+ 0,
4565
+ 58,
4566
+ 0,
4567
+ 0,
4568
+ 1650,
4569
+ 0,
4570
+ 272,
4571
+ 2,
4572
+ 0,
4573
+ 0
4574
+ ],
4575
+ [
4576
+ 0,
4577
+ 48,
4578
+ 4,
4579
+ 51,
4580
+ 0,
4581
+ 4,
4582
+ 0,
4583
+ 0,
4584
+ 0,
4585
+ 58,
4586
+ 0,
4587
+ 0,
4588
+ 2,
4589
+ 0,
4590
+ 0,
4591
+ 1736,
4592
+ 0,
4593
+ 6,
4594
+ 0,
4595
+ 0
4596
+ ],
4597
+ [
4598
+ 0,
4599
+ 38,
4600
+ 0,
4601
+ 21,
4602
+ 0,
4603
+ 0,
4604
+ 0,
4605
+ 14,
4606
+ 825,
4607
+ 0,
4608
+ 0,
4609
+ 19,
4610
+ 0,
4611
+ 0,
4612
+ 57,
4613
+ 0,
4614
+ 1855,
4615
+ 0,
4616
+ 0,
4617
+ 0
4618
+ ],
4619
+ [
4620
+ 0,
4621
+ 158,
4622
+ 589,
4623
+ 123,
4624
+ 53,
4625
+ 328,
4626
+ 0,
4627
+ 0,
4628
+ 0,
4629
+ 31,
4630
+ 0,
4631
+ 0,
4632
+ 0,
4633
+ 0,
4634
+ 0,
4635
+ 0,
4636
+ 2,
4637
+ 11,
4638
+ 0,
4639
+ 0
4640
+ ],
4641
+ [
4642
+ 0,
4643
+ 24,
4644
+ 0,
4645
+ 332,
4646
+ 0,
4647
+ 0,
4648
+ 0,
4649
+ 135,
4650
+ 18,
4651
+ 0,
4652
+ 0,
4653
+ 18,
4654
+ 121,
4655
+ 0,
4656
+ 96,
4657
+ 43,
4658
+ 97,
4659
+ 0,
4660
+ 642,
4661
+ 0
4662
+ ],
4663
+ [
4664
+ 0,
4665
+ 0,
4666
+ 0,
4667
+ 0,
4668
+ 0,
4669
+ 0,
4670
+ 0,
4671
+ 0,
4672
+ 0,
4673
+ 0,
4674
+ 0,
4675
+ 0,
4676
+ 0,
4677
+ 0,
4678
+ 0,
4679
+ 0,
4680
+ 0,
4681
+ 0,
4682
+ 0,
4683
+ 0
4684
+ ]
4685
+ ]
4686
+ }
4687
+ },
4688
+ "seconds": 11.862706162035465,
4689
+ "test_used_for_selection": false,
4690
+ "model_count": 1
4691
+ }
main_method/configurations/32X32_recommended_validation_seed3407/test_results.json ADDED
@@ -0,0 +1,1883 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "kind": "cnn_control",
3
+ "seed": 3407,
4
+ "mode": "add",
5
+ "alpha": 0.25,
6
+ "metrics": {
7
+ "miou": 0.49455547330691263,
8
+ "oa": 0.8109266736579659,
9
+ "macro_f1": 0.6234136021853756,
10
+ "kappa": 0.7642966739749818,
11
+ "per_class_iou": [
12
+ 0.8061330522981268,
13
+ 0.7198486670090578,
14
+ 0.8757351877577422,
15
+ 0.46213693236161063,
16
+ 0.8703389461776095,
17
+ 0.38416520104311963,
18
+ 0.4490553274645572,
19
+ 0.6216216216216216,
20
+ 0.7901944411308601,
21
+ 0.07114146695276376,
22
+ 0.5587868716244287,
23
+ 0.3175281724644782,
24
+ 0.4373326486446833,
25
+ 0.2655897022970766,
26
+ 0.6168043633350977,
27
+ 0.28662647573048294,
28
+ 0.0918118400487935,
29
+ 0.27714760156231727
30
+ ],
31
+ "confusion_matrix": [
32
+ [
33
+ 0,
34
+ 0,
35
+ 0,
36
+ 0,
37
+ 0,
38
+ 0,
39
+ 0,
40
+ 0,
41
+ 0,
42
+ 0,
43
+ 0,
44
+ 0,
45
+ 0,
46
+ 0,
47
+ 0,
48
+ 0,
49
+ 0,
50
+ 0,
51
+ 0,
52
+ 0
53
+ ],
54
+ [
55
+ 0,
56
+ 1311069,
57
+ 6756,
58
+ 8420,
59
+ 815,
60
+ 744,
61
+ 883,
62
+ 2246,
63
+ 19285,
64
+ 602,
65
+ 381,
66
+ 3742,
67
+ 6998,
68
+ 405,
69
+ 29504,
70
+ 1126,
71
+ 71312,
72
+ 1029,
73
+ 686,
74
+ 0
75
+ ],
76
+ [
77
+ 0,
78
+ 12671,
79
+ 493367,
80
+ 5115,
81
+ 3930,
82
+ 1130,
83
+ 1764,
84
+ 172,
85
+ 746,
86
+ 546,
87
+ 21217,
88
+ 15339,
89
+ 437,
90
+ 131,
91
+ 1045,
92
+ 166,
93
+ 699,
94
+ 2161,
95
+ 44,
96
+ 0
97
+ ],
98
+ [
99
+ 0,
100
+ 17785,
101
+ 2752,
102
+ 641744,
103
+ 302,
104
+ 960,
105
+ 172,
106
+ 3539,
107
+ 862,
108
+ 3810,
109
+ 169,
110
+ 19,
111
+ 2132,
112
+ 202,
113
+ 3012,
114
+ 4846,
115
+ 607,
116
+ 129,
117
+ 5247,
118
+ 0
119
+ ],
120
+ [
121
+ 0,
122
+ 9412,
123
+ 46049,
124
+ 1786,
125
+ 82625,
126
+ 1310,
127
+ 4247,
128
+ 55,
129
+ 196,
130
+ 62,
131
+ 7994,
132
+ 4414,
133
+ 287,
134
+ 376,
135
+ 482,
136
+ 80,
137
+ 252,
138
+ 3761,
139
+ 4,
140
+ 0
141
+ ],
142
+ [
143
+ 0,
144
+ 2675,
145
+ 1166,
146
+ 868,
147
+ 380,
148
+ 120018,
149
+ 262,
150
+ 124,
151
+ 19,
152
+ 220,
153
+ 688,
154
+ 194,
155
+ 22,
156
+ 35,
157
+ 1476,
158
+ 29,
159
+ 106,
160
+ 837,
161
+ 0,
162
+ 0
163
+ ],
164
+ [
165
+ 0,
166
+ 4040,
167
+ 7283,
168
+ 711,
169
+ 3621,
170
+ 289,
171
+ 25338,
172
+ 175,
173
+ 883,
174
+ 118,
175
+ 2677,
176
+ 5012,
177
+ 146,
178
+ 454,
179
+ 1986,
180
+ 330,
181
+ 163,
182
+ 536,
183
+ 0,
184
+ 0
185
+ ],
186
+ [
187
+ 0,
188
+ 1538,
189
+ 141,
190
+ 3611,
191
+ 17,
192
+ 249,
193
+ 89,
194
+ 47797,
195
+ 7620,
196
+ 3775,
197
+ 49,
198
+ 378,
199
+ 1239,
200
+ 1298,
201
+ 2624,
202
+ 9685,
203
+ 632,
204
+ 168,
205
+ 1023,
206
+ 0
207
+ ],
208
+ [
209
+ 0,
210
+ 18456,
211
+ 124,
212
+ 4622,
213
+ 0,
214
+ 0,
215
+ 17,
216
+ 1317,
217
+ 151754,
218
+ 0,
219
+ 1,
220
+ 338,
221
+ 854,
222
+ 23,
223
+ 403,
224
+ 328,
225
+ 9076,
226
+ 0,
227
+ 164,
228
+ 0
229
+ ],
230
+ [
231
+ 0,
232
+ 482,
233
+ 193,
234
+ 1058,
235
+ 35,
236
+ 123,
237
+ 379,
238
+ 620,
239
+ 116,
240
+ 66242,
241
+ 0,
242
+ 28,
243
+ 795,
244
+ 26,
245
+ 446,
246
+ 416,
247
+ 71,
248
+ 2,
249
+ 15,
250
+ 0
251
+ ],
252
+ [
253
+ 0,
254
+ 3092,
255
+ 44739,
256
+ 412,
257
+ 1763,
258
+ 216,
259
+ 156,
260
+ 5,
261
+ 11,
262
+ 5,
263
+ 7062,
264
+ 21,
265
+ 6,
266
+ 0,
267
+ 299,
268
+ 8,
269
+ 83,
270
+ 484,
271
+ 0,
272
+ 0
273
+ ],
274
+ [
275
+ 0,
276
+ 1322,
277
+ 2401,
278
+ 20,
279
+ 0,
280
+ 0,
281
+ 1773,
282
+ 184,
283
+ 1235,
284
+ 0,
285
+ 143,
286
+ 60525,
287
+ 38,
288
+ 0,
289
+ 1508,
290
+ 0,
291
+ 693,
292
+ 4,
293
+ 114,
294
+ 0
295
+ ],
296
+ [
297
+ 0,
298
+ 3196,
299
+ 123,
300
+ 4634,
301
+ 46,
302
+ 7,
303
+ 910,
304
+ 9697,
305
+ 3978,
306
+ 1955,
307
+ 63,
308
+ 3941,
309
+ 25923,
310
+ 639,
311
+ 1593,
312
+ 517,
313
+ 2180,
314
+ 171,
315
+ 1142,
316
+ 0
317
+ ],
318
+ [
319
+ 0,
320
+ 589,
321
+ 140,
322
+ 1406,
323
+ 6,
324
+ 31,
325
+ 92,
326
+ 2996,
327
+ 519,
328
+ 719,
329
+ 7,
330
+ 314,
331
+ 2523,
332
+ 11923,
333
+ 406,
334
+ 408,
335
+ 473,
336
+ 9,
337
+ 52,
338
+ 0
339
+ ],
340
+ [
341
+ 0,
342
+ 57524,
343
+ 1032,
344
+ 1194,
345
+ 723,
346
+ 333,
347
+ 1050,
348
+ 1045,
349
+ 7046,
350
+ 405,
351
+ 646,
352
+ 1114,
353
+ 551,
354
+ 254,
355
+ 47497,
356
+ 318,
357
+ 6554,
358
+ 377,
359
+ 131,
360
+ 0
361
+ ],
362
+ [
363
+ 0,
364
+ 1525,
365
+ 170,
366
+ 6485,
367
+ 90,
368
+ 129,
369
+ 5,
370
+ 653,
371
+ 17,
372
+ 376,
373
+ 8,
374
+ 2255,
375
+ 478,
376
+ 3,
377
+ 400,
378
+ 53604,
379
+ 52,
380
+ 13,
381
+ 2053,
382
+ 0
383
+ ],
384
+ [
385
+ 0,
386
+ 12728,
387
+ 331,
388
+ 778,
389
+ 2,
390
+ 0,
391
+ 34,
392
+ 422,
393
+ 10506,
394
+ 48,
395
+ 33,
396
+ 1127,
397
+ 965,
398
+ 73,
399
+ 710,
400
+ 23,
401
+ 49018,
402
+ 5,
403
+ 56,
404
+ 0
405
+ ],
406
+ [
407
+ 0,
408
+ 8636,
409
+ 11253,
410
+ 1214,
411
+ 3447,
412
+ 3258,
413
+ 322,
414
+ 34,
415
+ 20,
416
+ 20,
417
+ 6827,
418
+ 1,
419
+ 610,
420
+ 689,
421
+ 1495,
422
+ 80,
423
+ 44,
424
+ 4817,
425
+ 2,
426
+ 0
427
+ ],
428
+ [
429
+ 0,
430
+ 4694,
431
+ 43,
432
+ 2183,
433
+ 220,
434
+ 0,
435
+ 39,
436
+ 1222,
437
+ 3590,
438
+ 122,
439
+ 2,
440
+ 118,
441
+ 2844,
442
+ 42,
443
+ 3653,
444
+ 230,
445
+ 1161,
446
+ 11,
447
+ 11850,
448
+ 0
449
+ ],
450
+ [
451
+ 0,
452
+ 0,
453
+ 0,
454
+ 0,
455
+ 0,
456
+ 0,
457
+ 0,
458
+ 0,
459
+ 0,
460
+ 0,
461
+ 0,
462
+ 0,
463
+ 0,
464
+ 0,
465
+ 0,
466
+ 0,
467
+ 0,
468
+ 0,
469
+ 0,
470
+ 0
471
+ ]
472
+ ]
473
+ },
474
+ "reference": {
475
+ "miou": 0.4923823641221446,
476
+ "oa": 0.8069722305391867,
477
+ "macro_f1": 0.6220716182656123,
478
+ "kappa": 0.7604756314593856,
479
+ "per_class_iou": [
480
+ 0.8075790627351255,
481
+ 0.71292826214508,
482
+ 0.8722037487999142,
483
+ 0.49159387306580987,
484
+ 0.8753945402194118,
485
+ 0.3695274547328132,
486
+ 0.44380969707996,
487
+ 0.618820955172456,
488
+ 0.7991021866100304,
489
+ 0.09855478879306705,
490
+ 0.5415849299975815,
491
+ 0.3029233700492677,
492
+ 0.38863181158919813,
493
+ 0.2724438255931417,
494
+ 0.623407163708818,
495
+ 0.2832768116184144,
496
+ 0.09794562774695224,
497
+ 0.26315444454156106
498
+ ],
499
+ "confusion_matrix": [
500
+ [
501
+ 0,
502
+ 0,
503
+ 0,
504
+ 0,
505
+ 0,
506
+ 0,
507
+ 0,
508
+ 0,
509
+ 0,
510
+ 0,
511
+ 0,
512
+ 0,
513
+ 0,
514
+ 0,
515
+ 0,
516
+ 0,
517
+ 0,
518
+ 0,
519
+ 0,
520
+ 0
521
+ ],
522
+ [
523
+ 0,
524
+ 1299809,
525
+ 7054,
526
+ 7868,
527
+ 1175,
528
+ 742,
529
+ 1048,
530
+ 2568,
531
+ 20005,
532
+ 768,
533
+ 615,
534
+ 3295,
535
+ 9943,
536
+ 588,
537
+ 30648,
538
+ 989,
539
+ 77038,
540
+ 790,
541
+ 1060,
542
+ 0
543
+ ],
544
+ [
545
+ 0,
546
+ 9859,
547
+ 479954,
548
+ 4841,
549
+ 4319,
550
+ 1012,
551
+ 2059,
552
+ 205,
553
+ 754,
554
+ 550,
555
+ 33703,
556
+ 18399,
557
+ 572,
558
+ 489,
559
+ 1251,
560
+ 226,
561
+ 886,
562
+ 1549,
563
+ 52,
564
+ 0
565
+ ],
566
+ [
567
+ 0,
568
+ 16269,
569
+ 3221,
570
+ 635028,
571
+ 530,
572
+ 1075,
573
+ 235,
574
+ 5684,
575
+ 971,
576
+ 3614,
577
+ 217,
578
+ 25,
579
+ 3166,
580
+ 458,
581
+ 4014,
582
+ 4873,
583
+ 892,
584
+ 137,
585
+ 7880,
586
+ 0
587
+ ],
588
+ [
589
+ 0,
590
+ 7275,
591
+ 39630,
592
+ 1499,
593
+ 88130,
594
+ 1366,
595
+ 5100,
596
+ 62,
597
+ 247,
598
+ 69,
599
+ 11784,
600
+ 3859,
601
+ 335,
602
+ 391,
603
+ 687,
604
+ 59,
605
+ 385,
606
+ 2507,
607
+ 7,
608
+ 0
609
+ ],
610
+ [
611
+ 0,
612
+ 2038,
613
+ 1202,
614
+ 849,
615
+ 339,
616
+ 120091,
617
+ 328,
618
+ 119,
619
+ 27,
620
+ 241,
621
+ 828,
622
+ 257,
623
+ 32,
624
+ 36,
625
+ 1857,
626
+ 27,
627
+ 150,
628
+ 698,
629
+ 0,
630
+ 0
631
+ ],
632
+ [
633
+ 0,
634
+ 3661,
635
+ 6519,
636
+ 626,
637
+ 3375,
638
+ 331,
639
+ 25102,
640
+ 184,
641
+ 884,
642
+ 96,
643
+ 3047,
644
+ 5974,
645
+ 179,
646
+ 400,
647
+ 2361,
648
+ 321,
649
+ 142,
650
+ 560,
651
+ 0,
652
+ 0
653
+ ],
654
+ [
655
+ 0,
656
+ 1361,
657
+ 139,
658
+ 2822,
659
+ 18,
660
+ 239,
661
+ 48,
662
+ 48788,
663
+ 7325,
664
+ 2676,
665
+ 106,
666
+ 347,
667
+ 1797,
668
+ 1652,
669
+ 3326,
670
+ 9436,
671
+ 691,
672
+ 52,
673
+ 1110,
674
+ 0
675
+ ],
676
+ [
677
+ 0,
678
+ 17496,
679
+ 131,
680
+ 4134,
681
+ 0,
682
+ 0,
683
+ 28,
684
+ 1205,
685
+ 151587,
686
+ 5,
687
+ 2,
688
+ 256,
689
+ 1490,
690
+ 77,
691
+ 484,
692
+ 515,
693
+ 9821,
694
+ 3,
695
+ 243,
696
+ 0
697
+ ],
698
+ [
699
+ 0,
700
+ 232,
701
+ 197,
702
+ 1044,
703
+ 38,
704
+ 102,
705
+ 354,
706
+ 822,
707
+ 23,
708
+ 66220,
709
+ 0,
710
+ 30,
711
+ 875,
712
+ 53,
713
+ 590,
714
+ 363,
715
+ 59,
716
+ 0,
717
+ 45,
718
+ 0
719
+ ],
720
+ [
721
+ 0,
722
+ 2589,
723
+ 40372,
724
+ 432,
725
+ 1697,
726
+ 85,
727
+ 183,
728
+ 6,
729
+ 6,
730
+ 3,
731
+ 11668,
732
+ 128,
733
+ 13,
734
+ 0,
735
+ 328,
736
+ 9,
737
+ 143,
738
+ 700,
739
+ 0,
740
+ 0
741
+ ],
742
+ [
743
+ 0,
744
+ 1201,
745
+ 2390,
746
+ 12,
747
+ 4,
748
+ 0,
749
+ 1850,
750
+ 224,
751
+ 1190,
752
+ 0,
753
+ 187,
754
+ 60462,
755
+ 122,
756
+ 0,
757
+ 1454,
758
+ 0,
759
+ 684,
760
+ 0,
761
+ 180,
762
+ 0
763
+ ],
764
+ [
765
+ 0,
766
+ 2978,
767
+ 119,
768
+ 4039,
769
+ 5,
770
+ 14,
771
+ 597,
772
+ 9868,
773
+ 3941,
774
+ 1934,
775
+ 59,
776
+ 4827,
777
+ 26869,
778
+ 905,
779
+ 1457,
780
+ 341,
781
+ 2151,
782
+ 74,
783
+ 537,
784
+ 0
785
+ ],
786
+ [
787
+ 0,
788
+ 505,
789
+ 118,
790
+ 1280,
791
+ 2,
792
+ 27,
793
+ 105,
794
+ 3700,
795
+ 479,
796
+ 856,
797
+ 19,
798
+ 235,
799
+ 2717,
800
+ 11254,
801
+ 430,
802
+ 362,
803
+ 482,
804
+ 4,
805
+ 38,
806
+ 0
807
+ ],
808
+ [
809
+ 0,
810
+ 52630,
811
+ 1153,
812
+ 729,
813
+ 599,
814
+ 370,
815
+ 1654,
816
+ 912,
817
+ 7181,
818
+ 630,
819
+ 800,
820
+ 1006,
821
+ 1038,
822
+ 375,
823
+ 49894,
824
+ 305,
825
+ 7834,
826
+ 405,
827
+ 279,
828
+ 0
829
+ ],
830
+ [
831
+ 0,
832
+ 1535,
833
+ 175,
834
+ 5701,
835
+ 139,
836
+ 134,
837
+ 10,
838
+ 958,
839
+ 53,
840
+ 178,
841
+ 19,
842
+ 2044,
843
+ 902,
844
+ 13,
845
+ 434,
846
+ 53815,
847
+ 96,
848
+ 19,
849
+ 2091,
850
+ 0
851
+ ],
852
+ [
853
+ 0,
854
+ 10908,
855
+ 344,
856
+ 660,
857
+ 5,
858
+ 0,
859
+ 48,
860
+ 386,
861
+ 10783,
862
+ 50,
863
+ 67,
864
+ 797,
865
+ 1211,
866
+ 65,
867
+ 427,
868
+ 24,
869
+ 50870,
870
+ 10,
871
+ 204,
872
+ 0
873
+ ],
874
+ [
875
+ 0,
876
+ 8066,
877
+ 9726,
878
+ 1198,
879
+ 3564,
880
+ 2564,
881
+ 469,
882
+ 60,
883
+ 10,
884
+ 10,
885
+ 8574,
886
+ 2,
887
+ 722,
888
+ 769,
889
+ 1940,
890
+ 73,
891
+ 83,
892
+ 4925,
893
+ 14,
894
+ 0
895
+ ],
896
+ [
897
+ 0,
898
+ 4907,
899
+ 45,
900
+ 2050,
901
+ 73,
902
+ 5,
903
+ 52,
904
+ 1034,
905
+ 3605,
906
+ 141,
907
+ 2,
908
+ 198,
909
+ 2870,
910
+ 74,
911
+ 3653,
912
+ 85,
913
+ 1181,
914
+ 6,
915
+ 12043,
916
+ 0
917
+ ],
918
+ [
919
+ 0,
920
+ 0,
921
+ 0,
922
+ 0,
923
+ 0,
924
+ 0,
925
+ 0,
926
+ 0,
927
+ 0,
928
+ 0,
929
+ 0,
930
+ 0,
931
+ 0,
932
+ 0,
933
+ 0,
934
+ 0,
935
+ 0,
936
+ 0,
937
+ 0,
938
+ 0
939
+ ]
940
+ ]
941
+ },
942
+ "standalone": {
943
+ "miou": 0.4266778826213718,
944
+ "oa": 0.7752192943702201,
945
+ "macro_f1": 0.5556453126881764,
946
+ "kappa": 0.7186114394046562,
947
+ "per_class_iou": [
948
+ 0.7790742463552546,
949
+ 0.6869866622221532,
950
+ 0.8210746853050781,
951
+ 0.29118679756515975,
952
+ 0.7695933297043243,
953
+ 0.3177991046369946,
954
+ 0.3580516175936023,
955
+ 0.5833144784746076,
956
+ 0.6887001682882521,
957
+ 0.018319123020706457,
958
+ 0.49909281098994684,
959
+ 0.23546742913973148,
960
+ 0.4093449011102125,
961
+ 0.20079224079162106,
962
+ 0.4989499074670936,
963
+ 0.25451457866068566,
964
+ 0.05835040080296228,
965
+ 0.20958940505630608
966
+ ],
967
+ "confusion_matrix": [
968
+ [
969
+ 0,
970
+ 0,
971
+ 0,
972
+ 0,
973
+ 0,
974
+ 0,
975
+ 0,
976
+ 0,
977
+ 0,
978
+ 0,
979
+ 0,
980
+ 0,
981
+ 0,
982
+ 0,
983
+ 0,
984
+ 0,
985
+ 0,
986
+ 0,
987
+ 0,
988
+ 0
989
+ ],
990
+ [
991
+ 0,
992
+ 1300525,
993
+ 7446,
994
+ 16746,
995
+ 2308,
996
+ 1400,
997
+ 1351,
998
+ 2729,
999
+ 18522,
1000
+ 559,
1001
+ 897,
1002
+ 5517,
1003
+ 3855,
1004
+ 355,
1005
+ 37587,
1006
+ 1894,
1007
+ 58630,
1008
+ 5186,
1009
+ 496,
1010
+ 0
1011
+ ],
1012
+ [
1013
+ 0,
1014
+ 23039,
1015
+ 486379,
1016
+ 7284,
1017
+ 6433,
1018
+ 2808,
1019
+ 2042,
1020
+ 157,
1021
+ 698,
1022
+ 520,
1023
+ 12018,
1024
+ 10775,
1025
+ 347,
1026
+ 539,
1027
+ 1408,
1028
+ 384,
1029
+ 493,
1030
+ 5261,
1031
+ 95,
1032
+ 0
1033
+ ],
1034
+ [
1035
+ 0,
1036
+ 24713,
1037
+ 2948,
1038
+ 621556,
1039
+ 294,
1040
+ 1044,
1041
+ 274,
1042
+ 1223,
1043
+ 1590,
1044
+ 6900,
1045
+ 1007,
1046
+ 185,
1047
+ 1938,
1048
+ 196,
1049
+ 3333,
1050
+ 11097,
1051
+ 403,
1052
+ 997,
1053
+ 8591,
1054
+ 0
1055
+ ],
1056
+ [
1057
+ 0,
1058
+ 16013,
1059
+ 61212,
1060
+ 1846,
1061
+ 54486,
1062
+ 5665,
1063
+ 5344,
1064
+ 92,
1065
+ 192,
1066
+ 27,
1067
+ 2264,
1068
+ 4833,
1069
+ 288,
1070
+ 293,
1071
+ 1139,
1072
+ 427,
1073
+ 200,
1074
+ 9059,
1075
+ 12,
1076
+ 0
1077
+ ],
1078
+ [
1079
+ 0,
1080
+ 4465,
1081
+ 1694,
1082
+ 1057,
1083
+ 631,
1084
+ 115930,
1085
+ 161,
1086
+ 59,
1087
+ 34,
1088
+ 269,
1089
+ 835,
1090
+ 429,
1091
+ 85,
1092
+ 83,
1093
+ 776,
1094
+ 71,
1095
+ 196,
1096
+ 2343,
1097
+ 1,
1098
+ 0
1099
+ ],
1100
+ [
1101
+ 0,
1102
+ 4481,
1103
+ 8265,
1104
+ 1232,
1105
+ 5124,
1106
+ 286,
1107
+ 23213,
1108
+ 171,
1109
+ 887,
1110
+ 172,
1111
+ 2091,
1112
+ 4177,
1113
+ 61,
1114
+ 437,
1115
+ 1715,
1116
+ 314,
1117
+ 219,
1118
+ 917,
1119
+ 0,
1120
+ 0
1121
+ ],
1122
+ [
1123
+ 0,
1124
+ 2027,
1125
+ 155,
1126
+ 6356,
1127
+ 139,
1128
+ 303,
1129
+ 1858,
1130
+ 38415,
1131
+ 7743,
1132
+ 4734,
1133
+ 680,
1134
+ 676,
1135
+ 2861,
1136
+ 774,
1137
+ 2074,
1138
+ 7390,
1139
+ 779,
1140
+ 3977,
1141
+ 992,
1142
+ 0
1143
+ ],
1144
+ [
1145
+ 0,
1146
+ 19888,
1147
+ 172,
1148
+ 7644,
1149
+ 2,
1150
+ 0,
1151
+ 76,
1152
+ 3726,
1153
+ 141795,
1154
+ 0,
1155
+ 12,
1156
+ 1116,
1157
+ 1569,
1158
+ 4,
1159
+ 1561,
1160
+ 668,
1161
+ 8079,
1162
+ 136,
1163
+ 1029,
1164
+ 0
1165
+ ],
1166
+ [
1167
+ 0,
1168
+ 2017,
1169
+ 159,
1170
+ 1358,
1171
+ 209,
1172
+ 2604,
1173
+ 273,
1174
+ 119,
1175
+ 276,
1176
+ 61795,
1177
+ 32,
1178
+ 24,
1179
+ 533,
1180
+ 87,
1181
+ 232,
1182
+ 937,
1183
+ 206,
1184
+ 176,
1185
+ 10,
1186
+ 0
1187
+ ],
1188
+ [
1189
+ 0,
1190
+ 4587,
1191
+ 46739,
1192
+ 582,
1193
+ 2043,
1194
+ 1039,
1195
+ 424,
1196
+ 18,
1197
+ 28,
1198
+ 21,
1199
+ 1504,
1200
+ 51,
1201
+ 143,
1202
+ 7,
1203
+ 325,
1204
+ 127,
1205
+ 30,
1206
+ 693,
1207
+ 1,
1208
+ 0
1209
+ ],
1210
+ [
1211
+ 0,
1212
+ 4310,
1213
+ 2697,
1214
+ 87,
1215
+ 95,
1216
+ 45,
1217
+ 3434,
1218
+ 197,
1219
+ 1499,
1220
+ 22,
1221
+ 95,
1222
+ 53915,
1223
+ 109,
1224
+ 118,
1225
+ 2015,
1226
+ 46,
1227
+ 1234,
1228
+ 30,
1229
+ 12,
1230
+ 0
1231
+ ],
1232
+ [
1233
+ 0,
1234
+ 3747,
1235
+ 198,
1236
+ 6434,
1237
+ 582,
1238
+ 63,
1239
+ 939,
1240
+ 10160,
1241
+ 4113,
1242
+ 2214,
1243
+ 200,
1244
+ 1886,
1245
+ 18941,
1246
+ 977,
1247
+ 3052,
1248
+ 2047,
1249
+ 2657,
1250
+ 391,
1251
+ 2114,
1252
+ 0
1253
+ ],
1254
+ [
1255
+ 0,
1256
+ 708,
1257
+ 200,
1258
+ 1622,
1259
+ 211,
1260
+ 39,
1261
+ 1482,
1262
+ 924,
1263
+ 575,
1264
+ 371,
1265
+ 187,
1266
+ 574,
1267
+ 2023,
1268
+ 11135,
1269
+ 558,
1270
+ 887,
1271
+ 392,
1272
+ 635,
1273
+ 90,
1274
+ 0
1275
+ ],
1276
+ [
1277
+ 0,
1278
+ 64737,
1279
+ 894,
1280
+ 2545,
1281
+ 1168,
1282
+ 1210,
1283
+ 726,
1284
+ 1486,
1285
+ 7208,
1286
+ 463,
1287
+ 98,
1288
+ 1609,
1289
+ 737,
1290
+ 135,
1291
+ 38879,
1292
+ 625,
1293
+ 4378,
1294
+ 628,
1295
+ 268,
1296
+ 0
1297
+ ],
1298
+ [
1299
+ 0,
1300
+ 1670,
1301
+ 191,
1302
+ 8498,
1303
+ 96,
1304
+ 138,
1305
+ 2,
1306
+ 774,
1307
+ 31,
1308
+ 1499,
1309
+ 44,
1310
+ 1876,
1311
+ 1311,
1312
+ 30,
1313
+ 786,
1314
+ 47990,
1315
+ 15,
1316
+ 341,
1317
+ 3024,
1318
+ 0
1319
+ ],
1320
+ [
1321
+ 0,
1322
+ 14944,
1323
+ 303,
1324
+ 1546,
1325
+ 2,
1326
+ 40,
1327
+ 144,
1328
+ 1018,
1329
+ 8687,
1330
+ 32,
1331
+ 16,
1332
+ 3998,
1333
+ 1102,
1334
+ 98,
1335
+ 5007,
1336
+ 20,
1337
+ 39717,
1338
+ 18,
1339
+ 167,
1340
+ 0
1341
+ ],
1342
+ [
1343
+ 0,
1344
+ 8815,
1345
+ 13995,
1346
+ 1557,
1347
+ 3471,
1348
+ 4775,
1349
+ 725,
1350
+ 14,
1351
+ 98,
1352
+ 207,
1353
+ 3232,
1354
+ 1,
1355
+ 482,
1356
+ 415,
1357
+ 458,
1358
+ 204,
1359
+ 15,
1360
+ 4302,
1361
+ 3,
1362
+ 0
1363
+ ],
1364
+ [
1365
+ 0,
1366
+ 3157,
1367
+ 41,
1368
+ 2320,
1369
+ 917,
1370
+ 60,
1371
+ 26,
1372
+ 2489,
1373
+ 3427,
1374
+ 670,
1375
+ 30,
1376
+ 339,
1377
+ 2281,
1378
+ 41,
1379
+ 3808,
1380
+ 728,
1381
+ 1265,
1382
+ 170,
1383
+ 10255,
1384
+ 0
1385
+ ],
1386
+ [
1387
+ 0,
1388
+ 0,
1389
+ 0,
1390
+ 0,
1391
+ 0,
1392
+ 0,
1393
+ 0,
1394
+ 0,
1395
+ 0,
1396
+ 0,
1397
+ 0,
1398
+ 0,
1399
+ 0,
1400
+ 0,
1401
+ 0,
1402
+ 0,
1403
+ 0,
1404
+ 0,
1405
+ 0,
1406
+ 0
1407
+ ]
1408
+ ]
1409
+ },
1410
+ "records": {
1411
+ "add:0.25": {
1412
+ "miou": 0.49455547330691263,
1413
+ "oa": 0.8109266736579659,
1414
+ "macro_f1": 0.6234136021853756,
1415
+ "kappa": 0.7642966739749818,
1416
+ "per_class_iou": [
1417
+ 0.8061330522981268,
1418
+ 0.7198486670090578,
1419
+ 0.8757351877577422,
1420
+ 0.46213693236161063,
1421
+ 0.8703389461776095,
1422
+ 0.38416520104311963,
1423
+ 0.4490553274645572,
1424
+ 0.6216216216216216,
1425
+ 0.7901944411308601,
1426
+ 0.07114146695276376,
1427
+ 0.5587868716244287,
1428
+ 0.3175281724644782,
1429
+ 0.4373326486446833,
1430
+ 0.2655897022970766,
1431
+ 0.6168043633350977,
1432
+ 0.28662647573048294,
1433
+ 0.0918118400487935,
1434
+ 0.27714760156231727
1435
+ ],
1436
+ "confusion_matrix": [
1437
+ [
1438
+ 0,
1439
+ 0,
1440
+ 0,
1441
+ 0,
1442
+ 0,
1443
+ 0,
1444
+ 0,
1445
+ 0,
1446
+ 0,
1447
+ 0,
1448
+ 0,
1449
+ 0,
1450
+ 0,
1451
+ 0,
1452
+ 0,
1453
+ 0,
1454
+ 0,
1455
+ 0,
1456
+ 0,
1457
+ 0
1458
+ ],
1459
+ [
1460
+ 0,
1461
+ 1311069,
1462
+ 6756,
1463
+ 8420,
1464
+ 815,
1465
+ 744,
1466
+ 883,
1467
+ 2246,
1468
+ 19285,
1469
+ 602,
1470
+ 381,
1471
+ 3742,
1472
+ 6998,
1473
+ 405,
1474
+ 29504,
1475
+ 1126,
1476
+ 71312,
1477
+ 1029,
1478
+ 686,
1479
+ 0
1480
+ ],
1481
+ [
1482
+ 0,
1483
+ 12671,
1484
+ 493367,
1485
+ 5115,
1486
+ 3930,
1487
+ 1130,
1488
+ 1764,
1489
+ 172,
1490
+ 746,
1491
+ 546,
1492
+ 21217,
1493
+ 15339,
1494
+ 437,
1495
+ 131,
1496
+ 1045,
1497
+ 166,
1498
+ 699,
1499
+ 2161,
1500
+ 44,
1501
+ 0
1502
+ ],
1503
+ [
1504
+ 0,
1505
+ 17785,
1506
+ 2752,
1507
+ 641744,
1508
+ 302,
1509
+ 960,
1510
+ 172,
1511
+ 3539,
1512
+ 862,
1513
+ 3810,
1514
+ 169,
1515
+ 19,
1516
+ 2132,
1517
+ 202,
1518
+ 3012,
1519
+ 4846,
1520
+ 607,
1521
+ 129,
1522
+ 5247,
1523
+ 0
1524
+ ],
1525
+ [
1526
+ 0,
1527
+ 9412,
1528
+ 46049,
1529
+ 1786,
1530
+ 82625,
1531
+ 1310,
1532
+ 4247,
1533
+ 55,
1534
+ 196,
1535
+ 62,
1536
+ 7994,
1537
+ 4414,
1538
+ 287,
1539
+ 376,
1540
+ 482,
1541
+ 80,
1542
+ 252,
1543
+ 3761,
1544
+ 4,
1545
+ 0
1546
+ ],
1547
+ [
1548
+ 0,
1549
+ 2675,
1550
+ 1166,
1551
+ 868,
1552
+ 380,
1553
+ 120018,
1554
+ 262,
1555
+ 124,
1556
+ 19,
1557
+ 220,
1558
+ 688,
1559
+ 194,
1560
+ 22,
1561
+ 35,
1562
+ 1476,
1563
+ 29,
1564
+ 106,
1565
+ 837,
1566
+ 0,
1567
+ 0
1568
+ ],
1569
+ [
1570
+ 0,
1571
+ 4040,
1572
+ 7283,
1573
+ 711,
1574
+ 3621,
1575
+ 289,
1576
+ 25338,
1577
+ 175,
1578
+ 883,
1579
+ 118,
1580
+ 2677,
1581
+ 5012,
1582
+ 146,
1583
+ 454,
1584
+ 1986,
1585
+ 330,
1586
+ 163,
1587
+ 536,
1588
+ 0,
1589
+ 0
1590
+ ],
1591
+ [
1592
+ 0,
1593
+ 1538,
1594
+ 141,
1595
+ 3611,
1596
+ 17,
1597
+ 249,
1598
+ 89,
1599
+ 47797,
1600
+ 7620,
1601
+ 3775,
1602
+ 49,
1603
+ 378,
1604
+ 1239,
1605
+ 1298,
1606
+ 2624,
1607
+ 9685,
1608
+ 632,
1609
+ 168,
1610
+ 1023,
1611
+ 0
1612
+ ],
1613
+ [
1614
+ 0,
1615
+ 18456,
1616
+ 124,
1617
+ 4622,
1618
+ 0,
1619
+ 0,
1620
+ 17,
1621
+ 1317,
1622
+ 151754,
1623
+ 0,
1624
+ 1,
1625
+ 338,
1626
+ 854,
1627
+ 23,
1628
+ 403,
1629
+ 328,
1630
+ 9076,
1631
+ 0,
1632
+ 164,
1633
+ 0
1634
+ ],
1635
+ [
1636
+ 0,
1637
+ 482,
1638
+ 193,
1639
+ 1058,
1640
+ 35,
1641
+ 123,
1642
+ 379,
1643
+ 620,
1644
+ 116,
1645
+ 66242,
1646
+ 0,
1647
+ 28,
1648
+ 795,
1649
+ 26,
1650
+ 446,
1651
+ 416,
1652
+ 71,
1653
+ 2,
1654
+ 15,
1655
+ 0
1656
+ ],
1657
+ [
1658
+ 0,
1659
+ 3092,
1660
+ 44739,
1661
+ 412,
1662
+ 1763,
1663
+ 216,
1664
+ 156,
1665
+ 5,
1666
+ 11,
1667
+ 5,
1668
+ 7062,
1669
+ 21,
1670
+ 6,
1671
+ 0,
1672
+ 299,
1673
+ 8,
1674
+ 83,
1675
+ 484,
1676
+ 0,
1677
+ 0
1678
+ ],
1679
+ [
1680
+ 0,
1681
+ 1322,
1682
+ 2401,
1683
+ 20,
1684
+ 0,
1685
+ 0,
1686
+ 1773,
1687
+ 184,
1688
+ 1235,
1689
+ 0,
1690
+ 143,
1691
+ 60525,
1692
+ 38,
1693
+ 0,
1694
+ 1508,
1695
+ 0,
1696
+ 693,
1697
+ 4,
1698
+ 114,
1699
+ 0
1700
+ ],
1701
+ [
1702
+ 0,
1703
+ 3196,
1704
+ 123,
1705
+ 4634,
1706
+ 46,
1707
+ 7,
1708
+ 910,
1709
+ 9697,
1710
+ 3978,
1711
+ 1955,
1712
+ 63,
1713
+ 3941,
1714
+ 25923,
1715
+ 639,
1716
+ 1593,
1717
+ 517,
1718
+ 2180,
1719
+ 171,
1720
+ 1142,
1721
+ 0
1722
+ ],
1723
+ [
1724
+ 0,
1725
+ 589,
1726
+ 140,
1727
+ 1406,
1728
+ 6,
1729
+ 31,
1730
+ 92,
1731
+ 2996,
1732
+ 519,
1733
+ 719,
1734
+ 7,
1735
+ 314,
1736
+ 2523,
1737
+ 11923,
1738
+ 406,
1739
+ 408,
1740
+ 473,
1741
+ 9,
1742
+ 52,
1743
+ 0
1744
+ ],
1745
+ [
1746
+ 0,
1747
+ 57524,
1748
+ 1032,
1749
+ 1194,
1750
+ 723,
1751
+ 333,
1752
+ 1050,
1753
+ 1045,
1754
+ 7046,
1755
+ 405,
1756
+ 646,
1757
+ 1114,
1758
+ 551,
1759
+ 254,
1760
+ 47497,
1761
+ 318,
1762
+ 6554,
1763
+ 377,
1764
+ 131,
1765
+ 0
1766
+ ],
1767
+ [
1768
+ 0,
1769
+ 1525,
1770
+ 170,
1771
+ 6485,
1772
+ 90,
1773
+ 129,
1774
+ 5,
1775
+ 653,
1776
+ 17,
1777
+ 376,
1778
+ 8,
1779
+ 2255,
1780
+ 478,
1781
+ 3,
1782
+ 400,
1783
+ 53604,
1784
+ 52,
1785
+ 13,
1786
+ 2053,
1787
+ 0
1788
+ ],
1789
+ [
1790
+ 0,
1791
+ 12728,
1792
+ 331,
1793
+ 778,
1794
+ 2,
1795
+ 0,
1796
+ 34,
1797
+ 422,
1798
+ 10506,
1799
+ 48,
1800
+ 33,
1801
+ 1127,
1802
+ 965,
1803
+ 73,
1804
+ 710,
1805
+ 23,
1806
+ 49018,
1807
+ 5,
1808
+ 56,
1809
+ 0
1810
+ ],
1811
+ [
1812
+ 0,
1813
+ 8636,
1814
+ 11253,
1815
+ 1214,
1816
+ 3447,
1817
+ 3258,
1818
+ 322,
1819
+ 34,
1820
+ 20,
1821
+ 20,
1822
+ 6827,
1823
+ 1,
1824
+ 610,
1825
+ 689,
1826
+ 1495,
1827
+ 80,
1828
+ 44,
1829
+ 4817,
1830
+ 2,
1831
+ 0
1832
+ ],
1833
+ [
1834
+ 0,
1835
+ 4694,
1836
+ 43,
1837
+ 2183,
1838
+ 220,
1839
+ 0,
1840
+ 39,
1841
+ 1222,
1842
+ 3590,
1843
+ 122,
1844
+ 2,
1845
+ 118,
1846
+ 2844,
1847
+ 42,
1848
+ 3653,
1849
+ 230,
1850
+ 1161,
1851
+ 11,
1852
+ 11850,
1853
+ 0
1854
+ ],
1855
+ [
1856
+ 0,
1857
+ 0,
1858
+ 0,
1859
+ 0,
1860
+ 0,
1861
+ 0,
1862
+ 0,
1863
+ 0,
1864
+ 0,
1865
+ 0,
1866
+ 0,
1867
+ 0,
1868
+ 0,
1869
+ 0,
1870
+ 0,
1871
+ 0,
1872
+ 0,
1873
+ 0,
1874
+ 0,
1875
+ 0
1876
+ ]
1877
+ ]
1878
+ }
1879
+ },
1880
+ "seconds": 486.47970066498965,
1881
+ "test_used_for_selection": false,
1882
+ "model_count": 1
1883
+ }
main_method/verification.json ADDED
@@ -0,0 +1,15 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "python_files_compile": true,
3
+ "strict_checkpoint_loading": true,
4
+ "all_final_component_hashes_verified": true,
5
+ "original_vs_packaged_cpu_max_absolute_error": {
6
+ "sam": 0.0,
7
+ "original": 0.0,
8
+ "new": 0.0,
9
+ "attention": 0.0,
10
+ "feature_summaries": 0.0
11
+ },
12
+ "original_cuda_test_scores_preserved": true,
13
+ "packaging_gpu_reevaluation_performed": false,
14
+ "reason": "GPU driver currently unavailable; original recorded metrics are retained, not represented as newly reproduced GPU evaluations."
15
+ }
visuals/dataset_protocol.png ADDED

Git LFS Details

  • SHA256: 86bbdbf8874a902fd443a6ca4a3c7756a564594d69ff50adbbd36c757c90518a
  • Pointer size: 131 Bytes
  • Size of remote file: 127 kB
visuals/dataset_protocol.svg ADDED
visuals/dataset_protocol_walkthrough.gif ADDED

Git LFS Details

  • SHA256: e2a05b65246ed26724e0cdb05bfd1a85d2db0897b8563de2d01a2f11213dbcb7
  • Pointer size: 131 Bytes
  • Size of remote file: 118 kB
visuals/final_per_class.png ADDED

Git LFS Details

  • SHA256: 086dc5599b914d706ae8e29eedf4ff1ec30f508daa59268902ae443848c721cd
  • Pointer size: 131 Bytes
  • Size of remote file: 131 kB
visuals/final_per_class.svg ADDED
visuals/final_results.png ADDED

Git LFS Details

  • SHA256: 232da66beafc479c7c5aadaa1ed05ba689d8d62cc5f91d8ae0496413cb777982
  • Pointer size: 131 Bytes
  • Size of remote file: 113 kB
visuals/final_results.svg ADDED
visuals/final_system_architecture.png ADDED

Git LFS Details

  • SHA256: 1f9c3486a5270ddf9107128320377aee08d31279ee444bdacdc3b100127680aa
  • Pointer size: 131 Bytes
  • Size of remote file: 284 kB
visuals/final_system_architecture.svg ADDED
visuals/final_system_walkthrough.gif ADDED

Git LFS Details

  • SHA256: 810bc15ddcec150d8a4387187bdae811ad433c9b90dcb2afa9376a74d82826fa
  • Pointer size: 131 Bytes
  • Size of remote file: 358 kB
visuals/temporal_cnn_explained.png ADDED

Git LFS Details

  • SHA256: 1d695c9874d64fd78cacea64f8ec459f97c4956052cc55e504036a7437732b67
  • Pointer size: 131 Bytes
  • Size of remote file: 112 kB
visuals/temporal_cnn_explained.svg ADDED
visuals/temporal_cnn_walkthrough.gif ADDED

Git LFS Details

  • SHA256: 5fbdae8a6ac8ba26cacd2cac71bd3b4c291fced4d53a3a3b2d8f2abd100bcb14
  • Pointer size: 131 Bytes
  • Size of remote file: 113 kB