Mohamed-ENNHIRI commited on
Commit
a3200e4
·
1 Parent(s): eb8193e

Add Tab 7: resolution study (segformer_b0 + U-Net at 192/256/512)

Browse files
.gitignore CHANGED
@@ -16,6 +16,17 @@ pv_panel_models/*/checkpoints/
16
  pv_panel_models/predictions/
17
  pv_panel_models/source_images
18
 
 
 
 
 
 
 
 
 
 
 
 
19
  # ── Hybrid model artifacts (large pretrained) ──
20
  hybrid_20_epochs_4ep_stop/*.pth
21
  hybrid_20_epochs_4ep_stop/prediction_*.png
 
16
  pv_panel_models/predictions/
17
  pv_panel_models/source_images
18
 
19
+ # Tab 7 (resolution study) needs the 3 segformer_b0 checkpoints live on the
20
+ # Space so the inference grid produces real masks. 3 × 15 MB = 45 MB.
21
+ # U-Net at 192/256 (~119 MB each) stays ignored, those cells degrade
22
+ # gracefully to a "missing checkpoint" warning. Order matters: un-ignore the
23
+ # directory first, re-ignore everything inside, then whitelist the trio.
24
+ !experiments/resolution_study/checkpoints/
25
+ experiments/resolution_study/checkpoints/*
26
+ !experiments/resolution_study/checkpoints/segformer_b0_res192_best.pth
27
+ !experiments/resolution_study/checkpoints/segformer_b0_res256_best.pth
28
+ !experiments/resolution_study/checkpoints/segformer_b0_res512_best.pth
29
+
30
  # ── Hybrid model artifacts (large pretrained) ──
31
  hybrid_20_epochs_4ep_stop/*.pth
32
  hybrid_20_epochs_4ep_stop/prediction_*.png
app.py CHANGED
@@ -37,6 +37,20 @@ BASELINE_CKPT = BASELINE_DIR / "checkpoints"
37
  GRID_LOGS = GRID_DIR / "logs"
38
  GRID_CSV = GRID_DIR / "results" / "grid_results.csv"
39
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
40
  # Make the baseline experiment importable so we can load its model registry.
41
  sys.path.insert(0, str(BASELINE_DIR))
42
  from models import MODEL_REGISTRY, PRETTY_NAME # noqa: E402
@@ -169,6 +183,42 @@ def load_baseline_ckpt(model_name: str, share: int, kind: str, device: str):
169
  return model, output_is_prob
170
 
171
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
172
  def preprocess(image: Image.Image, image_size: int = 128):
173
  tf = transforms.Compose([
174
  transforms.Resize((image_size, image_size)),
@@ -218,13 +268,14 @@ if st.button("🔄 Reload from disk"):
218
  baseline_logs = load_all_baseline_logs()
219
  grid_df = load_grid_results()
220
 
221
- t1, t2, t3, t4, t5, t6 = st.tabs([
222
  "1 · Baseline curves",
223
  "2 · Baseline scaling",
224
  "3 · Baseline inference",
225
  "4 · Grid heatmap",
226
  "5 · Top fine-tune configs",
227
  "6 · Per-config curves",
 
228
  ])
229
 
230
 
@@ -599,3 +650,193 @@ with t6:
599
  legend=dict(orientation="h", y=-0.2),
600
  )
601
  st.plotly_chart(fig, use_container_width=True)
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
37
  GRID_LOGS = GRID_DIR / "logs"
38
  GRID_CSV = GRID_DIR / "results" / "grid_results.csv"
39
 
40
+ RES_DIR = ROOT / "experiments" / "resolution_study"
41
+ RES_LOGS = RES_DIR / "logs"
42
+ RES_CKPT = RES_DIR / "checkpoints"
43
+ RES_CSV = RES_DIR / "results" / "resolution_results.csv"
44
+
45
+ # (model, image_size) pairs covered by the resolution study.
46
+ RES_CONFIGS = [
47
+ ("segformer_b0", 192),
48
+ ("segformer_b0", 256),
49
+ ("segformer_b0", 512),
50
+ ("unet", 192),
51
+ ("unet", 256),
52
+ ]
53
+
54
  # Make the baseline experiment importable so we can load its model registry.
55
  sys.path.insert(0, str(BASELINE_DIR))
56
  from models import MODEL_REGISTRY, PRETTY_NAME # noqa: E402
 
183
  return model, output_is_prob
184
 
185
 
186
+ @st.cache_resource(show_spinner=False)
187
+ def load_res_ckpt(model_name: str, image_size: int, device: str):
188
+ """Load a resolution-study checkpoint. Same architectures as the baseline,
189
+ weights are size-agnostic at inference time (both segformer_b0 and U-Net
190
+ are fully convolutional / patch-based)."""
191
+ p = RES_CKPT / f"{model_name}_res{image_size}_best.pth"
192
+ if not p.is_file():
193
+ return None, False
194
+ builder = MODEL_REGISTRY[model_name]
195
+ model, _, output_is_prob = builder()
196
+ state = torch.load(p, map_location=device, weights_only=False)
197
+ if isinstance(state, dict) and "model_state_dict" in state:
198
+ model.load_state_dict(state["model_state_dict"])
199
+ output_is_prob = state.get("output_is_prob", output_is_prob)
200
+ else:
201
+ model.load_state_dict(state)
202
+ model.to(device).eval()
203
+ return model, output_is_prob
204
+
205
+
206
+ @st.cache_data(show_spinner=False)
207
+ def load_res_log(model_name: str, image_size: int):
208
+ p = RES_LOGS / f"{model_name}_res{image_size}.json"
209
+ if not p.is_file():
210
+ return None
211
+ with open(p) as f:
212
+ return json.load(f)
213
+
214
+
215
+ @st.cache_data(show_spinner=False)
216
+ def load_res_csv():
217
+ if not RES_CSV.is_file():
218
+ return pd.DataFrame()
219
+ return pd.read_csv(RES_CSV)
220
+
221
+
222
  def preprocess(image: Image.Image, image_size: int = 128):
223
  tf = transforms.Compose([
224
  transforms.Resize((image_size, image_size)),
 
268
  baseline_logs = load_all_baseline_logs()
269
  grid_df = load_grid_results()
270
 
271
+ t1, t2, t3, t4, t5, t6, t7 = st.tabs([
272
  "1 · Baseline curves",
273
  "2 · Baseline scaling",
274
  "3 · Baseline inference",
275
  "4 · Grid heatmap",
276
  "5 · Top fine-tune configs",
277
  "6 · Per-config curves",
278
+ "7 · Resolution study",
279
  ])
280
 
281
 
 
650
  legend=dict(orientation="h", y=-0.2),
651
  )
652
  st.plotly_chart(fig, use_container_width=True)
653
+
654
+
655
+ # ─── Tab 7: Resolution study ──────────────────────────────────────────────
656
+ with t7:
657
+ st.subheader("Effect of training resolution on segformer_b0 and U-Net")
658
+ st.caption(
659
+ "Same architectures, same loss recipe (0.5·BCE + 0.5·Dice), same 100% "
660
+ "data share. Only the input image size is varied. The 128 px baseline "
661
+ "carried into each config as `baseline_dice_at_128` is shown as Δ."
662
+ )
663
+
664
+ res_df = load_res_csv()
665
+
666
+ # ── Summary table ──────────────────────────────────────────────────
667
+ if res_df.empty:
668
+ st.info("No resolution-study results CSV found at "
669
+ f"`{RES_CSV.relative_to(ROOT)}`.")
670
+ else:
671
+ show = res_df.copy()
672
+ show["best_val_dice"] = show["best_val_dice"].round(4)
673
+ show["best_val_miou"] = show["best_val_miou"].round(4)
674
+ show["best_val_iou"] = show["best_val_iou"].round(4)
675
+ show["delta_vs_128"] = show["delta_vs_128"].apply(
676
+ lambda v: f"{v:+.4f}" if pd.notna(v) else "—"
677
+ )
678
+ show["wall_clock"] = show["wall_clock_seconds"].apply(
679
+ lambda s: f"{int(s)//60} min {int(s)%60:02d} s" if pd.notna(s) else "—"
680
+ )
681
+ st.dataframe(
682
+ show[["cfg_id", "model", "image_size", "best_epoch",
683
+ "best_val_dice", "best_val_miou", "best_val_iou",
684
+ "delta_vs_128", "wall_clock"]],
685
+ hide_index=True, use_container_width=True,
686
+ )
687
+
688
+ # ── Charts ──────────────────────────────────────────────────────────
689
+ col_left, col_right = st.columns(2)
690
+
691
+ with col_left:
692
+ metric_choices = [
693
+ ("val_dice", "Val Dice"),
694
+ ("val_iou", "Val Foreground IoU"),
695
+ ("val_miou", "Val mIoU"),
696
+ ("val_loss", "Val Loss"),
697
+ ("train_dice", "Train Dice"),
698
+ ("train_loss", "Train Loss"),
699
+ ]
700
+ m_key, m_label = st.selectbox(
701
+ "Curve metric", metric_choices,
702
+ format_func=lambda x: x[1], key="t7_metric",
703
+ )
704
+ archs = st.multiselect(
705
+ "Architectures", ["segformer_b0", "unet"],
706
+ default=["segformer_b0", "unet"], key="t7_archs",
707
+ )
708
+ fig_curves = go.Figure()
709
+ for model_name, image_size in RES_CONFIGS:
710
+ if model_name not in archs:
711
+ continue
712
+ log = load_res_log(model_name, image_size)
713
+ if not log:
714
+ continue
715
+ xs = [e["epoch"] for e in log["epochs"]]
716
+ ys = [e.get(m_key) for e in log["epochs"]]
717
+ fig_curves.add_trace(go.Scatter(
718
+ x=xs, y=ys, mode="lines+markers",
719
+ name=f"{model_name} · {image_size}px",
720
+ line=dict(dash=("solid" if model_name == "segformer_b0" else "dot")),
721
+ ))
722
+ fig_curves.update_layout(
723
+ xaxis_title="Epoch", yaxis_title=m_label, height=420,
724
+ margin=dict(l=10, r=10, t=10, b=10),
725
+ legend=dict(orientation="h", y=-0.22),
726
+ )
727
+ st.plotly_chart(fig_curves, use_container_width=True)
728
+
729
+ with col_right:
730
+ st.markdown("**Training cost vs resolution**")
731
+ rows = []
732
+ for model_name, image_size in RES_CONFIGS:
733
+ log = load_res_log(model_name, image_size)
734
+ if not log:
735
+ continue
736
+ sec = [e.get("epoch_seconds") for e in log["epochs"]
737
+ if e.get("epoch_seconds") is not None]
738
+ if not sec:
739
+ continue
740
+ rows.append({
741
+ "cfg": f"{model_name} · {image_size}px",
742
+ "model": model_name,
743
+ "image_size": image_size,
744
+ "sec_per_epoch": sum(sec) / len(sec),
745
+ })
746
+ if rows:
747
+ cost_df = pd.DataFrame(rows)
748
+ fig_cost = px.bar(
749
+ cost_df, x="cfg", y="sec_per_epoch", color="model",
750
+ labels={"cfg": "Config", "sec_per_epoch": "Seconds per epoch"},
751
+ color_discrete_map={"segformer_b0": "#0e7490", "unet": "#ef4444"},
752
+ height=420,
753
+ )
754
+ fig_cost.update_layout(
755
+ margin=dict(l=10, r=10, t=10, b=10),
756
+ legend=dict(orientation="h", y=-0.22),
757
+ showlegend=True,
758
+ )
759
+ st.plotly_chart(fig_cost, use_container_width=True)
760
+ else:
761
+ st.info("No `epoch_seconds` field in the logs.")
762
+
763
+ st.divider()
764
+
765
+ # ── Inference grid: upload an image, run through every res config ──
766
+ st.markdown("##### Run an image through every resolution checkpoint")
767
+ st.caption(
768
+ "Each cell uses the checkpoint at its own training resolution. The "
769
+ "input is resized to that size before inference. Cells with a missing "
770
+ "`.pth` on disk show a warning (deployed Spaces strip heavy weights)."
771
+ )
772
+
773
+ a, b, c = st.columns([2, 2, 2])
774
+ with a:
775
+ threshold_r = st.slider("Threshold", 0.0, 1.0, 0.5, 0.05, key="t7_thr")
776
+ with b:
777
+ view_r = st.radio("View", ["mask", "overlay", "heatmap"],
778
+ horizontal=True, key="t7_view")
779
+ with c:
780
+ cell_w_r = st.select_slider(
781
+ "Cell size (px)", options=[140, 180, 220, 260], value=220, key="t7_cell"
782
+ )
783
+
784
+ uploaded_r = st.file_uploader(
785
+ "Drop an image (jpg/png)", type=["jpg", "jpeg", "png"], key="t7_upload"
786
+ )
787
+
788
+ if uploaded_r is not None:
789
+ device = "cuda" if torch.cuda.is_available() else "cpu"
790
+ try:
791
+ raw_bytes = uploaded_r.getvalue()
792
+ img_r = Image.open(io.BytesIO(raw_bytes)).convert("RGB")
793
+ except Exception as e:
794
+ st.error(f"Could not decode uploaded image: {e}")
795
+ st.stop()
796
+
797
+ st.caption(
798
+ f"📁 `{uploaded_r.name}` — {img_r.size[0]}×{img_r.size[1]} px, "
799
+ f"{len(raw_bytes)/1024:.1f} KB"
800
+ )
801
+
802
+ st.image([img_r], width=cell_w_r * 2, caption=["original"])
803
+
804
+ def render_cell_r(probs, mask, rgb):
805
+ if view_r == "mask":
806
+ return (mask * 255).astype(np.uint8)
807
+ if view_r == "overlay":
808
+ return overlay(rgb, mask)
809
+ return heatmap_rgb(probs)
810
+
811
+ # One row per architecture, columns per training resolution.
812
+ archs_in_grid = [
813
+ ("segformer_b0", [192, 256, 512]),
814
+ ("unet", [192, 256]),
815
+ ]
816
+ for model_name, sizes in archs_in_grid:
817
+ st.markdown(f"**{PRETTY_NAME.get(model_name, model_name)}**")
818
+ cols = st.columns(len(sizes))
819
+ for col, sz in zip(cols, sizes):
820
+ with col:
821
+ st.markdown(f"<small>trained @ {sz}×{sz}</small>",
822
+ unsafe_allow_html=True)
823
+ try:
824
+ with st.spinner(f"loading {model_name} res{sz}…"):
825
+ m, output_is_prob = load_res_ckpt(model_name, sz, device)
826
+ if m is None:
827
+ st.warning(f"missing `{model_name}_res{sz}_best.pth`")
828
+ continue
829
+ x_r = preprocess(img_r, image_size=sz)
830
+ rgb_small_r = (x_r.squeeze().permute(1, 2, 0).numpy() * 255).astype(np.uint8)
831
+ probs, mask = run_inference(m, x_r, device, output_is_prob, threshold_r)
832
+ cell_img = render_cell_r(probs, mask, rgb_small_r)
833
+ st.image(cell_img, width=cell_w_r)
834
+ st.caption(
835
+ f"cov={float(mask.mean())*100:.1f}% "
836
+ f"p[{probs.min():.2f},{probs.max():.2f}]"
837
+ )
838
+ except Exception as e:
839
+ st.error(f"{model_name} res{sz} — {type(e).__name__}")
840
+ st.exception(e)
841
+ else:
842
+ st.info("Upload an image to compare predictions across training resolutions.")
experiments/resolution_study/dataset.py ADDED
@@ -0,0 +1,54 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ """
2
+ SolarPanelDataset for the resolution study. Identical to the clean baseline's
3
+ dataset apart from taking image_size as an argument (which the trainer varies).
4
+ """
5
+ from pathlib import Path
6
+ import torch
7
+ from torch.utils.data import Dataset
8
+ from PIL import Image
9
+ import torchvision.transforms as transforms
10
+
11
+
12
+ class SolarPanelDataset(Dataset):
13
+ def __init__(self, image_dir, mask_dir, image_size=128, augment=False):
14
+ self.image_dir = Path(image_dir)
15
+ self.mask_dir = Path(mask_dir)
16
+ self.image_size = image_size
17
+ self.augment = augment
18
+
19
+ self.image_files = sorted(p.name for p in self.image_dir.iterdir() if p.suffix == ".jpg")
20
+
21
+ self.image_transform = transforms.Compose([
22
+ transforms.Resize((image_size, image_size)),
23
+ transforms.ToTensor(),
24
+ ])
25
+ self.mask_transform = transforms.Compose([
26
+ transforms.Resize((image_size, image_size)),
27
+ transforms.ToTensor(),
28
+ ])
29
+ self.augment_transform = transforms.Compose([
30
+ transforms.RandomHorizontalFlip(p=0.5),
31
+ transforms.RandomVerticalFlip(p=0.5),
32
+ transforms.RandomRotation(15),
33
+ ])
34
+
35
+ def __len__(self):
36
+ return len(self.image_files)
37
+
38
+ def __getitem__(self, idx):
39
+ img_name = self.image_files[idx]
40
+ image = Image.open(self.image_dir / img_name).convert("RGB")
41
+ mask = Image.open(self.mask_dir / img_name.replace(".jpg", "_mask.png")).convert("L")
42
+
43
+ image = self.image_transform(image)
44
+ mask = self.mask_transform(mask)
45
+
46
+ if self.augment:
47
+ seed = torch.randint(0, 2**32, (1,)).item()
48
+ torch.manual_seed(seed)
49
+ image = self.augment_transform(image)
50
+ torch.manual_seed(seed)
51
+ mask = self.augment_transform(mask)
52
+
53
+ mask = (mask > 0.5).float()
54
+ return image, mask
experiments/resolution_study/logs/segformer_b0_res192.json ADDED
@@ -0,0 +1,768 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "cfg_id": "segformer_b0_res192",
3
+ "model": "segformer_b0",
4
+ "image_size": 192,
5
+ "batch_size": 16,
6
+ "throttle": null,
7
+ "n_train": 5268,
8
+ "n_val": 1330,
9
+ "n_params": 3714401,
10
+ "baseline_dice_at_128": 0.928,
11
+ "epochs": [
12
+ {
13
+ "epoch": 1,
14
+ "lr": 0.0001,
15
+ "train_loss": 0.36348072924848757,
16
+ "val_loss": 0.17965388927786125,
17
+ "train_iou": 0.6049228848432731,
18
+ "train_miou": 0.7843301165995575,
19
+ "train_dice": 0.7538342066850722,
20
+ "train_pixel_acc": 0.965644869252839,
21
+ "val_iou": 0.7735207930145374,
22
+ "val_miou": 0.8780135101282893,
23
+ "val_dice": 0.872299660721482,
24
+ "val_pixel_acc": 0.983492524442615,
25
+ "epoch_seconds": 20.636714220046997
26
+ },
27
+ {
28
+ "epoch": 2,
29
+ "lr": 0.0001,
30
+ "train_loss": 0.1393380452399001,
31
+ "val_loss": 0.09731947985433397,
32
+ "train_iou": 0.7941240641679578,
33
+ "train_miou": 0.8898638568848936,
34
+ "train_dice": 0.8852498888210838,
35
+ "train_pixel_acc": 0.9863610344477001,
36
+ "val_iou": 0.829964213202899,
37
+ "val_miou": 0.9089634267745623,
38
+ "val_dice": 0.9070824524488951,
39
+ "val_pixel_acc": 0.9886306545987344,
40
+ "epoch_seconds": 19.131412506103516
41
+ },
42
+ {
43
+ "epoch": 3,
44
+ "lr": 0.0001,
45
+ "train_loss": 0.09614957363316506,
46
+ "val_loss": 0.07870335717286382,
47
+ "train_iou": 0.8173215785508956,
48
+ "train_miou": 0.902421757754986,
49
+ "train_dice": 0.8994793086676661,
50
+ "train_pixel_acc": 0.9881817286581583,
51
+ "val_iou": 0.8390255757721852,
52
+ "val_miou": 0.9139000983018752,
53
+ "val_dice": 0.912467544579839,
54
+ "val_pixel_acc": 0.9893950982599709,
55
+ "epoch_seconds": 19.381251573562622
56
+ },
57
+ {
58
+ "epoch": 4,
59
+ "lr": 0.0001,
60
+ "train_loss": 0.08036535381141938,
61
+ "val_loss": 0.06980270808119149,
62
+ "train_iou": 0.8308762104033839,
63
+ "train_miou": 0.9097081279529512,
64
+ "train_dice": 0.9076268572197165,
65
+ "train_pixel_acc": 0.9891508606569799,
66
+ "val_iou": 0.8513263966381401,
67
+ "val_miou": 0.9204617656480956,
68
+ "val_dice": 0.9196934675420612,
69
+ "val_pixel_acc": 0.9901819775676151,
70
+ "epoch_seconds": 19.334835052490234
71
+ },
72
+ {
73
+ "epoch": 5,
74
+ "lr": 0.0001,
75
+ "train_loss": 0.07181035382955363,
76
+ "val_loss": 0.06764538102738914,
77
+ "train_iou": 0.8420670893894415,
78
+ "train_miou": 0.9157078493848329,
79
+ "train_dice": 0.9142632146677645,
80
+ "train_pixel_acc": 0.989921006614886,
81
+ "val_iou": 0.8502533772532989,
82
+ "val_miou": 0.9200331647394764,
83
+ "val_dice": 0.9190669642397844,
84
+ "val_pixel_acc": 0.9903699678884692,
85
+ "epoch_seconds": 19.149539709091187
86
+ },
87
+ {
88
+ "epoch": 6,
89
+ "lr": 0.0001,
90
+ "train_loss": 0.06977333224406748,
91
+ "val_loss": 0.06358121889865115,
92
+ "train_iou": 0.8422380071501447,
93
+ "train_miou": 0.9158151960402674,
94
+ "train_dice": 0.9143639463318284,
95
+ "train_pixel_acc": 0.989960903720313,
96
+ "val_iou": 0.8569351745778485,
97
+ "val_miou": 0.9235020941009311,
98
+ "val_dice": 0.9229564782978084,
99
+ "val_pixel_acc": 0.9906265908912888,
100
+ "epoch_seconds": 19.103957176208496
101
+ },
102
+ {
103
+ "epoch": 7,
104
+ "lr": 0.0001,
105
+ "train_loss": 0.06500308307057077,
106
+ "val_loss": 0.06787777474770944,
107
+ "train_iou": 0.8508285324692412,
108
+ "train_miou": 0.9204110897550342,
109
+ "train_dice": 0.9194028701666139,
110
+ "train_pixel_acc": 0.9905339071019068,
111
+ "val_iou": 0.8465105601326729,
112
+ "val_miou": 0.9179047366712454,
113
+ "val_dice": 0.9168759479738374,
114
+ "val_pixel_acc": 0.989895270402567,
115
+ "epoch_seconds": 19.069132804870605
116
+ },
117
+ {
118
+ "epoch": 8,
119
+ "lr": 0.0001,
120
+ "train_loss": 0.06391221561440916,
121
+ "val_loss": 0.06250155340170577,
122
+ "train_iou": 0.8516347736181403,
123
+ "train_miou": 0.9208399099877657,
124
+ "train_dice": 0.9198733851320202,
125
+ "train_pixel_acc": 0.9905831502639095,
126
+ "val_iou": 0.8557021100069498,
127
+ "val_miou": 0.9228932731313642,
128
+ "val_dice": 0.9222408115963668,
129
+ "val_pixel_acc": 0.9906350960408815,
130
+ "epoch_seconds": 19.111664533615112
131
+ },
132
+ {
133
+ "epoch": 9,
134
+ "lr": 0.0001,
135
+ "train_loss": 0.06382298135396205,
136
+ "val_loss": 0.0582104504684962,
137
+ "train_iou": 0.851599781682861,
138
+ "train_miou": 0.9208231574050862,
139
+ "train_dice": 0.9198529726643937,
140
+ "train_pixel_acc": 0.9905843397620192,
141
+ "val_iou": 0.865572246881621,
142
+ "val_miou": 0.9281632305161429,
143
+ "val_dice": 0.9279428854373878,
144
+ "val_pixel_acc": 0.9912737165178552,
145
+ "epoch_seconds": 19.092104196548462
146
+ },
147
+ {
148
+ "epoch": 10,
149
+ "lr": 0.0001,
150
+ "train_loss": 0.06087259976475528,
151
+ "val_loss": 0.06101861529584442,
152
+ "train_iou": 0.8574453094554428,
153
+ "train_miou": 0.9239524328001467,
154
+ "train_dice": 0.9232522810664339,
155
+ "train_pixel_acc": 0.9909773169816577,
156
+ "val_iou": 0.8593176409193786,
157
+ "val_miou": 0.9248564802163981,
158
+ "val_dice": 0.924336565208375,
159
+ "val_pixel_acc": 0.990927575285869,
160
+ "epoch_seconds": 19.06348752975464
161
+ },
162
+ {
163
+ "epoch": 11,
164
+ "lr": 0.0001,
165
+ "train_loss": 0.057844025184485046,
166
+ "val_loss": 0.057155027763829344,
167
+ "train_iou": 0.8628749702411782,
168
+ "train_miou": 0.9268592746218168,
169
+ "train_dice": 0.9263906424481785,
170
+ "train_pixel_acc": 0.9913424105118426,
171
+ "val_iou": 0.8677516588243217,
172
+ "val_miou": 0.9292756097476914,
173
+ "val_dice": 0.9291938301589177,
174
+ "val_pixel_acc": 0.9913233604845427,
175
+ "epoch_seconds": 19.14251470565796
176
+ },
177
+ {
178
+ "epoch": 12,
179
+ "lr": 0.0001,
180
+ "train_loss": 0.0564112450927496,
181
+ "val_loss": 0.05905941572217714,
182
+ "train_iou": 0.8666150190496805,
183
+ "train_miou": 0.9288604114452764,
184
+ "train_dice": 0.928541783073069,
185
+ "train_pixel_acc": 0.9915916901806237,
186
+ "val_iou": 0.862829203166992,
187
+ "val_miou": 0.9267606966885659,
188
+ "val_dice": 0.9263642653873988,
189
+ "val_pixel_acc": 0.9912070010638556,
190
+ "epoch_seconds": 19.145079135894775
191
+ },
192
+ {
193
+ "epoch": 13,
194
+ "lr": 0.0001,
195
+ "train_loss": 0.05606178148000529,
196
+ "val_loss": 0.05780823007669477,
197
+ "train_iou": 0.8666719735865698,
198
+ "train_miou": 0.9288932042892029,
199
+ "train_dice": 0.9285744746264886,
200
+ "train_pixel_acc": 0.9915996304667063,
201
+ "val_iou": 0.8655333802013955,
202
+ "val_miou": 0.9281851496838158,
203
+ "val_dice": 0.9279205501087909,
204
+ "val_pixel_acc": 0.991347264645988,
205
+ "epoch_seconds": 19.121803760528564
206
+ },
207
+ {
208
+ "epoch": 14,
209
+ "lr": 0.0001,
210
+ "train_loss": 0.05290739460650719,
211
+ "val_loss": 0.0573665773318637,
212
+ "train_iou": 0.8729844678011437,
213
+ "train_miou": 0.932270503455682,
214
+ "train_dice": 0.9321854855806836,
215
+ "train_pixel_acc": 0.9920196571823189,
216
+ "val_iou": 0.8679352256183783,
217
+ "val_miou": 0.9293757323238205,
218
+ "val_dice": 0.9292990610325358,
219
+ "val_pixel_acc": 0.9913389838528593,
220
+ "epoch_seconds": 19.142600297927856
221
+ },
222
+ {
223
+ "epoch": 15,
224
+ "lr": 0.0001,
225
+ "train_loss": 0.055338778256466895,
226
+ "val_loss": 0.055382672298167436,
227
+ "train_iou": 0.8678234473987231,
228
+ "train_miou": 0.9295050972461696,
229
+ "train_dice": 0.9292349858947556,
230
+ "train_pixel_acc": 0.991668827330765,
231
+ "val_iou": 0.8723721269190516,
232
+ "val_miou": 0.9317616702043496,
233
+ "val_dice": 0.9318362673498258,
234
+ "val_pixel_acc": 0.991655897556389,
235
+ "epoch_seconds": 19.12857222557068
236
+ },
237
+ {
238
+ "epoch": 16,
239
+ "lr": 0.0001,
240
+ "train_loss": 0.05299764212333795,
241
+ "val_loss": 0.05357231656532912,
242
+ "train_iou": 0.8728369426058762,
243
+ "train_miou": 0.9321887488552074,
244
+ "train_dice": 0.9321013727883921,
245
+ "train_pixel_acc": 0.9920047961799618,
246
+ "val_iou": 0.874893995137207,
247
+ "val_miou": 0.9331774874509283,
248
+ "val_dice": 0.9332730249351311,
249
+ "val_pixel_acc": 0.9919421560085089,
250
+ "epoch_seconds": 19.16077947616577
251
+ },
252
+ {
253
+ "epoch": 17,
254
+ "lr": 0.0001,
255
+ "train_loss": 0.05279472681383292,
256
+ "val_loss": 0.05514502305803554,
257
+ "train_iou": 0.8728020514268505,
258
+ "train_miou": 0.9321698643588734,
259
+ "train_dice": 0.9320814773369989,
260
+ "train_pixel_acc": 0.9920020876258248,
261
+ "val_iou": 0.8713928504986466,
262
+ "val_miou": 0.9312885475650587,
263
+ "val_dice": 0.931277310658163,
264
+ "val_pixel_acc": 0.9916811478566188,
265
+ "epoch_seconds": 19.15403127670288
266
+ },
267
+ {
268
+ "epoch": 18,
269
+ "lr": 0.0001,
270
+ "train_loss": 0.05132049555241158,
271
+ "val_loss": 0.05529517704798352,
272
+ "train_iou": 0.8769995593431605,
273
+ "train_miou": 0.9344149753091398,
274
+ "train_dice": 0.9344696486237416,
275
+ "train_pixel_acc": 0.9922800748788541,
276
+ "val_iou": 0.8715880108559818,
277
+ "val_miou": 0.9314529778148491,
278
+ "val_dice": 0.9313887520121011,
279
+ "val_pixel_acc": 0.9918010969807312,
280
+ "epoch_seconds": 19.135673761367798
281
+ },
282
+ {
283
+ "epoch": 19,
284
+ "lr": 0.0001,
285
+ "train_loss": 0.05071425362857002,
286
+ "val_loss": 0.05323323494355593,
287
+ "train_iou": 0.8783707355908618,
288
+ "train_miou": 0.9351491267367265,
289
+ "train_dice": 0.9352474662724776,
290
+ "train_pixel_acc": 0.9923721966155715,
291
+ "val_iou": 0.8759375740601162,
292
+ "val_miou": 0.9336769377764016,
293
+ "val_dice": 0.9338664422231419,
294
+ "val_pixel_acc": 0.9919067892713536,
295
+ "epoch_seconds": 19.155219793319702
296
+ },
297
+ {
298
+ "epoch": 20,
299
+ "lr": 0.0001,
300
+ "train_loss": 0.051294179757436116,
301
+ "val_loss": 0.058644155284301155,
302
+ "train_iou": 0.8770421238144998,
303
+ "train_miou": 0.9344352380118679,
304
+ "train_dice": 0.9344938109669979,
305
+ "train_pixel_acc": 0.9922784219399224,
306
+ "val_iou": 0.8648423895862969,
307
+ "val_miou": 0.9278081740626397,
308
+ "val_dice": 0.9275233064368047,
309
+ "val_pixel_acc": 0.9912882588959357,
310
+ "epoch_seconds": 19.170907497406006
311
+ },
312
+ {
313
+ "epoch": 21,
314
+ "lr": 0.0001,
315
+ "train_loss": 0.05147851956161586,
316
+ "val_loss": 0.05552430841184798,
317
+ "train_iou": 0.8762087018908834,
318
+ "train_miou": 0.9339918851935799,
319
+ "train_dice": 0.9340205074284342,
320
+ "train_pixel_acc": 0.9922275567350429,
321
+ "val_iou": 0.8709832814536204,
322
+ "val_miou": 0.9310261117232426,
323
+ "val_dice": 0.9310433610897139,
324
+ "val_pixel_acc": 0.9915768017047808,
325
+ "epoch_seconds": 19.186965465545654
326
+ },
327
+ {
328
+ "epoch": 22,
329
+ "lr": 0.0001,
330
+ "train_loss": 0.04927632643869429,
331
+ "val_loss": 0.05390527041717654,
332
+ "train_iou": 0.8809673077663787,
333
+ "train_miou": 0.9365341577566879,
334
+ "train_dice": 0.9367172987312731,
335
+ "train_pixel_acc": 0.9925372845350329,
336
+ "val_iou": 0.8753207732350498,
337
+ "val_miou": 0.9334101534322585,
338
+ "val_dice": 0.9335157864486989,
339
+ "val_pixel_acc": 0.9919782570031831,
340
+ "epoch_seconds": 19.166306734085083
341
+ },
342
+ {
343
+ "epoch": 23,
344
+ "lr": 0.0001,
345
+ "train_loss": 0.050497921245793505,
346
+ "val_loss": 0.0544570865819142,
347
+ "train_iou": 0.8785654164357054,
348
+ "train_miou": 0.9352532936440519,
349
+ "train_dice": 0.9353578094742645,
350
+ "train_pixel_acc": 0.9923851523612162,
351
+ "val_iou": 0.8746798981690465,
352
+ "val_miou": 0.9330153766658902,
353
+ "val_dice": 0.9331511998643873,
354
+ "val_pixel_acc": 0.9918432555999354,
355
+ "epoch_seconds": 19.174702167510986
356
+ },
357
+ {
358
+ "epoch": 24,
359
+ "lr": 0.0001,
360
+ "train_loss": 0.04990837522641276,
361
+ "val_loss": 0.054220649591159256,
362
+ "train_iou": 0.8794432727490583,
363
+ "train_miou": 0.9357200466832849,
364
+ "train_dice": 0.9358550859188192,
365
+ "train_pixel_acc": 0.9924382884261232,
366
+ "val_iou": 0.8750310528690074,
367
+ "val_miou": 0.9331958157832294,
368
+ "val_dice": 0.9333509986729148,
369
+ "val_pixel_acc": 0.9918533924329033,
370
+ "epoch_seconds": 19.173201084136963
371
+ },
372
+ {
373
+ "epoch": 25,
374
+ "lr": 0.0001,
375
+ "train_loss": 0.05298040400851856,
376
+ "val_loss": 0.05375943785267217,
377
+ "train_iou": 0.8724124762631854,
378
+ "train_miou": 0.9319584837180602,
379
+ "train_dice": 0.9318592856252251,
380
+ "train_pixel_acc": 0.9919709032078504,
381
+ "val_iou": 0.876114602990201,
382
+ "val_miou": 0.9337998348291883,
383
+ "val_dice": 0.9339670418788133,
384
+ "val_pixel_acc": 0.9919686912593966,
385
+ "epoch_seconds": 19.146530151367188
386
+ },
387
+ {
388
+ "epoch": 26,
389
+ "lr": 0.0001,
390
+ "train_loss": 0.04962157107550989,
391
+ "val_loss": 0.05864642139169432,
392
+ "train_iou": 0.8803780357059546,
393
+ "train_miou": 0.9362166652071945,
394
+ "train_dice": 0.9363840876554722,
395
+ "train_pixel_acc": 0.9924941639412223,
396
+ "val_iou": 0.8657137013245387,
397
+ "val_miou": 0.9281332320999065,
398
+ "val_dice": 0.9280241665266614,
399
+ "val_pixel_acc": 0.9910951083764078,
400
+ "epoch_seconds": 19.177634477615356
401
+ },
402
+ {
403
+ "epoch": 27,
404
+ "lr": 0.0001,
405
+ "train_loss": 0.046213551554264445,
406
+ "val_loss": 0.05358884809538722,
407
+ "train_iou": 0.8874793026401062,
408
+ "train_miou": 0.9400182777335818,
409
+ "train_dice": 0.9403857318051086,
410
+ "train_pixel_acc": 0.9929699374383723,
411
+ "val_iou": 0.8752953011023774,
412
+ "val_miou": 0.9333670383893566,
413
+ "val_dice": 0.9335013003955612,
414
+ "val_pixel_acc": 0.9919240647190875,
415
+ "epoch_seconds": 19.19205331802368
416
+ },
417
+ {
418
+ "epoch": 28,
419
+ "lr": 0.0001,
420
+ "train_loss": 0.04850752472764615,
421
+ "val_loss": 0.05329237359442881,
422
+ "train_iou": 0.8822772643812337,
423
+ "train_miou": 0.9372358406230354,
424
+ "train_dice": 0.9374572822790453,
425
+ "train_pixel_acc": 0.9926258017320241,
426
+ "val_iou": 0.8765147806533486,
427
+ "val_miou": 0.9339903843908695,
428
+ "val_dice": 0.9341943795914801,
429
+ "val_pixel_acc": 0.9919534146237972,
430
+ "epoch_seconds": 19.260014057159424
431
+ },
432
+ {
433
+ "epoch": 29,
434
+ "lr": 0.0001,
435
+ "train_loss": 0.04729130827454907,
436
+ "val_loss": 0.052608111030643896,
437
+ "train_iou": 0.8863338258827637,
438
+ "train_miou": 0.9394078485474104,
439
+ "train_dice": 0.9397422807365271,
440
+ "train_pixel_acc": 0.9928982070978203,
441
+ "val_iou": 0.8785328869813779,
442
+ "val_miou": 0.9351077901258535,
443
+ "val_dice": 0.9353393736886831,
444
+ "val_pixel_acc": 0.9921546419760319,
445
+ "epoch_seconds": 19.222160816192627
446
+ },
447
+ {
448
+ "epoch": 30,
449
+ "lr": 0.0001,
450
+ "train_loss": 0.04858881766823205,
451
+ "val_loss": 0.05320309798809744,
452
+ "train_iou": 0.8819767112222715,
453
+ "train_miou": 0.9370739504712595,
454
+ "train_dice": 0.9372875933724616,
455
+ "train_pixel_acc": 0.9926038912798312,
456
+ "val_iou": 0.8773943687857825,
457
+ "val_miou": 0.9344770704217182,
458
+ "val_dice": 0.9346937259146498,
459
+ "val_pixel_acc": 0.9920405261199855,
460
+ "epoch_seconds": 19.228997468948364
461
+ },
462
+ {
463
+ "epoch": 31,
464
+ "lr": 0.0001,
465
+ "train_loss": 0.04558317923749035,
466
+ "val_loss": 0.05311901051373709,
467
+ "train_iou": 0.8890038173999035,
468
+ "train_miou": 0.9408315280422241,
469
+ "train_dice": 0.9412408902630616,
470
+ "train_pixel_acc": 0.993066868660953,
471
+ "val_iou": 0.8775621776332498,
472
+ "val_miou": 0.9346260428539814,
473
+ "val_dice": 0.9347889386432526,
474
+ "val_pixel_acc": 0.9921570487090101,
475
+ "epoch_seconds": 19.292891263961792
476
+ },
477
+ {
478
+ "epoch": 32,
479
+ "lr": 0.0001,
480
+ "train_loss": 0.04596325532166344,
481
+ "val_loss": 0.05419027774284283,
482
+ "train_iou": 0.8880200759529931,
483
+ "train_miou": 0.9403050219320863,
484
+ "train_dice": 0.9406892302294593,
485
+ "train_pixel_acc": 0.9930012351418808,
486
+ "val_iou": 0.8753363644653446,
487
+ "val_miou": 0.9333661612977374,
488
+ "val_dice": 0.9335246530186084,
489
+ "val_pixel_acc": 0.9918861484766585,
490
+ "epoch_seconds": 19.21935796737671
491
+ },
492
+ {
493
+ "epoch": 33,
494
+ "lr": 0.0001,
495
+ "train_loss": 0.04471025916211533,
496
+ "val_loss": 0.052230706105807,
497
+ "train_iou": 0.8909473696367943,
498
+ "train_miou": 0.9418698265356704,
499
+ "train_dice": 0.9423291033297494,
500
+ "train_pixel_acc": 0.9931931150901929,
501
+ "val_iou": 0.8787708869990782,
502
+ "val_miou": 0.9352166909227461,
503
+ "val_dice": 0.9354742433791071,
504
+ "val_pixel_acc": 0.9921376724689308,
505
+ "epoch_seconds": 19.238463163375854
506
+ },
507
+ {
508
+ "epoch": 34,
509
+ "lr": 0.0001,
510
+ "train_loss": 0.04476455172354525,
511
+ "val_loss": 0.05290490444306107,
512
+ "train_iou": 0.890797236556463,
513
+ "train_miou": 0.9417912715234039,
514
+ "train_dice": 0.9422451221462446,
515
+ "train_pixel_acc": 0.9931863076594528,
516
+ "val_iou": 0.8771992881681022,
517
+ "val_miou": 0.934361230674552,
518
+ "val_dice": 0.9345830181132581,
519
+ "val_pixel_acc": 0.9920071581949647,
520
+ "epoch_seconds": 19.244229316711426
521
+ },
522
+ {
523
+ "epoch": 35,
524
+ "lr": 0.0001,
525
+ "train_loss": 0.045348572375422176,
526
+ "val_loss": 0.054725987991938986,
527
+ "train_iou": 0.8897040549786975,
528
+ "train_miou": 0.9412041768754742,
529
+ "train_dice": 0.9416332177884088,
530
+ "train_pixel_acc": 0.9931097935797499,
531
+ "val_iou": 0.8754618350581611,
532
+ "val_miou": 0.9334510127512847,
533
+ "val_dice": 0.9335960014680988,
534
+ "val_pixel_acc": 0.9919260227391375,
535
+ "epoch_seconds": 19.23792004585266
536
+ },
537
+ {
538
+ "epoch": 36,
539
+ "lr": 0.0001,
540
+ "train_loss": 0.04610508984575669,
541
+ "val_loss": 0.052850618603683654,
542
+ "train_iou": 0.8886901133163602,
543
+ "train_miou": 0.9406648762242142,
544
+ "train_dice": 0.9410650344919791,
545
+ "train_pixel_acc": 0.9930481610997739,
546
+ "val_iou": 0.8771554328234697,
547
+ "val_miou": 0.9343563789838395,
548
+ "val_dice": 0.9345581271382749,
549
+ "val_pixel_acc": 0.9920373443374041,
550
+ "epoch_seconds": 19.261725425720215
551
+ },
552
+ {
553
+ "epoch": 37,
554
+ "lr": 0.0001,
555
+ "train_loss": 0.04493036285945864,
556
+ "val_loss": 0.053738696301089864,
557
+ "train_iou": 0.8909355767350411,
558
+ "train_miou": 0.9418641492538151,
559
+ "train_dice": 0.9423225071193205,
560
+ "train_pixel_acc": 0.9931934600961382,
561
+ "val_iou": 0.875077373763887,
562
+ "val_miou": 0.9332631128452082,
563
+ "val_dice": 0.9333773485915663,
564
+ "val_pixel_acc": 0.991932121155752,
565
+ "epoch_seconds": 19.305490970611572
566
+ },
567
+ {
568
+ "epoch": 38,
569
+ "lr": 0.0001,
570
+ "train_loss": 0.04494123134310499,
571
+ "val_loss": 0.05150793197875222,
572
+ "train_iou": 0.8908060357084712,
573
+ "train_miou": 0.9417945087528514,
574
+ "train_dice": 0.9422500445686304,
575
+ "train_pixel_acc": 0.9931842685198363,
576
+ "val_iou": 0.8810859462175203,
577
+ "val_miou": 0.9364985723633636,
578
+ "val_dice": 0.9367843590445235,
579
+ "val_pixel_acc": 0.9923685760625502,
580
+ "epoch_seconds": 19.25457000732422
581
+ },
582
+ {
583
+ "epoch": 39,
584
+ "lr": 0.0001,
585
+ "train_loss": 0.04257067684084177,
586
+ "val_loss": 0.05084183541614385,
587
+ "train_iou": 0.8959571155500544,
588
+ "train_miou": 0.9445476721750194,
589
+ "train_dice": 0.9451238197337809,
590
+ "train_pixel_acc": 0.9935210664131703,
591
+ "val_iou": 0.8823023289004102,
592
+ "val_miou": 0.9371105837952904,
593
+ "val_dice": 0.937471430974457,
594
+ "val_pixel_acc": 0.992380426163062,
595
+ "epoch_seconds": 19.278570890426636
596
+ },
597
+ {
598
+ "epoch": 40,
599
+ "lr": 0.0001,
600
+ "train_loss": 0.04283936999060891,
601
+ "val_loss": 0.05192493804774824,
602
+ "train_iou": 0.8951722079130173,
603
+ "train_miou": 0.9441276085356001,
604
+ "train_dice": 0.9446869304808875,
605
+ "train_pixel_acc": 0.993468790288455,
606
+ "val_iou": 0.8805518814500073,
607
+ "val_miou": 0.936199858468866,
608
+ "val_dice": 0.9364824125682235,
609
+ "val_pixel_acc": 0.9923099782333418,
610
+ "epoch_seconds": 19.26321506500244
611
+ },
612
+ {
613
+ "epoch": 41,
614
+ "lr": 0.0001,
615
+ "train_loss": 0.042945823084675906,
616
+ "val_loss": 0.05267021215210358,
617
+ "train_iou": 0.8947970709014577,
618
+ "train_miou": 0.9439306598498326,
619
+ "train_dice": 0.9444779967659062,
620
+ "train_pixel_acc": 0.9934506079602075,
621
+ "val_iou": 0.8792888323635327,
622
+ "val_miou": 0.9354716790151257,
623
+ "val_dice": 0.9357676342466996,
624
+ "val_pixel_acc": 0.9921327774188055,
625
+ "epoch_seconds": 19.263715982437134
626
+ },
627
+ {
628
+ "epoch": 42,
629
+ "lr": 0.0001,
630
+ "train_loss": 0.04258231394218676,
631
+ "val_loss": 0.05268817306274459,
632
+ "train_iou": 0.8956806791011305,
633
+ "train_miou": 0.9443989772134571,
634
+ "train_dice": 0.9449699930748177,
635
+ "train_pixel_acc": 0.9935013135354706,
636
+ "val_iou": 0.8778847437078855,
637
+ "val_miou": 0.9347052196931271,
638
+ "val_dice": 0.934971910975219,
639
+ "val_pixel_acc": 0.9920123183936383,
640
+ "epoch_seconds": 19.247931003570557
641
+ },
642
+ {
643
+ "epoch": 43,
644
+ "lr": 0.0001,
645
+ "train_loss": 0.04445941317826509,
646
+ "val_loss": 0.05493704577730525,
647
+ "train_iou": 0.8910189480876283,
648
+ "train_miou": 0.9419071077875871,
649
+ "train_dice": 0.9423691380657061,
650
+ "train_pixel_acc": 0.9931960553647411,
651
+ "val_iou": 0.8738395513398463,
652
+ "val_miou": 0.9325352096227959,
653
+ "val_dice": 0.9326727581505335,
654
+ "val_pixel_acc": 0.9917329945958627,
655
+ "epoch_seconds": 19.231258392333984
656
+ },
657
+ {
658
+ "epoch": 44,
659
+ "lr": 0.0001,
660
+ "train_loss": 0.046538574028421535,
661
+ "val_loss": 0.052791056622351916,
662
+ "train_iou": 0.887572325079792,
663
+ "train_miou": 0.9400650788026343,
664
+ "train_dice": 0.9404379512104494,
665
+ "train_pixel_acc": 0.9929708179759339,
666
+ "val_iou": 0.8775457190844373,
667
+ "val_miou": 0.9345352820868995,
668
+ "val_dice": 0.9347796010127115,
669
+ "val_pixel_acc": 0.992010115621082,
670
+ "epoch_seconds": 19.29122519493103
671
+ },
672
+ {
673
+ "epoch": 45,
674
+ "lr": 5e-05,
675
+ "train_loss": 0.04560226895705317,
676
+ "val_loss": 0.05307830466578404,
677
+ "train_iou": 0.889464274934405,
678
+ "train_miou": 0.9410782991864606,
679
+ "train_dice": 0.941498907107184,
680
+ "train_pixel_acc": 0.9930981766631465,
681
+ "val_iou": 0.8785574662632408,
682
+ "val_miou": 0.9350803299812853,
683
+ "val_dice": 0.9353533038420548,
684
+ "val_pixel_acc": 0.9920840512740164,
685
+ "epoch_seconds": 19.276354551315308
686
+ },
687
+ {
688
+ "epoch": 46,
689
+ "lr": 5e-05,
690
+ "train_loss": 0.04194761523130265,
691
+ "val_loss": 0.0508645969620418,
692
+ "train_iou": 0.8975993342814043,
693
+ "train_miou": 0.9454258716846109,
694
+ "train_dice": 0.9460367297412794,
695
+ "train_pixel_acc": 0.9936292180529845,
696
+ "val_iou": 0.882476192273905,
697
+ "val_miou": 0.9371973459566882,
698
+ "val_dice": 0.9375695649121947,
699
+ "val_pixel_acc": 0.992380854479948,
700
+ "epoch_seconds": 19.231260299682617
701
+ },
702
+ {
703
+ "epoch": 47,
704
+ "lr": 5e-05,
705
+ "train_loss": 0.04075535127159321,
706
+ "val_loss": 0.0498048731879819,
707
+ "train_iou": 0.8997484375402452,
708
+ "train_miou": 0.9465736092657562,
709
+ "train_dice": 0.9472290328136507,
710
+ "train_pixel_acc": 0.9937679979817868,
711
+ "val_iou": 0.8856976883092615,
712
+ "val_miou": 0.9389258268871529,
713
+ "val_dice": 0.9393846042240084,
714
+ "val_pixel_acc": 0.9926036404487762,
715
+ "epoch_seconds": 19.264389276504517
716
+ },
717
+ {
718
+ "epoch": 48,
719
+ "lr": 5e-05,
720
+ "train_loss": 0.039957470762910265,
721
+ "val_loss": 0.0512049437855326,
722
+ "train_iou": 0.9012518992442407,
723
+ "train_miou": 0.9473770278049959,
724
+ "train_dice": 0.9480615373507254,
725
+ "train_pixel_acc": 0.9938659333261485,
726
+ "val_iou": 0.8817251072978644,
727
+ "val_miou": 0.9367950007581748,
728
+ "val_dice": 0.937145498966118,
729
+ "val_pixel_acc": 0.9923300479388556,
730
+ "epoch_seconds": 19.23457169532776
731
+ },
732
+ {
733
+ "epoch": 49,
734
+ "lr": 5e-05,
735
+ "train_loss": 0.039942599025865395,
736
+ "val_loss": 0.051421095772335924,
737
+ "train_iou": 0.901656979198433,
738
+ "train_miou": 0.9475943732531977,
739
+ "train_dice": 0.9482856151885922,
740
+ "train_pixel_acc": 0.9938938839570541,
741
+ "val_iou": 0.8823984622602449,
742
+ "val_miou": 0.9371711327122936,
743
+ "val_dice": 0.9375256938966324,
744
+ "val_pixel_acc": 0.9924030249778072,
745
+ "epoch_seconds": 19.278623342514038
746
+ },
747
+ {
748
+ "epoch": 50,
749
+ "lr": 5e-05,
750
+ "train_loss": 0.04025079951706258,
751
+ "val_loss": 0.05079752639202135,
752
+ "train_iou": 0.9010117959263626,
753
+ "train_miou": 0.947249452805415,
754
+ "train_dice": 0.9479286744639054,
755
+ "train_pixel_acc": 0.993851597556723,
756
+ "val_iou": 0.8832438742862383,
757
+ "val_miou": 0.9375921955506954,
758
+ "val_dice": 0.9380026520686213,
759
+ "val_pixel_acc": 0.992403657255115,
760
+ "epoch_seconds": 19.262233018875122
761
+ }
762
+ ],
763
+ "start_time_iso": "2026-05-12T10:01:20",
764
+ "best_epoch": 47,
765
+ "best_val_dice": 0.9393846042240084,
766
+ "epochs_trained": 50,
767
+ "wall_clock_seconds": 962.2275054454803
768
+ }
experiments/resolution_study/logs/segformer_b0_res256.json ADDED
@@ -0,0 +1,768 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "cfg_id": "segformer_b0_res256",
3
+ "model": "segformer_b0",
4
+ "image_size": 256,
5
+ "batch_size": 16,
6
+ "throttle": null,
7
+ "n_train": 5268,
8
+ "n_val": 1330,
9
+ "n_params": 3714401,
10
+ "baseline_dice_at_128": 0.928,
11
+ "epochs": [
12
+ {
13
+ "epoch": 1,
14
+ "lr": 0.0001,
15
+ "train_loss": 0.35327659368966563,
16
+ "val_loss": 0.17679928544731366,
17
+ "train_iou": 0.6350332019341822,
18
+ "train_miou": 0.8013450611695612,
19
+ "train_dice": 0.776783249640389,
20
+ "train_pixel_acc": 0.9693800912450093,
21
+ "val_iou": 0.7921424242862504,
22
+ "val_miou": 0.8882089198274048,
23
+ "val_dice": 0.8840172673237551,
24
+ "val_pixel_acc": 0.9851644530332166,
25
+ "epoch_seconds": 36.49695706367493
26
+ },
27
+ {
28
+ "epoch": 2,
29
+ "lr": 0.0001,
30
+ "train_loss": 0.13091693785831784,
31
+ "val_loss": 0.0876934669823164,
32
+ "train_iou": 0.8099594257774786,
33
+ "train_miou": 0.898391713839735,
34
+ "train_dice": 0.895002853922602,
35
+ "train_pixel_acc": 0.9875245785839915,
36
+ "val_iou": 0.8436178384150361,
37
+ "val_miou": 0.9162912812403422,
38
+ "val_dice": 0.9151764762053907,
39
+ "val_pixel_acc": 0.9895847521330169,
40
+ "epoch_seconds": 34.86296892166138
41
+ },
42
+ {
43
+ "epoch": 3,
44
+ "lr": 0.0001,
45
+ "train_loss": 0.08942015262489969,
46
+ "val_loss": 0.06982281542427483,
47
+ "train_iou": 0.8315366945929503,
48
+ "train_miou": 0.910056872998267,
49
+ "train_dice": 0.9080207860948756,
50
+ "train_pixel_acc": 0.9891867438499545,
51
+ "val_iou": 0.8581349488345499,
52
+ "val_miou": 0.9242180593434658,
53
+ "val_dice": 0.9236519116900362,
54
+ "val_pixel_acc": 0.9908386459924213,
55
+ "epoch_seconds": 34.914928913116455
56
+ },
57
+ {
58
+ "epoch": 4,
59
+ "lr": 0.0001,
60
+ "train_loss": 0.07383125233605052,
61
+ "val_loss": 0.06841684829088904,
62
+ "train_iou": 0.8447330830889687,
63
+ "train_miou": 0.9171397001006341,
64
+ "train_dice": 0.9158323129051061,
65
+ "train_pixel_acc": 0.9901088607428916,
66
+ "val_iou": 0.8553243862118178,
67
+ "val_miou": 0.9225622886661267,
68
+ "val_dice": 0.9220213915887887,
69
+ "val_pixel_acc": 0.9903802742635385,
70
+ "epoch_seconds": 34.929633378982544
71
+ },
72
+ {
73
+ "epoch": 5,
74
+ "lr": 0.0001,
75
+ "train_loss": 0.06690685281699355,
76
+ "val_loss": 0.06523505314475014,
77
+ "train_iou": 0.8519561690703377,
78
+ "train_miou": 0.9210087318833178,
79
+ "train_dice": 0.9200608343749417,
80
+ "train_pixel_acc": 0.9905989841701588,
81
+ "val_iou": 0.8559183357629543,
82
+ "val_miou": 0.9230414366615349,
83
+ "val_dice": 0.9223663770864061,
84
+ "val_pixel_acc": 0.9907074777703524,
85
+ "epoch_seconds": 34.935115337371826
86
+ },
87
+ {
88
+ "epoch": 6,
89
+ "lr": 0.0001,
90
+ "train_loss": 0.06239768401014082,
91
+ "val_loss": 0.05712446588135901,
92
+ "train_iou": 0.8589875264238321,
93
+ "train_miou": 0.9247799421598228,
94
+ "train_dice": 0.9241455515048904,
95
+ "train_pixel_acc": 0.9910843747080319,
96
+ "val_iou": 0.8711570749698258,
97
+ "val_miou": 0.9311217059415241,
98
+ "val_dice": 0.9311426460377453,
99
+ "val_pixel_acc": 0.991593015283569,
100
+ "epoch_seconds": 34.92696714401245
101
+ },
102
+ {
103
+ "epoch": 7,
104
+ "lr": 0.0001,
105
+ "train_loss": 0.0611171141492598,
106
+ "val_loss": 0.05604855137478028,
107
+ "train_iou": 0.8590457291607184,
108
+ "train_miou": 0.9248095530756569,
109
+ "train_dice": 0.9241792342015619,
110
+ "train_pixel_acc": 0.9910855188275611,
111
+ "val_iou": 0.8727302213895385,
112
+ "val_miou": 0.9320297672336573,
113
+ "val_dice": 0.932040516483987,
114
+ "val_pixel_acc": 0.9918159198043927,
115
+ "epoch_seconds": 34.928513050079346
116
+ },
117
+ {
118
+ "epoch": 8,
119
+ "lr": 0.0001,
120
+ "train_loss": 0.05663734373608322,
121
+ "val_loss": 0.05495278668102054,
122
+ "train_iou": 0.8677439999073704,
123
+ "train_miou": 0.9294618669768593,
124
+ "train_dice": 0.9291894391848194,
125
+ "train_pixel_acc": 0.991662244861924,
126
+ "val_iou": 0.8729372142264623,
127
+ "val_miou": 0.9321069935347885,
128
+ "val_dice": 0.9321585449803689,
129
+ "val_pixel_acc": 0.9917699942911467,
130
+ "epoch_seconds": 34.95031404495239
131
+ },
132
+ {
133
+ "epoch": 9,
134
+ "lr": 0.0001,
135
+ "train_loss": 0.054767824212710065,
136
+ "val_loss": 0.05436135839582199,
137
+ "train_iou": 0.8709395422469167,
138
+ "train_miou": 0.9311774328553681,
139
+ "train_dice": 0.9310183708031061,
140
+ "train_pixel_acc": 0.9918854176862362,
141
+ "val_iou": 0.8737723073611128,
142
+ "val_miou": 0.9325503815894347,
143
+ "val_dice": 0.9326344550279658,
144
+ "val_pixel_acc": 0.9918194993097967,
145
+ "epoch_seconds": 34.95889759063721
146
+ },
147
+ {
148
+ "epoch": 10,
149
+ "lr": 0.0001,
150
+ "train_loss": 0.05470105232388684,
151
+ "val_loss": 0.05464947871154263,
152
+ "train_iou": 0.8711925324691874,
153
+ "train_miou": 0.9313087933587305,
154
+ "train_dice": 0.9311628999711533,
155
+ "train_pixel_acc": 0.9918951122889301,
156
+ "val_iou": 0.872641879512476,
157
+ "val_miou": 0.9320113459446231,
158
+ "val_dice": 0.9319901354974072,
159
+ "val_pixel_acc": 0.9918614552433318,
160
+ "epoch_seconds": 34.96721816062927
161
+ },
162
+ {
163
+ "epoch": 11,
164
+ "lr": 0.0001,
165
+ "train_loss": 0.052464713229600224,
166
+ "val_loss": 0.053462704444038014,
167
+ "train_iou": 0.8744123700653592,
168
+ "train_miou": 0.9330286506452719,
169
+ "train_dice": 0.9329989323906023,
170
+ "train_pixel_acc": 0.9921042486493478,
171
+ "val_iou": 0.8758585495811066,
172
+ "val_miou": 0.9336639983469845,
173
+ "val_dice": 0.9338215291091031,
174
+ "val_pixel_acc": 0.9919537192896781,
175
+ "epoch_seconds": 35.10116958618164
176
+ },
177
+ {
178
+ "epoch": 12,
179
+ "lr": 0.0001,
180
+ "train_loss": 0.05400644283967488,
181
+ "val_loss": 0.054444713185408285,
182
+ "train_iou": 0.8722223142869728,
183
+ "train_miou": 0.9318576187188374,
184
+ "train_dice": 0.9317507943699034,
185
+ "train_pixel_acc": 0.991959817317189,
186
+ "val_iou": 0.8745687525988368,
187
+ "val_miou": 0.9329910199292071,
188
+ "val_dice": 0.9330879450394819,
189
+ "val_pixel_acc": 0.9918983402108775,
190
+ "epoch_seconds": 35.14045166969299
191
+ },
192
+ {
193
+ "epoch": 13,
194
+ "lr": 0.0001,
195
+ "train_loss": 0.05032889504888744,
196
+ "val_loss": 0.05236722355974572,
197
+ "train_iou": 0.8794843889491667,
198
+ "train_miou": 0.9357468341582647,
199
+ "train_dice": 0.935878365492456,
200
+ "train_pixel_acc": 0.9924495728883037,
201
+ "val_iou": 0.8775924212005158,
202
+ "val_miou": 0.9346494163116583,
203
+ "val_dice": 0.9348060966707471,
204
+ "val_pixel_acc": 0.9921718740821769,
205
+ "epoch_seconds": 35.132954359054565
206
+ },
207
+ {
208
+ "epoch": 14,
209
+ "lr": 0.0001,
210
+ "train_loss": 0.0507164357286511,
211
+ "val_loss": 0.052705858767564805,
212
+ "train_iou": 0.8779380697569158,
213
+ "train_miou": 0.9349190315091295,
214
+ "train_dice": 0.9350021535806642,
215
+ "train_pixel_acc": 0.9923459185554657,
216
+ "val_iou": 0.8781945779842976,
217
+ "val_miou": 0.9348682062433042,
218
+ "val_dice": 0.9351476021475764,
219
+ "val_pixel_acc": 0.9920279825540401,
220
+ "epoch_seconds": 35.09930372238159
221
+ },
222
+ {
223
+ "epoch": 15,
224
+ "lr": 0.0001,
225
+ "train_loss": 0.05102908802642064,
226
+ "val_loss": 0.05086420840095906,
227
+ "train_iou": 0.8779395615852801,
228
+ "train_miou": 0.9349191561815687,
229
+ "train_dice": 0.9350029996110837,
230
+ "train_pixel_acc": 0.9923448149870084,
231
+ "val_iou": 0.8816390172962109,
232
+ "val_miou": 0.9367511791447054,
233
+ "val_dice": 0.9370968705390336,
234
+ "val_pixel_acc": 0.9923283053520019,
235
+ "epoch_seconds": 35.126747131347656
236
+ },
237
+ {
238
+ "epoch": 16,
239
+ "lr": 0.0001,
240
+ "train_loss": 0.04873791848394004,
241
+ "val_loss": 0.048040888870933225,
242
+ "train_iou": 0.8827235223340395,
243
+ "train_miou": 0.9374775892921903,
244
+ "train_dice": 0.9377091345198837,
245
+ "train_pixel_acc": 0.9926607889394098,
246
+ "val_iou": 0.887698040063343,
247
+ "val_miou": 0.939991329923308,
248
+ "val_dice": 0.9405085148401761,
249
+ "val_pixel_acc": 0.9927281085709868,
250
+ "epoch_seconds": 35.158074140548706
251
+ },
252
+ {
253
+ "epoch": 17,
254
+ "lr": 0.0001,
255
+ "train_loss": 0.047890410758554935,
256
+ "val_loss": 0.05027556525809424,
257
+ "train_iou": 0.8840823812556142,
258
+ "train_miou": 0.9382014854532706,
259
+ "train_dice": 0.9384752917931676,
260
+ "train_pixel_acc": 0.99274548274962,
261
+ "val_iou": 0.8821880452388492,
262
+ "val_miou": 0.937082363882354,
263
+ "val_dice": 0.9374069158184454,
264
+ "val_pixel_acc": 0.9924313996967504,
265
+ "epoch_seconds": 35.14206671714783
266
+ },
267
+ {
268
+ "epoch": 18,
269
+ "lr": 0.0001,
270
+ "train_loss": 0.04867727377762397,
271
+ "val_loss": 0.05034486253169321,
272
+ "train_iou": 0.8828771482248772,
273
+ "train_miou": 0.9375552445263174,
274
+ "train_dice": 0.9377958079285509,
275
+ "train_pixel_acc": 0.9926628946986444,
276
+ "val_iou": 0.8815061763769856,
277
+ "val_miou": 0.9367250509426015,
278
+ "val_dice": 0.9370218258591181,
279
+ "val_pixel_acc": 0.9923994365491353,
280
+ "epoch_seconds": 35.08233833312988
281
+ },
282
+ {
283
+ "epoch": 19,
284
+ "lr": 0.0001,
285
+ "train_loss": 0.04725322309655674,
286
+ "val_loss": 0.050066882012678046,
287
+ "train_iou": 0.8858165339877492,
288
+ "train_miou": 0.9391291961897597,
289
+ "train_dice": 0.9394514450614142,
290
+ "train_pixel_acc": 0.9928604826930802,
291
+ "val_iou": 0.8830396483883934,
292
+ "val_miou": 0.9374601756053411,
293
+ "val_dice": 0.9378874726765803,
294
+ "val_pixel_acc": 0.9923496676566894,
295
+ "epoch_seconds": 35.10900330543518
296
+ },
297
+ {
298
+ "epoch": 20,
299
+ "lr": 0.0001,
300
+ "train_loss": 0.04475613961165602,
301
+ "val_loss": 0.04849295684003404,
302
+ "train_iou": 0.8911314098931269,
303
+ "train_miou": 0.941970211473202,
304
+ "train_dice": 0.9424320332593781,
305
+ "train_pixel_acc": 0.9932087526777608,
306
+ "val_iou": 0.8874919203058076,
307
+ "val_miou": 0.9398555887293274,
308
+ "val_dice": 0.9403928152042292,
309
+ "val_pixel_acc": 0.992669195877877,
310
+ "epoch_seconds": 35.07272386550903
311
+ },
312
+ {
313
+ "epoch": 21,
314
+ "lr": 0.0001,
315
+ "train_loss": 0.04554893585542838,
316
+ "val_loss": 0.04988958103404868,
317
+ "train_iou": 0.889395703690715,
318
+ "train_miou": 0.9410404773331827,
319
+ "train_dice": 0.941460491260125,
320
+ "train_pixel_acc": 0.9930916006309836,
321
+ "val_iou": 0.8843301395575448,
322
+ "val_miou": 0.938213685730747,
323
+ "val_dice": 0.9386148647658867,
324
+ "val_pixel_acc": 0.9925475041669102,
325
+ "epoch_seconds": 35.046720027923584
326
+ },
327
+ {
328
+ "epoch": 22,
329
+ "lr": 5e-05,
330
+ "train_loss": 0.045143627121367234,
331
+ "val_loss": 0.050564718743165336,
332
+ "train_iou": 0.8905589211416267,
333
+ "train_miou": 0.9416657996628122,
334
+ "train_dice": 0.9421117862900108,
335
+ "train_pixel_acc": 0.9931741162693307,
336
+ "val_iou": 0.8833560780492133,
337
+ "val_miou": 0.9377310085018963,
338
+ "val_dice": 0.9380659221533896,
339
+ "val_pixel_acc": 0.9925512442911466,
340
+ "epoch_seconds": 35.046170473098755
341
+ },
342
+ {
343
+ "epoch": 23,
344
+ "lr": 5e-05,
345
+ "train_loss": 0.04294596855161768,
346
+ "val_loss": 0.048531432170420885,
347
+ "train_iou": 0.8953311270144331,
348
+ "train_miou": 0.9442162452903304,
349
+ "train_dice": 0.9447754160242999,
350
+ "train_pixel_acc": 0.9934857715325724,
351
+ "val_iou": 0.8878538902196934,
352
+ "val_miou": 0.9401084741066497,
353
+ "val_dice": 0.9405959802496918,
354
+ "val_pixel_acc": 0.9927984710922803,
355
+ "epoch_seconds": 35.037251472473145
356
+ },
357
+ {
358
+ "epoch": 24,
359
+ "lr": 5e-05,
360
+ "train_loss": 0.04308157789549141,
361
+ "val_loss": 0.047091831120529344,
362
+ "train_iou": 0.8949289048668835,
363
+ "train_miou": 0.9439999300827919,
364
+ "train_dice": 0.9445514315269271,
365
+ "train_pixel_acc": 0.9934570990282199,
366
+ "val_iou": 0.8909190425830551,
367
+ "val_miou": 0.9417222427704677,
368
+ "val_dice": 0.9423132588120023,
369
+ "val_pixel_acc": 0.9929554989463393,
370
+ "epoch_seconds": 35.06736445426941
371
+ },
372
+ {
373
+ "epoch": 25,
374
+ "lr": 5e-05,
375
+ "train_loss": 0.042118959523963204,
376
+ "val_loss": 0.047604705384444626,
377
+ "train_iou": 0.8973524814617205,
378
+ "train_miou": 0.9452961220012934,
379
+ "train_dice": 0.945899605085925,
380
+ "train_pixel_acc": 0.9936169890082956,
381
+ "val_iou": 0.8888968527112241,
382
+ "val_miou": 0.9406469624097732,
383
+ "val_dice": 0.9411809347189581,
384
+ "val_pixel_acc": 0.9928330270867587,
385
+ "epoch_seconds": 35.055171966552734
386
+ },
387
+ {
388
+ "epoch": 26,
389
+ "lr": 5e-05,
390
+ "train_loss": 0.0410961707094402,
391
+ "val_loss": 0.047089294264359136,
392
+ "train_iou": 0.8994346839180637,
393
+ "train_miou": 0.9464064966783228,
394
+ "train_dice": 0.9470551333334112,
395
+ "train_pixel_acc": 0.9937485395821095,
396
+ "val_iou": 0.890484266906277,
397
+ "val_miou": 0.9414855263849486,
398
+ "val_dice": 0.9420700108375181,
399
+ "val_pixel_acc": 0.9929193482363122,
400
+ "epoch_seconds": 35.17088842391968
401
+ },
402
+ {
403
+ "epoch": 27,
404
+ "lr": 5e-05,
405
+ "train_loss": 0.04125990722554199,
406
+ "val_loss": 0.04689064646317136,
407
+ "train_iou": 0.8984467607927721,
408
+ "train_miou": 0.9458796710025716,
409
+ "train_dice": 0.9465071966701768,
410
+ "train_pixel_acc": 0.9936861343789296,
411
+ "val_iou": 0.8905346033468441,
412
+ "val_miou": 0.9415356470722271,
413
+ "val_dice": 0.9420981787588718,
414
+ "val_pixel_acc": 0.9929638970167105,
415
+ "epoch_seconds": 35.09168553352356
416
+ },
417
+ {
418
+ "epoch": 28,
419
+ "lr": 5e-05,
420
+ "train_loss": 0.040764492992876156,
421
+ "val_loss": 0.046942528226368484,
422
+ "train_iou": 0.900115082021994,
423
+ "train_miou": 0.9467719477939598,
424
+ "train_dice": 0.9474321745440207,
425
+ "train_pixel_acc": 0.9937961812986054,
426
+ "val_iou": 0.8903171367615752,
427
+ "val_miou": 0.941408190872872,
428
+ "val_dice": 0.9419764752139264,
429
+ "val_pixel_acc": 0.9929297196237653,
430
+ "epoch_seconds": 35.09484672546387
431
+ },
432
+ {
433
+ "epoch": 29,
434
+ "lr": 5e-05,
435
+ "train_loss": 0.0412439277677825,
436
+ "val_loss": 0.04685560372170238,
437
+ "train_iou": 0.8994768808228891,
438
+ "train_miou": 0.9464279114795757,
439
+ "train_dice": 0.9470785245179915,
440
+ "train_pixel_acc": 0.9937492666048989,
441
+ "val_iou": 0.8910251379276029,
442
+ "val_miou": 0.9418396766883165,
443
+ "val_dice": 0.9423725999793825,
444
+ "val_pixel_acc": 0.9930704217208047,
445
+ "epoch_seconds": 35.05585527420044
446
+ },
447
+ {
448
+ "epoch": 30,
449
+ "lr": 5e-05,
450
+ "train_loss": 0.04046668706631119,
451
+ "val_loss": 0.04639683674932236,
452
+ "train_iou": 0.900786641608705,
453
+ "train_miou": 0.9471293107864736,
454
+ "train_dice": 0.9478040532169739,
455
+ "train_pixel_acc": 0.9938372450519347,
456
+ "val_iou": 0.8921652530269967,
457
+ "val_miou": 0.9423896546837341,
458
+ "val_dice": 0.9430098682974468,
459
+ "val_pixel_acc": 0.9930393993406356,
460
+ "epoch_seconds": 35.06635522842407
461
+ },
462
+ {
463
+ "epoch": 31,
464
+ "lr": 5e-05,
465
+ "train_loss": 0.039506265650870225,
466
+ "val_loss": 0.04809023816848085,
467
+ "train_iou": 0.9028369176769293,
468
+ "train_miou": 0.9482256340894427,
469
+ "train_dice": 0.948937777367862,
470
+ "train_pixel_acc": 0.9939720223324714,
471
+ "val_iou": 0.8892111927975115,
472
+ "val_miou": 0.9408142676843666,
473
+ "val_dice": 0.9413571083927178,
474
+ "val_pixel_acc": 0.992852347237722,
475
+ "epoch_seconds": 35.098636627197266
476
+ },
477
+ {
478
+ "epoch": 32,
479
+ "lr": 5e-05,
480
+ "train_loss": 0.040311011389801,
481
+ "val_loss": 0.046053570185211445,
482
+ "train_iou": 0.9010931199363209,
483
+ "train_miou": 0.9472919634159173,
484
+ "train_dice": 0.9479736794444914,
485
+ "train_pixel_acc": 0.9938552062802901,
486
+ "val_iou": 0.8921435313200486,
487
+ "val_miou": 0.9423952714913333,
488
+ "val_dice": 0.942997734107039,
489
+ "val_pixel_acc": 0.9930685860770078,
490
+ "epoch_seconds": 35.112605810165405
491
+ },
492
+ {
493
+ "epoch": 33,
494
+ "lr": 5e-05,
495
+ "train_loss": 0.03969387747347355,
496
+ "val_loss": 0.04735837031954101,
497
+ "train_iou": 0.9025966142224126,
498
+ "train_miou": 0.948096927881066,
499
+ "train_dice": 0.948805025169565,
500
+ "train_pixel_acc": 0.9939558511442906,
501
+ "val_iou": 0.8901641612034051,
502
+ "val_miou": 0.9413328993979138,
503
+ "val_dice": 0.9418908468105405,
504
+ "val_pixel_acc": 0.9929312110843503,
505
+ "epoch_seconds": 35.10844659805298
506
+ },
507
+ {
508
+ "epoch": 34,
509
+ "lr": 5e-05,
510
+ "train_loss": 0.03993111467835578,
511
+ "val_loss": 0.04789357900708204,
512
+ "train_iou": 0.9017649240854955,
513
+ "train_miou": 0.9476538728870239,
514
+ "train_dice": 0.9483453108897028,
515
+ "train_pixel_acc": 0.9939041514240977,
516
+ "val_iou": 0.8897345419337981,
517
+ "val_miou": 0.9410654581453178,
518
+ "val_dice": 0.9416502923456299,
519
+ "val_pixel_acc": 0.9928359182257389,
520
+ "epoch_seconds": 35.07142496109009
521
+ },
522
+ {
523
+ "epoch": 35,
524
+ "lr": 5e-05,
525
+ "train_loss": 0.03890974664439758,
526
+ "val_loss": 0.04594131031384071,
527
+ "train_iou": 0.9043949129866461,
528
+ "train_miou": 0.9490575701158267,
529
+ "train_dice": 0.9497976567982861,
530
+ "train_pixel_acc": 0.9940723572704222,
531
+ "val_iou": 0.8925565355507278,
532
+ "val_miou": 0.9426005128060194,
533
+ "val_dice": 0.9432283990300947,
534
+ "val_pixel_acc": 0.9930680583294161,
535
+ "epoch_seconds": 35.13060975074768
536
+ },
537
+ {
538
+ "epoch": 36,
539
+ "lr": 5e-05,
540
+ "train_loss": 0.03922102179265383,
541
+ "val_loss": 0.048487682782468344,
542
+ "train_iou": 0.9037649324443838,
543
+ "train_miou": 0.9487207497810923,
544
+ "train_dice": 0.9494501312028829,
545
+ "train_pixel_acc": 0.9940310328316305,
546
+ "val_iou": 0.8875550974342681,
547
+ "val_miou": 0.9399605617307355,
548
+ "val_dice": 0.9404282806268399,
549
+ "val_pixel_acc": 0.9927998822434493,
550
+ "epoch_seconds": 35.14081811904907
551
+ },
552
+ {
553
+ "epoch": 37,
554
+ "lr": 5e-05,
555
+ "train_loss": 0.03857459335051703,
556
+ "val_loss": 0.04743791085534862,
557
+ "train_iou": 0.9051078991752352,
558
+ "train_miou": 0.9494369157534518,
559
+ "train_dice": 0.9501906947812008,
560
+ "train_pixel_acc": 0.9941158193300051,
561
+ "val_iou": 0.8892583955240438,
562
+ "val_miou": 0.9408701915765321,
563
+ "val_dice": 0.9413835583643185,
564
+ "val_pixel_acc": 0.992910009398495,
565
+ "epoch_seconds": 35.157641649246216
566
+ },
567
+ {
568
+ "epoch": 38,
569
+ "lr": 5e-05,
570
+ "train_loss": 0.03893840236758644,
571
+ "val_loss": 0.04807828963246374,
572
+ "train_iou": 0.9042870524230266,
573
+ "train_miou": 0.948999872359221,
574
+ "train_dice": 0.9497381723752271,
575
+ "train_pixel_acc": 0.9940652289712797,
576
+ "val_iou": 0.8881117082324286,
577
+ "val_miou": 0.9402454168952364,
578
+ "val_dice": 0.94074063982564,
579
+ "val_pixel_acc": 0.9928138216635326,
580
+ "epoch_seconds": 35.10771465301514
581
+ },
582
+ {
583
+ "epoch": 39,
584
+ "lr": 5e-05,
585
+ "train_loss": 0.03908282823747758,
586
+ "val_loss": 0.04784455986338712,
587
+ "train_iou": 0.9037867879957139,
588
+ "train_miou": 0.9487314580692314,
589
+ "train_dice": 0.9494621915589727,
590
+ "train_pixel_acc": 0.994030725802086,
591
+ "val_iou": 0.8887280463382634,
592
+ "val_miou": 0.9405500042963651,
593
+ "val_dice": 0.9410863020340788,
594
+ "val_pixel_acc": 0.9928100127026539,
595
+ "epoch_seconds": 35.0955331325531
596
+ },
597
+ {
598
+ "epoch": 40,
599
+ "lr": 5e-05,
600
+ "train_loss": 0.03796727170772625,
601
+ "val_loss": 0.04727479906397916,
602
+ "train_iou": 0.9062078811915132,
603
+ "train_miou": 0.9500248654699397,
604
+ "train_dice": 0.9507964898613995,
605
+ "train_pixel_acc": 0.9941876787259526,
606
+ "val_iou": 0.8904040092255385,
607
+ "val_miou": 0.9414872978307942,
608
+ "val_dice": 0.9420250960960663,
609
+ "val_pixel_acc": 0.992993496772937,
610
+ "epoch_seconds": 35.11396932601929
611
+ },
612
+ {
613
+ "epoch": 41,
614
+ "lr": 2.5e-05,
615
+ "train_loss": 0.039245398703849674,
616
+ "val_loss": 0.04704178767722277,
617
+ "train_iou": 0.9034246059101595,
618
+ "train_miou": 0.9485394237609988,
619
+ "train_dice": 0.9492622960794074,
620
+ "train_pixel_acc": 0.9940098304140266,
621
+ "val_iou": 0.8911151211031899,
622
+ "val_miou": 0.9418365149781611,
623
+ "val_dice": 0.942422924082331,
624
+ "val_pixel_acc": 0.9929851560664344,
625
+ "epoch_seconds": 35.09564185142517
626
+ },
627
+ {
628
+ "epoch": 42,
629
+ "lr": 2.5e-05,
630
+ "train_loss": 0.03785808120825977,
631
+ "val_loss": 0.046199601431865064,
632
+ "train_iou": 0.906683385492013,
633
+ "train_miou": 0.9502784031354016,
634
+ "train_dice": 0.9510581488158786,
635
+ "train_pixel_acc": 0.9942176285890708,
636
+ "val_iou": 0.8929300036433431,
637
+ "val_miou": 0.9428262006060032,
638
+ "val_dice": 0.9434368961606725,
639
+ "val_pixel_acc": 0.9931388223977902,
640
+ "epoch_seconds": 35.081814765930176
641
+ },
642
+ {
643
+ "epoch": 43,
644
+ "lr": 2.5e-05,
645
+ "train_loss": 0.03785106850731553,
646
+ "val_loss": 0.04866522721325358,
647
+ "train_iou": 0.906501925116538,
648
+ "train_miou": 0.9501816828191837,
649
+ "train_dice": 0.9509583107933413,
650
+ "train_pixel_acc": 0.9942062598064074,
651
+ "val_iou": 0.8877159883324933,
652
+ "val_miou": 0.9400463756417653,
653
+ "val_dice": 0.9405185884097467,
654
+ "val_pixel_acc": 0.99281009301207,
655
+ "epoch_seconds": 35.083431005477905
656
+ },
657
+ {
658
+ "epoch": 44,
659
+ "lr": 2.5e-05,
660
+ "train_loss": 0.037152802018505154,
661
+ "val_loss": 0.04595784388393873,
662
+ "train_iou": 0.9084029519568769,
663
+ "train_miou": 0.9511967652164209,
664
+ "train_dice": 0.9520032978626451,
665
+ "train_pixel_acc": 0.9943285821148544,
666
+ "val_iou": 0.893700778293128,
667
+ "val_miou": 0.9432145415402483,
668
+ "val_dice": 0.9438669387870854,
669
+ "val_pixel_acc": 0.9931472548864826,
670
+ "epoch_seconds": 35.10310935974121
671
+ },
672
+ {
673
+ "epoch": 45,
674
+ "lr": 2.5e-05,
675
+ "train_loss": 0.03694151769194639,
676
+ "val_loss": 0.04660311554159437,
677
+ "train_iou": 0.9088938036487649,
678
+ "train_miou": 0.9514598767732889,
679
+ "train_dice": 0.9522727790424541,
680
+ "train_pixel_acc": 0.9943619672330651,
681
+ "val_iou": 0.8926321454003999,
682
+ "val_miou": 0.9426385344423502,
683
+ "val_dice": 0.9432706166063317,
684
+ "val_pixel_acc": 0.9930687581686137,
685
+ "epoch_seconds": 35.09096693992615
686
+ },
687
+ {
688
+ "epoch": 46,
689
+ "lr": 2.5e-05,
690
+ "train_loss": 0.03679312738505277,
691
+ "val_loss": 0.04599469802564099,
692
+ "train_iou": 0.9092085100073615,
693
+ "train_miou": 0.9516272739507466,
694
+ "train_dice": 0.9524454822421212,
695
+ "train_pixel_acc": 0.9943810638914344,
696
+ "val_iou": 0.8936349430622809,
697
+ "val_miou": 0.9431941438171625,
698
+ "val_dice": 0.9438302206413071,
699
+ "val_pixel_acc": 0.9931692252481779,
700
+ "epoch_seconds": 35.09560704231262
701
+ },
702
+ {
703
+ "epoch": 47,
704
+ "lr": 2.5e-05,
705
+ "train_loss": 0.036248503027088715,
706
+ "val_loss": 0.04557518829547223,
707
+ "train_iou": 0.9102638863245032,
708
+ "train_miou": 0.9521917543858409,
709
+ "train_dice": 0.9530242317211178,
710
+ "train_pixel_acc": 0.9944506379448287,
711
+ "val_iou": 0.8950883575188618,
712
+ "val_miou": 0.943961310630034,
713
+ "val_dice": 0.9446402369235736,
714
+ "val_pixel_acc": 0.993247113909039,
715
+ "epoch_seconds": 35.065922021865845
716
+ },
717
+ {
718
+ "epoch": 48,
719
+ "lr": 2.5e-05,
720
+ "train_loss": 0.03634186992703965,
721
+ "val_loss": 0.045475904120221025,
722
+ "train_iou": 0.9095829518582594,
723
+ "train_miou": 0.9518281363640427,
724
+ "train_dice": 0.9526508926706989,
725
+ "train_pixel_acc": 0.9944067964430728,
726
+ "val_iou": 0.8951981878661379,
727
+ "val_miou": 0.9440237140925567,
728
+ "val_dice": 0.9447013970333826,
729
+ "val_pixel_acc": 0.9932608697647427,
730
+ "epoch_seconds": 35.05137395858765
731
+ },
732
+ {
733
+ "epoch": 49,
734
+ "lr": 2.5e-05,
735
+ "train_loss": 0.0358940334877733,
736
+ "val_loss": 0.04678121233536374,
737
+ "train_iou": 0.9108808336743338,
738
+ "train_miou": 0.9525198331368874,
739
+ "train_dice": 0.9533622585170298,
740
+ "train_pixel_acc": 0.9944879159659438,
741
+ "val_iou": 0.8927393686323656,
742
+ "val_miou": 0.9427070657511407,
743
+ "val_dice": 0.9433304800728387,
744
+ "val_pixel_acc": 0.9930957077141083,
745
+ "epoch_seconds": 35.046671867370605
746
+ },
747
+ {
748
+ "epoch": 50,
749
+ "lr": 2.5e-05,
750
+ "train_loss": 0.036107035438445484,
751
+ "val_loss": 0.04712046234912816,
752
+ "train_iou": 0.9106665236924826,
753
+ "train_miou": 0.9524080755949192,
754
+ "train_dice": 0.9532448623557424,
755
+ "train_pixel_acc": 0.9944788991454518,
756
+ "val_iou": 0.8918142021887981,
757
+ "val_miou": 0.9421946070058107,
758
+ "val_dice": 0.942813729970928,
759
+ "val_pixel_acc": 0.9930032601033822,
760
+ "epoch_seconds": 35.03986358642578
761
+ }
762
+ ],
763
+ "start_time_iso": "2026-05-12T10:17:26",
764
+ "best_epoch": 48,
765
+ "best_val_dice": 0.9447013970333826,
766
+ "epochs_trained": 50,
767
+ "wall_clock_seconds": 1755.2901220321655
768
+ }
experiments/resolution_study/logs/segformer_b0_res512.json ADDED
@@ -0,0 +1,768 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "cfg_id": "segformer_b0_res512",
3
+ "model": "segformer_b0",
4
+ "image_size": 512,
5
+ "batch_size": 16,
6
+ "throttle": null,
7
+ "n_train": 5268,
8
+ "n_val": 1330,
9
+ "n_params": 3714401,
10
+ "baseline_dice_at_128": 0.928,
11
+ "epochs": [
12
+ {
13
+ "epoch": 1,
14
+ "lr": 0.0001,
15
+ "train_loss": 0.3462342405861074,
16
+ "val_loss": 0.1674548446954716,
17
+ "train_iou": 0.6543693326990742,
18
+ "train_miou": 0.8123625483094656,
19
+ "train_dice": 0.7910801049865718,
20
+ "train_pixel_acc": 0.971931110663041,
21
+ "val_iou": 0.7910997600024179,
22
+ "val_miou": 0.8873483838965179,
23
+ "val_dice": 0.8833676132046938,
24
+ "val_pixel_acc": 0.9845563329252082,
25
+ "epoch_seconds": 199.3692409992218
26
+ },
27
+ {
28
+ "epoch": 2,
29
+ "lr": 0.0001,
30
+ "train_loss": 0.12618335275487466,
31
+ "val_loss": 0.08587212896063215,
32
+ "train_iou": 0.8219798262177866,
33
+ "train_miou": 0.9048538798521035,
34
+ "train_dice": 0.9022930049934955,
35
+ "train_pixel_acc": 0.9883860310733363,
36
+ "val_iou": 0.8487401731829806,
37
+ "val_miou": 0.9191724815098818,
38
+ "val_dice": 0.9181822145636642,
39
+ "val_pixel_acc": 0.9901777138387347,
40
+ "epoch_seconds": 199.1093454360962
41
+ },
42
+ {
43
+ "epoch": 3,
44
+ "lr": 0.0001,
45
+ "train_loss": 0.08082308989356865,
46
+ "val_loss": 0.06355313894649346,
47
+ "train_iou": 0.8492910567198468,
48
+ "train_miou": 0.9195678397475031,
49
+ "train_dice": 0.918504476224813,
50
+ "train_pixel_acc": 0.9903943417374619,
51
+ "val_iou": 0.8703283058664046,
52
+ "val_miou": 0.9307097292919433,
53
+ "val_dice": 0.9306690201250382,
54
+ "val_pixel_acc": 0.9915937954321836,
55
+ "epoch_seconds": 199.94086861610413
56
+ },
57
+ {
58
+ "epoch": 4,
59
+ "lr": 0.0001,
60
+ "train_loss": 0.06919254875092795,
61
+ "val_loss": 0.07130696722084567,
62
+ "train_iou": 0.8543993373558953,
63
+ "train_miou": 0.9223040826261579,
64
+ "train_dice": 0.9214836525709128,
65
+ "train_pixel_acc": 0.9907408195095888,
66
+ "val_iou": 0.8444226445987137,
67
+ "val_miou": 0.916951875827449,
68
+ "val_dice": 0.9156498344580156,
69
+ "val_pixel_acc": 0.9900492273775255,
70
+ "epoch_seconds": 200.81621670722961
71
+ },
72
+ {
73
+ "epoch": 5,
74
+ "lr": 0.0001,
75
+ "train_loss": 0.06128861236978661,
76
+ "val_loss": 0.05809110862069896,
77
+ "train_iou": 0.8643060366799367,
78
+ "train_miou": 0.927621360396885,
79
+ "train_dice": 0.9272147594599249,
80
+ "train_pixel_acc": 0.9914313441619061,
81
+ "val_iou": 0.8712629576027454,
82
+ "val_miou": 0.9312632751524594,
83
+ "val_dice": 0.9312031257423179,
84
+ "val_pixel_acc": 0.9917513051427393,
85
+ "epoch_seconds": 200.52005553245544
86
+ },
87
+ {
88
+ "epoch": 6,
89
+ "lr": 0.0001,
90
+ "train_loss": 0.05669363226290002,
91
+ "val_loss": 0.05181021320944031,
92
+ "train_iou": 0.8719355151494216,
93
+ "train_miou": 0.9317051030029846,
94
+ "train_dice": 0.9315871279677302,
95
+ "train_pixel_acc": 0.9919423955629156,
96
+ "val_iou": 0.8821696162991858,
97
+ "val_miou": 0.9370568794147682,
98
+ "val_dice": 0.9373965116212545,
99
+ "val_pixel_acc": 0.9924023735792113,
100
+ "epoch_seconds": 200.4541997909546
101
+ },
102
+ {
103
+ "epoch": 7,
104
+ "lr": 0.0001,
105
+ "train_loss": 0.05540707956322215,
106
+ "val_loss": 0.058895066912685125,
107
+ "train_iou": 0.8725221577387002,
108
+ "train_miou": 0.9320172206348496,
109
+ "train_dice": 0.9319218511062936,
110
+ "train_pixel_acc": 0.9919782977440905,
111
+ "val_iou": 0.8670604949962044,
112
+ "val_miou": 0.9289624370089855,
113
+ "val_dice": 0.9287974303135444,
114
+ "val_pixel_acc": 0.9913781101542305,
115
+ "epoch_seconds": 200.66870045661926
116
+ },
117
+ {
118
+ "epoch": 8,
119
+ "lr": 0.0001,
120
+ "train_loss": 0.05354075865312056,
121
+ "val_loss": 0.049302999883712756,
122
+ "train_iou": 0.8746778241983165,
123
+ "train_miou": 0.9331745273308756,
124
+ "train_dice": 0.9331500196012209,
125
+ "train_pixel_acc": 0.9921287849443648,
126
+ "val_iou": 0.8849378376459778,
127
+ "val_miou": 0.9385370716517332,
128
+ "val_dice": 0.9389570520279233,
129
+ "val_pixel_acc": 0.992584773472377,
130
+ "epoch_seconds": 200.61821818351746
131
+ },
132
+ {
133
+ "epoch": 9,
134
+ "lr": 0.0001,
135
+ "train_loss": 0.051085376062176446,
136
+ "val_loss": 0.04859597406660517,
137
+ "train_iou": 0.8794555332348465,
138
+ "train_miou": 0.935731064195972,
139
+ "train_dice": 0.9358620277875492,
140
+ "train_pixel_acc": 0.9924470630666028,
141
+ "val_iou": 0.8871432459029192,
142
+ "val_miou": 0.939722939336674,
143
+ "val_dice": 0.9401970389147203,
144
+ "val_pixel_acc": 0.9927418070628228,
145
+ "epoch_seconds": 200.80760073661804
146
+ },
147
+ {
148
+ "epoch": 10,
149
+ "lr": 0.0001,
150
+ "train_loss": 0.05011981267369155,
151
+ "val_loss": 0.0522468276321888,
152
+ "train_iou": 0.8809655066393949,
153
+ "train_miou": 0.9365306213835299,
154
+ "train_dice": 0.9367162805801386,
155
+ "train_pixel_acc": 0.9925325722430091,
156
+ "val_iou": 0.8784563204523022,
157
+ "val_miou": 0.9350920367548563,
158
+ "val_dice": 0.935295977753461,
159
+ "val_pixel_acc": 0.9921944295553333,
160
+ "epoch_seconds": 200.69015908241272
161
+ },
162
+ {
163
+ "epoch": 11,
164
+ "lr": 0.0001,
165
+ "train_loss": 0.05376550480158943,
166
+ "val_loss": 0.048776819614604824,
167
+ "train_iou": 0.8718011576487081,
168
+ "train_miou": 0.9316295898833691,
169
+ "train_dice": 0.9315104375123207,
170
+ "train_pixel_acc": 0.9919269738454392,
171
+ "val_iou": 0.8853374686317301,
172
+ "val_miou": 0.9387326004273808,
173
+ "val_dice": 0.9391819590518798,
174
+ "val_pixel_acc": 0.9925788191028104,
175
+ "epoch_seconds": 200.88582730293274
176
+ },
177
+ {
178
+ "epoch": 12,
179
+ "lr": 0.0001,
180
+ "train_loss": 0.04859433506587238,
181
+ "val_loss": 0.04907959160794105,
182
+ "train_iou": 0.8843336063702515,
183
+ "train_miou": 0.9383323491771275,
184
+ "train_dice": 0.9386168175111232,
185
+ "train_pixel_acc": 0.9927558392037382,
186
+ "val_iou": 0.8854779829220045,
187
+ "val_miou": 0.9388389653996704,
188
+ "val_dice": 0.9392610159782848,
189
+ "val_pixel_acc": 0.9926436087242639,
190
+ "epoch_seconds": 200.9939205646515
191
+ },
192
+ {
193
+ "epoch": 13,
194
+ "lr": 0.0001,
195
+ "train_loss": 0.046798791736364365,
196
+ "val_loss": 0.04889931851288393,
197
+ "train_iou": 0.8874846334962447,
198
+ "train_miou": 0.9400186043470751,
199
+ "train_dice": 0.940388724492374,
200
+ "train_pixel_acc": 0.9929657851373416,
201
+ "val_iou": 0.8851353586281591,
202
+ "val_miou": 0.9386772696197174,
203
+ "val_dice": 0.9390682261376554,
204
+ "val_pixel_acc": 0.992659314951502,
205
+ "epoch_seconds": 200.86419892311096
206
+ },
207
+ {
208
+ "epoch": 14,
209
+ "lr": 0.0001,
210
+ "train_loss": 0.04816184077750553,
211
+ "val_loss": 0.04745246727196943,
212
+ "train_iou": 0.8838681442134846,
213
+ "train_miou": 0.9380875512957851,
214
+ "train_dice": 0.9383545731991766,
215
+ "train_pixel_acc": 0.9927324788898071,
216
+ "val_iou": 0.8880972203269154,
217
+ "val_miou": 0.9402280765331615,
218
+ "val_dice": 0.9407325118281202,
219
+ "val_pixel_acc": 0.9927958094087755,
220
+ "epoch_seconds": 200.9004771709442
221
+ },
222
+ {
223
+ "epoch": 15,
224
+ "lr": 0.0001,
225
+ "train_loss": 0.04720536358654499,
226
+ "val_loss": 0.04655059513502887,
227
+ "train_iou": 0.8858711764461115,
228
+ "train_miou": 0.9391536564100194,
229
+ "train_dice": 0.9394821740852087,
230
+ "train_pixel_acc": 0.9928555912200302,
231
+ "val_iou": 0.8899285930425143,
232
+ "val_miou": 0.9412046476885662,
233
+ "val_dice": 0.9417589599084871,
234
+ "val_pixel_acc": 0.9929116299277855,
235
+ "epoch_seconds": 201.0169985294342
236
+ },
237
+ {
238
+ "epoch": 16,
239
+ "lr": 0.0001,
240
+ "train_loss": 0.04378589861885165,
241
+ "val_loss": 0.04764504116472034,
242
+ "train_iou": 0.8940235774394228,
243
+ "train_miou": 0.9435162473227396,
244
+ "train_dice": 0.9440469359394938,
245
+ "train_pixel_acc": 0.9933982688365058,
246
+ "val_iou": 0.8876788420979516,
247
+ "val_miou": 0.9400027105955376,
248
+ "val_dice": 0.9404977396593505,
249
+ "val_pixel_acc": 0.992765314776198,
250
+ "epoch_seconds": 201.1188325881958
251
+ },
252
+ {
253
+ "epoch": 17,
254
+ "lr": 0.0001,
255
+ "train_loss": 0.04426479523606373,
256
+ "val_loss": 0.05039302346163562,
257
+ "train_iou": 0.8924188272603085,
258
+ "train_miou": 0.9426555587964935,
259
+ "train_dice": 0.9431514994513985,
260
+ "train_pixel_acc": 0.9932880321957437,
261
+ "val_iou": 0.8811507023943462,
262
+ "val_miou": 0.9365360537936407,
263
+ "val_dice": 0.9368209588660913,
264
+ "val_pixel_acc": 0.9923779279665836,
265
+ "epoch_seconds": 201.36335062980652
266
+ },
267
+ {
268
+ "epoch": 18,
269
+ "lr": 0.0001,
270
+ "train_loss": 0.04655509578684966,
271
+ "val_loss": 0.048464656474867036,
272
+ "train_iou": 0.8874264030102316,
273
+ "train_miou": 0.9399871085185565,
274
+ "train_dice": 0.9403560335861435,
275
+ "train_pixel_acc": 0.9929613100369047,
276
+ "val_iou": 0.8861053124513518,
277
+ "val_miou": 0.9392011516689067,
278
+ "val_dice": 0.9396138238958565,
279
+ "val_pixel_acc": 0.9927325284570676,
280
+ "epoch_seconds": 201.4516785144806
281
+ },
282
+ {
283
+ "epoch": 19,
284
+ "lr": 0.0001,
285
+ "train_loss": 0.04421594160975832,
286
+ "val_loss": 0.04724763083227333,
287
+ "train_iou": 0.8924444769684794,
288
+ "train_miou": 0.9426698315535023,
289
+ "train_dice": 0.9431658237055311,
290
+ "train_pixel_acc": 0.9932907143595007,
291
+ "val_iou": 0.8892829393597637,
292
+ "val_miou": 0.9408445424952303,
293
+ "val_dice": 0.9413973109407553,
294
+ "val_pixel_acc": 0.992842698635015,
295
+ "epoch_seconds": 201.595281124115
296
+ },
297
+ {
298
+ "epoch": 20,
299
+ "lr": 0.0001,
300
+ "train_loss": 0.04425235915590416,
301
+ "val_loss": 0.059572984530989616,
302
+ "train_iou": 0.8923679832992939,
303
+ "train_miou": 0.9426266256729687,
304
+ "train_dice": 0.9431231041475071,
305
+ "train_pixel_acc": 0.9932815722651616,
306
+ "val_iou": 0.8594430818792436,
307
+ "val_miou": 0.9249037124055014,
308
+ "val_dice": 0.924409131158399,
309
+ "val_pixel_acc": 0.9909004670336727,
310
+ "epoch_seconds": 201.55471467971802
311
+ },
312
+ {
313
+ "epoch": 21,
314
+ "lr": 5e-05,
315
+ "train_loss": 0.050745279257270424,
316
+ "val_loss": 0.04886538233785402,
317
+ "train_iou": 0.8782710790536631,
318
+ "train_miou": 0.9350938374509237,
319
+ "train_dice": 0.9351909730688779,
320
+ "train_pixel_acc": 0.9923620528132063,
321
+ "val_iou": 0.8856061171598729,
322
+ "val_miou": 0.9388823318852348,
323
+ "val_dice": 0.9393330973000721,
324
+ "val_pixel_acc": 0.9926073289455324,
325
+ "epoch_seconds": 201.57739567756653
326
+ },
327
+ {
328
+ "epoch": 22,
329
+ "lr": 5e-05,
330
+ "train_loss": 0.041884226871259284,
331
+ "val_loss": 0.044722866178268476,
332
+ "train_iou": 0.8973338464906022,
333
+ "train_miou": 0.945283945543505,
334
+ "train_dice": 0.9458892520684782,
335
+ "train_pixel_acc": 0.9936118194707524,
336
+ "val_iou": 0.895175286714652,
337
+ "val_miou": 0.9440079070552945,
338
+ "val_dice": 0.9446886448867403,
339
+ "val_pixel_acc": 0.9932530367284785,
340
+ "epoch_seconds": 201.45697283744812
341
+ },
342
+ {
343
+ "epoch": 23,
344
+ "lr": 5e-05,
345
+ "train_loss": 0.04038599875727386,
346
+ "val_loss": 0.04454487318261748,
347
+ "train_iou": 0.9011763764859814,
348
+ "train_miou": 0.9473365889152645,
349
+ "train_dice": 0.9480197499104854,
350
+ "train_pixel_acc": 0.9938608696719599,
351
+ "val_iou": 0.8955123494715443,
352
+ "val_miou": 0.9442195317891343,
353
+ "val_dice": 0.9448763018834533,
354
+ "val_pixel_acc": 0.993330999962369,
355
+ "epoch_seconds": 201.35949158668518
356
+ },
357
+ {
358
+ "epoch": 24,
359
+ "lr": 5e-05,
360
+ "train_loss": 0.03922291643578898,
361
+ "val_loss": 0.044592620605336766,
362
+ "train_iou": 0.9036192759580995,
363
+ "train_miou": 0.9486415728129942,
364
+ "train_dice": 0.9493697477961336,
365
+ "train_pixel_acc": 0.9940191586088211,
366
+ "val_iou": 0.8950042319292087,
367
+ "val_miou": 0.9439114682083966,
368
+ "val_dice": 0.9445933859662676,
369
+ "val_pixel_acc": 0.9932329479016753,
370
+ "epoch_seconds": 201.36460614204407
371
+ },
372
+ {
373
+ "epoch": 25,
374
+ "lr": 5e-05,
375
+ "train_loss": 0.03951360553954587,
376
+ "val_loss": 0.0509554775032614,
377
+ "train_iou": 0.9028692905035254,
378
+ "train_miou": 0.9482415591866078,
379
+ "train_dice": 0.948955658709079,
380
+ "train_pixel_acc": 0.9939716812689918,
381
+ "val_iou": 0.8813530370276116,
382
+ "val_miou": 0.9366109013626436,
383
+ "val_dice": 0.9369353010108932,
384
+ "val_pixel_acc": 0.9923319307485018,
385
+ "epoch_seconds": 201.4103639125824
386
+ },
387
+ {
388
+ "epoch": 26,
389
+ "lr": 5e-05,
390
+ "train_loss": 0.039347334623788345,
391
+ "val_loss": 0.046095720026642084,
392
+ "train_iou": 0.9034404629827415,
393
+ "train_miou": 0.948546000289829,
394
+ "train_dice": 0.9492710495047757,
395
+ "train_pixel_acc": 0.994007482072487,
396
+ "val_iou": 0.8914566878098733,
397
+ "val_miou": 0.9420008842983882,
398
+ "val_dice": 0.9426139055207183,
399
+ "val_pixel_acc": 0.9929751862260628,
400
+ "epoch_seconds": 201.81215167045593
401
+ },
402
+ {
403
+ "epoch": 27,
404
+ "lr": 5e-05,
405
+ "train_loss": 0.038321497415502864,
406
+ "val_loss": 0.04633838499319695,
407
+ "train_iou": 0.9050439534020096,
408
+ "train_miou": 0.9494036023659462,
409
+ "train_dice": 0.9501554562935839,
410
+ "train_pixel_acc": 0.9941131849585833,
411
+ "val_iou": 0.8907508540433394,
412
+ "val_miou": 0.9416508486524547,
413
+ "val_dice": 0.942219174079423,
414
+ "val_pixel_acc": 0.9929773689212652,
415
+ "epoch_seconds": 201.80251240730286
416
+ },
417
+ {
418
+ "epoch": 28,
419
+ "lr": 5e-05,
420
+ "train_loss": 0.03832782869876334,
421
+ "val_loss": 0.045467182483878876,
422
+ "train_iou": 0.9049934311095633,
423
+ "train_miou": 0.9493760297538829,
424
+ "train_dice": 0.9501276133875696,
425
+ "train_pixel_acc": 0.994108872062434,
426
+ "val_iou": 0.8930551718983177,
427
+ "val_miou": 0.9428858905909364,
428
+ "val_dice": 0.9435067558044598,
429
+ "val_pixel_acc": 0.9931341931335905,
430
+ "epoch_seconds": 201.42472958564758
431
+ },
432
+ {
433
+ "epoch": 29,
434
+ "lr": 2.5e-05,
435
+ "train_loss": 0.03927598571912809,
436
+ "val_loss": 0.044899338035888615,
437
+ "train_iou": 0.9040713559205485,
438
+ "train_miou": 0.9488836017851516,
439
+ "train_dice": 0.9496191968955526,
440
+ "train_pixel_acc": 0.99404939088119,
441
+ "val_iou": 0.8947423413855806,
442
+ "val_miou": 0.9438023572866308,
443
+ "val_dice": 0.9444475080778283,
444
+ "val_pixel_acc": 0.9932706646453165,
445
+ "epoch_seconds": 201.27429866790771
446
+ },
447
+ {
448
+ "epoch": 30,
449
+ "lr": 2.5e-05,
450
+ "train_loss": 0.037439642005571816,
451
+ "val_loss": 0.044944463386422114,
452
+ "train_iou": 0.9077853022672625,
453
+ "train_miou": 0.9508664298108707,
454
+ "train_dice": 0.9516640066242532,
455
+ "train_pixel_acc": 0.9942878949071932,
456
+ "val_iou": 0.8944756855331202,
457
+ "val_miou": 0.943640504064114,
458
+ "val_dice": 0.9442989343844842,
459
+ "val_pixel_acc": 0.9932188736765005,
460
+ "epoch_seconds": 201.2667384147644
461
+ },
462
+ {
463
+ "epoch": 31,
464
+ "lr": 2.5e-05,
465
+ "train_loss": 0.03741074400869283,
466
+ "val_loss": 0.044690334637250216,
467
+ "train_iou": 0.9076502516368841,
468
+ "train_miou": 0.9507947959410135,
469
+ "train_dice": 0.9515897904849834,
470
+ "train_pixel_acc": 0.9942800576884183,
471
+ "val_iou": 0.8954398207927399,
472
+ "val_miou": 0.9441649823295037,
473
+ "val_dice": 0.9448359277565831,
474
+ "val_pixel_acc": 0.9932982021704649,
475
+ "epoch_seconds": 201.10171103477478
476
+ },
477
+ {
478
+ "epoch": 32,
479
+ "lr": 2.5e-05,
480
+ "train_loss": 0.036475699795692255,
481
+ "val_loss": 0.0445681854062492,
482
+ "train_iou": 0.9096448642925528,
483
+ "train_miou": 0.9518596933094412,
484
+ "train_dice": 0.9526848486873395,
485
+ "train_pixel_acc": 0.9944081034910163,
486
+ "val_iou": 0.8949176289096835,
487
+ "val_miou": 0.9438680025092228,
488
+ "val_dice": 0.9445451509410572,
489
+ "val_pixel_acc": 0.993232296821766,
490
+ "epoch_seconds": 201.14425206184387
491
+ },
492
+ {
493
+ "epoch": 33,
494
+ "lr": 2.5e-05,
495
+ "train_loss": 0.03632389172685869,
496
+ "val_loss": 0.04556084204731243,
497
+ "train_iou": 0.9098613497119754,
498
+ "train_miou": 0.9519756711063795,
499
+ "train_dice": 0.9528035633049393,
500
+ "train_pixel_acc": 0.9944227098422966,
501
+ "val_iou": 0.8934454450541184,
502
+ "val_miou": 0.9430899647842532,
503
+ "val_dice": 0.9437245180608644,
504
+ "val_pixel_acc": 0.9931516862453371,
505
+ "epoch_seconds": 201.20187854766846
506
+ },
507
+ {
508
+ "epoch": 34,
509
+ "lr": 2.5e-05,
510
+ "train_loss": 0.0365134649035154,
511
+ "val_loss": 0.04432079592897069,
512
+ "train_iou": 0.9091608309861207,
513
+ "train_miou": 0.9516015242573947,
514
+ "train_dice": 0.9524193208138684,
515
+ "train_pixel_acc": 0.9943774787422012,
516
+ "val_iou": 0.8952767137817828,
517
+ "val_miou": 0.9440638033505334,
518
+ "val_dice": 0.94474512061658,
519
+ "val_pixel_acc": 0.9932626623856391,
520
+ "epoch_seconds": 201.3080859184265
521
+ },
522
+ {
523
+ "epoch": 35,
524
+ "lr": 2.5e-05,
525
+ "train_loss": 0.03583625893701207,
526
+ "val_loss": 0.0438397388151359,
527
+ "train_iou": 0.9110033625705856,
528
+ "train_miou": 0.9525851702590592,
529
+ "train_dice": 0.953429366388084,
530
+ "train_pixel_acc": 0.9944956380486398,
531
+ "val_iou": 0.8966224948374316,
532
+ "val_miou": 0.9447864538070241,
533
+ "val_dice": 0.945493894834655,
534
+ "val_pixel_acc": 0.9933566100615304,
535
+ "epoch_seconds": 201.15591526031494
536
+ },
537
+ {
538
+ "epoch": 36,
539
+ "lr": 2.5e-05,
540
+ "train_loss": 0.03593552104677215,
541
+ "val_loss": 0.04379837445559956,
542
+ "train_iou": 0.9110143486481996,
543
+ "train_miou": 0.9525920229054203,
544
+ "train_dice": 0.953435382934332,
545
+ "train_pixel_acc": 0.994498101526259,
546
+ "val_iou": 0.8967742004610942,
547
+ "val_miou": 0.944868510144268,
548
+ "val_dice": 0.9455782351353091,
549
+ "val_pixel_acc": 0.9933682549268676,
550
+ "epoch_seconds": 201.28033828735352
551
+ },
552
+ {
553
+ "epoch": 37,
554
+ "lr": 2.5e-05,
555
+ "train_loss": 0.03577511106250864,
556
+ "val_loss": 0.043597971222230365,
557
+ "train_iou": 0.9113756336729872,
558
+ "train_miou": 0.9527848165072795,
559
+ "train_dice": 0.9536332028274799,
560
+ "train_pixel_acc": 0.9945211236732153,
561
+ "val_iou": 0.8972373866741069,
562
+ "val_miou": 0.9451270380642143,
563
+ "val_dice": 0.9458356587068749,
564
+ "val_pixel_acc": 0.9934180094783464,
565
+ "epoch_seconds": 201.19226622581482
566
+ },
567
+ {
568
+ "epoch": 38,
569
+ "lr": 2.5e-05,
570
+ "train_loss": 0.0355654998767105,
571
+ "val_loss": 0.0438905355875336,
572
+ "train_iou": 0.9116513198491112,
573
+ "train_miou": 0.952931761233841,
574
+ "train_dice": 0.9537841031816084,
575
+ "train_pixel_acc": 0.9945383868438327,
576
+ "val_iou": 0.8971066015507706,
577
+ "val_miou": 0.945053460934798,
578
+ "val_dice": 0.9457629853983324,
579
+ "val_pixel_acc": 0.9934029313854702,
580
+ "epoch_seconds": 200.91067814826965
581
+ },
582
+ {
583
+ "epoch": 39,
584
+ "lr": 2.5e-05,
585
+ "train_loss": 0.035108415963071765,
586
+ "val_loss": 0.043585805887622495,
587
+ "train_iou": 0.9126399768116724,
588
+ "train_miou": 0.9534593809495735,
589
+ "train_dice": 0.954324899485812,
590
+ "train_pixel_acc": 0.994601450277805,
591
+ "val_iou": 0.8977397696242644,
592
+ "val_miou": 0.9453952278697102,
593
+ "val_dice": 0.9461147244672108,
594
+ "val_pixel_acc": 0.9934502709180786,
595
+ "epoch_seconds": 200.943359375
596
+ },
597
+ {
598
+ "epoch": 40,
599
+ "lr": 2.5e-05,
600
+ "train_loss": 0.034987377273765476,
601
+ "val_loss": 0.04410944808097113,
602
+ "train_iou": 0.9129763389369963,
603
+ "train_miou": 0.9536387797986025,
604
+ "train_dice": 0.9545087624495341,
605
+ "train_pixel_acc": 0.9946227106255117,
606
+ "val_iou": 0.8970884543587074,
607
+ "val_miou": 0.9450437722374516,
608
+ "val_dice": 0.9457529007649352,
609
+ "val_pixel_acc": 0.993401764030743,
610
+ "epoch_seconds": 201.00248527526855
611
+ },
612
+ {
613
+ "epoch": 41,
614
+ "lr": 2.5e-05,
615
+ "train_loss": 0.03553131168538874,
616
+ "val_loss": 0.04385919381110441,
617
+ "train_iou": 0.9116608225193717,
618
+ "train_miou": 0.9529380388631504,
619
+ "train_dice": 0.9537893038137351,
620
+ "train_pixel_acc": 0.9945411414202181,
621
+ "val_iou": 0.8975955370871852,
622
+ "val_miou": 0.9453103202193611,
623
+ "val_dice": 0.9460346207021514,
624
+ "val_pixel_acc": 0.9934269553736633,
625
+ "epoch_seconds": 200.89173936843872
626
+ },
627
+ {
628
+ "epoch": 42,
629
+ "lr": 2.5e-05,
630
+ "train_loss": 0.03496871916295001,
631
+ "val_loss": 0.044103194471626056,
632
+ "train_iou": 0.9131171606296528,
633
+ "train_miou": 0.953715122274242,
634
+ "train_dice": 0.9545857194957408,
635
+ "train_pixel_acc": 0.9946338107573235,
636
+ "val_iou": 0.897023944044472,
637
+ "val_miou": 0.9450055763577124,
638
+ "val_dice": 0.9457170499725048,
639
+ "val_pixel_acc": 0.9933909452051145,
640
+ "epoch_seconds": 201.04255366325378
641
+ },
642
+ {
643
+ "epoch": 43,
644
+ "lr": 2.5e-05,
645
+ "train_loss": 0.03542166832608707,
646
+ "val_loss": 0.04375726487931041,
647
+ "train_iou": 0.9119433233363174,
648
+ "train_miou": 0.9530879326701769,
649
+ "train_dice": 0.9539438875677421,
650
+ "train_pixel_acc": 0.994557613844933,
651
+ "val_iou": 0.8974442509356848,
652
+ "val_miou": 0.9452426485274875,
653
+ "val_dice": 0.9459505864197371,
654
+ "val_pixel_acc": 0.9934404961148595,
655
+ "epoch_seconds": 201.67071509361267
656
+ },
657
+ {
658
+ "epoch": 44,
659
+ "lr": 2.5e-05,
660
+ "train_loss": 0.03528102543205023,
661
+ "val_loss": 0.04314876092775237,
662
+ "train_iou": 0.9123590698032819,
663
+ "train_miou": 0.9533098353829179,
664
+ "train_dice": 0.9541712999506241,
665
+ "train_pixel_acc": 0.9945841863830612,
666
+ "val_iou": 0.8994851210757973,
667
+ "val_miou": 0.9463243945370107,
668
+ "val_dice": 0.9470830922501384,
669
+ "val_pixel_acc": 0.9935577822807137,
670
+ "epoch_seconds": 201.92482948303223
671
+ },
672
+ {
673
+ "epoch": 45,
674
+ "lr": 2.5e-05,
675
+ "train_loss": 0.034566890866015894,
676
+ "val_loss": 0.043645996799958606,
677
+ "train_iou": 0.91424848902012,
678
+ "train_miou": 0.9543194511904178,
679
+ "train_dice": 0.9552035634497092,
680
+ "train_pixel_acc": 0.994706974304709,
681
+ "val_iou": 0.8979136832115878,
682
+ "val_miou": 0.9454789934788879,
683
+ "val_dice": 0.9462112962821023,
684
+ "val_pixel_acc": 0.9934453175480201,
685
+ "epoch_seconds": 201.96594882011414
686
+ },
687
+ {
688
+ "epoch": 46,
689
+ "lr": 2.5e-05,
690
+ "train_loss": 0.03485801891621315,
691
+ "val_loss": 0.04381637851751986,
692
+ "train_iou": 0.9136574478241075,
693
+ "train_miou": 0.954002509767991,
694
+ "train_dice": 0.954880873651621,
695
+ "train_pixel_acc": 0.9946665781958137,
696
+ "val_iou": 0.8978709319769678,
697
+ "val_miou": 0.9454623626114348,
698
+ "val_dice": 0.9461875587521399,
699
+ "val_pixel_acc": 0.9934535693405263,
700
+ "epoch_seconds": 202.22601437568665
701
+ },
702
+ {
703
+ "epoch": 47,
704
+ "lr": 2.5e-05,
705
+ "train_loss": 0.03385866073270639,
706
+ "val_loss": 0.045882050457987045,
707
+ "train_iou": 0.915603595959243,
708
+ "train_miou": 0.9550424151158854,
709
+ "train_dice": 0.9559426573332908,
710
+ "train_pixel_acc": 0.9947929896453881,
711
+ "val_iou": 0.8931941889656895,
712
+ "val_miou": 0.9429581139373052,
713
+ "val_dice": 0.9435843340018587,
714
+ "val_pixel_acc": 0.993139591073631,
715
+ "epoch_seconds": 202.23224711418152
716
+ },
717
+ {
718
+ "epoch": 48,
719
+ "lr": 2.5e-05,
720
+ "train_loss": 0.034553379232459,
721
+ "val_loss": 0.04433987640021812,
722
+ "train_iou": 0.9134997698566252,
723
+ "train_miou": 0.9539194604785297,
724
+ "train_dice": 0.9547947527843936,
725
+ "train_pixel_acc": 0.9946584795674502,
726
+ "val_iou": 0.8967743522852247,
727
+ "val_miou": 0.9448693559560436,
728
+ "val_dice": 0.9455783195347357,
729
+ "val_pixel_acc": 0.9933696230551351,
730
+ "epoch_seconds": 202.2658336162567
731
+ },
732
+ {
733
+ "epoch": 49,
734
+ "lr": 2.5e-05,
735
+ "train_loss": 0.0338795750430136,
736
+ "val_loss": 0.04478045697102234,
737
+ "train_iou": 0.9154133952143784,
738
+ "train_miou": 0.9549403412047992,
739
+ "train_dice": 0.9558389823330257,
740
+ "train_pixel_acc": 0.9947798496498333,
741
+ "val_iou": 0.8963935909326987,
742
+ "val_miou": 0.9446735062603318,
743
+ "val_dice": 0.9453666108329628,
744
+ "val_pixel_acc": 0.9933583395821705,
745
+ "epoch_seconds": 202.53768515586853
746
+ },
747
+ {
748
+ "epoch": 50,
749
+ "lr": 1.25e-05,
750
+ "train_loss": 0.03393976760633064,
751
+ "val_loss": 0.044316925352350586,
752
+ "train_iou": 0.915237331727872,
753
+ "train_miou": 0.9548467846559638,
754
+ "train_dice": 0.9557429949448315,
755
+ "train_pixel_acc": 0.9947693425774484,
756
+ "val_iou": 0.8969326870948882,
757
+ "val_miou": 0.9449406099059459,
758
+ "val_dice": 0.9456663309107942,
759
+ "val_pixel_acc": 0.9933562257236105,
760
+ "epoch_seconds": 202.26153182983398
761
+ }
762
+ ],
763
+ "start_time_iso": "2026-05-27T11:19:06",
764
+ "best_epoch": 44,
765
+ "best_val_dice": 0.9470830922501384,
766
+ "epochs_trained": 50,
767
+ "wall_clock_seconds": 10060.271508693695
768
+ }
experiments/resolution_study/logs/unet_res192.json ADDED
@@ -0,0 +1,768 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "cfg_id": "unet_res192",
3
+ "model": "unet",
4
+ "image_size": 192,
5
+ "batch_size": 16,
6
+ "throttle": null,
7
+ "n_train": 5268,
8
+ "n_val": 1330,
9
+ "n_params": 31043521,
10
+ "baseline_dice_at_128": 0.937,
11
+ "epochs": [
12
+ {
13
+ "epoch": 1,
14
+ "lr": 0.0001,
15
+ "train_loss": 0.4580359121163686,
16
+ "val_loss": 0.3613618578584421,
17
+ "train_iou": 0.5809880870947688,
18
+ "train_miou": 0.7716010025198431,
19
+ "train_dice": 0.7349683300427586,
20
+ "train_pixel_acc": 0.9640950819495192,
21
+ "val_iou": 0.7274468585280942,
22
+ "val_miou": 0.8529054747713887,
23
+ "val_dice": 0.842221982038776,
24
+ "val_pixel_acc": 0.9795452783978156,
25
+ "epoch_seconds": 188.91960287094116
26
+ },
27
+ {
28
+ "epoch": 2,
29
+ "lr": 0.0001,
30
+ "train_loss": 0.30735757558634785,
31
+ "val_loss": 0.24346787766331718,
32
+ "train_iou": 0.730177455696278,
33
+ "train_miou": 0.8547311647556094,
34
+ "train_dice": 0.8440492081229108,
35
+ "train_pixel_acc": 0.9803844810105428,
36
+ "val_iou": 0.7955778671664611,
37
+ "val_miou": 0.8903476917166631,
38
+ "val_dice": 0.8861524545542933,
39
+ "val_pixel_acc": 0.9859323194052821,
40
+ "epoch_seconds": 189.04650616645813
41
+ },
42
+ {
43
+ "epoch": 3,
44
+ "lr": 0.0001,
45
+ "train_loss": 0.20943209752440453,
46
+ "val_loss": 0.17512681370689756,
47
+ "train_iou": 0.7739077106051898,
48
+ "train_miou": 0.8787621642046892,
49
+ "train_dice": 0.8725456301682819,
50
+ "train_pixel_acc": 0.9844866068486086,
51
+ "val_iou": 0.7777510934551785,
52
+ "val_miou": 0.8806936434267376,
53
+ "val_dice": 0.8749831135736411,
54
+ "val_pixel_acc": 0.9845225041771075,
55
+ "epoch_seconds": 189.19320344924927
56
+ },
57
+ {
58
+ "epoch": 4,
59
+ "lr": 0.0001,
60
+ "train_loss": 0.1505682402487957,
61
+ "val_loss": 0.13458153720767724,
62
+ "train_iou": 0.7967004967131434,
63
+ "train_miou": 0.8912078915506809,
64
+ "train_dice": 0.886848418164981,
65
+ "train_pixel_acc": 0.9864725486081446,
66
+ "val_iou": 0.7986664260430032,
67
+ "val_miou": 0.8919632885825479,
68
+ "val_dice": 0.8880650847528617,
69
+ "val_pixel_acc": 0.9860743982351693,
70
+ "epoch_seconds": 189.37566089630127
71
+ },
72
+ {
73
+ "epoch": 5,
74
+ "lr": 0.0001,
75
+ "train_loss": 0.1162920062966419,
76
+ "val_loss": 0.17860937615235647,
77
+ "train_iou": 0.8148669265390099,
78
+ "train_miou": 0.9010369466945647,
79
+ "train_dice": 0.8979908274519924,
80
+ "train_pixel_acc": 0.9878889267468542,
81
+ "val_iou": 0.6564095595875419,
82
+ "val_miou": 0.8167663410238737,
83
+ "val_dice": 0.7925691514977645,
84
+ "val_pixel_acc": 0.9780810873211656,
85
+ "epoch_seconds": 189.60325241088867
86
+ },
87
+ {
88
+ "epoch": 6,
89
+ "lr": 0.0001,
90
+ "train_loss": 0.09809381930213985,
91
+ "val_loss": 0.09394985295477368,
92
+ "train_iou": 0.8228618608489847,
93
+ "train_miou": 0.9053554893650478,
94
+ "train_dice": 0.902824156368868,
95
+ "train_pixel_acc": 0.988498325680998,
96
+ "val_iou": 0.8296800191806564,
97
+ "val_miou": 0.908656893683186,
98
+ "val_dice": 0.9069126956441192,
99
+ "val_pixel_acc": 0.9883363805020344,
100
+ "epoch_seconds": 189.44125485420227
101
+ },
102
+ {
103
+ "epoch": 7,
104
+ "lr": 0.0001,
105
+ "train_loss": 0.08652592897415161,
106
+ "val_loss": 0.08179670328363067,
107
+ "train_iou": 0.8330901733148744,
108
+ "train_miou": 0.9108564930880259,
109
+ "train_dice": 0.9089461996387806,
110
+ "train_pixel_acc": 0.9892341667193955,
111
+ "val_iou": 0.835719104583682,
112
+ "val_miou": 0.911868296306946,
113
+ "val_dice": 0.9105086965614085,
114
+ "val_pixel_acc": 0.9887059363904533,
115
+ "epoch_seconds": 189.3230893611908
116
+ },
117
+ {
118
+ "epoch": 8,
119
+ "lr": 0.0001,
120
+ "train_loss": 0.08277666856619445,
121
+ "val_loss": 0.08610419756067651,
122
+ "train_iou": 0.8307527331777803,
123
+ "train_miou": 0.9096123041194004,
124
+ "train_dice": 0.9075531808555904,
125
+ "train_pixel_acc": 0.9890892693717435,
126
+ "val_iou": 0.8205808674133196,
127
+ "val_miou": 0.9039940246913286,
128
+ "val_dice": 0.9014495121869545,
129
+ "val_pixel_acc": 0.988092953738511,
130
+ "epoch_seconds": 189.39748167991638
131
+ },
132
+ {
133
+ "epoch": 9,
134
+ "lr": 0.0001,
135
+ "train_loss": 0.07443642366790411,
136
+ "val_loss": 0.07157632171930302,
137
+ "train_iou": 0.8425387189888479,
138
+ "train_miou": 0.915938578045947,
139
+ "train_dice": 0.9145411277448954,
140
+ "train_pixel_acc": 0.9899138284314885,
141
+ "val_iou": 0.8490459964009515,
142
+ "val_miou": 0.9193139857570676,
143
+ "val_dice": 0.9183611419657106,
144
+ "val_pixel_acc": 0.990158644495351,
145
+ "epoch_seconds": 189.65150427818298
146
+ },
147
+ {
148
+ "epoch": 10,
149
+ "lr": 0.0001,
150
+ "train_loss": 0.0706271447579969,
151
+ "val_loss": 0.07037936621123836,
152
+ "train_iou": 0.8453651378020757,
153
+ "train_miou": 0.9174573726520552,
154
+ "train_dice": 0.91620365041571,
155
+ "train_pixel_acc": 0.9901143798725134,
156
+ "val_iou": 0.8495644647098707,
157
+ "val_miou": 0.9195089619547987,
158
+ "val_dice": 0.9186643460336339,
159
+ "val_pixel_acc": 0.9900463030949751,
160
+ "epoch_seconds": 188.98103833198547
161
+ },
162
+ {
163
+ "epoch": 11,
164
+ "lr": 0.0001,
165
+ "train_loss": 0.0670177985490723,
166
+ "val_loss": 0.06592618354729243,
167
+ "train_iou": 0.8515675944473826,
168
+ "train_miou": 0.9207881346996741,
169
+ "train_dice": 0.919834195630909,
170
+ "train_pixel_acc": 0.9905503386537159,
171
+ "val_iou": 0.8553076361922815,
172
+ "val_miou": 0.92249687787937,
173
+ "val_dice": 0.9220116594223284,
174
+ "val_pixel_acc": 0.9902787975798852,
175
+ "epoch_seconds": 189.14551377296448
176
+ },
177
+ {
178
+ "epoch": 12,
179
+ "lr": 0.0001,
180
+ "train_loss": 0.063392266252953,
181
+ "val_loss": 0.06155988922165263,
182
+ "train_iou": 0.856073078942096,
183
+ "train_miou": 0.9231966464968038,
184
+ "train_dice": 0.9224562207755647,
185
+ "train_pixel_acc": 0.9908471879481983,
186
+ "val_iou": 0.8649120646719043,
187
+ "val_miou": 0.9278471383847483,
188
+ "val_dice": 0.9275633752994881,
189
+ "val_pixel_acc": 0.9912959074117565,
190
+ "epoch_seconds": 189.28922700881958
191
+ },
192
+ {
193
+ "epoch": 13,
194
+ "lr": 0.0001,
195
+ "train_loss": 0.06054067302382354,
196
+ "val_loss": 0.07038172542871464,
197
+ "train_iou": 0.860882897094211,
198
+ "train_miou": 0.9257799064057954,
199
+ "train_dice": 0.9252413447815433,
200
+ "train_pixel_acc": 0.9911854534041351,
201
+ "val_iou": 0.8410347943518496,
202
+ "val_miou": 0.9149874621223274,
203
+ "val_dice": 0.9136544262303771,
204
+ "val_pixel_acc": 0.9895515155075169,
205
+ "epoch_seconds": 188.90346360206604
206
+ },
207
+ {
208
+ "epoch": 14,
209
+ "lr": 0.0001,
210
+ "train_loss": 0.06037632152438164,
211
+ "val_loss": 0.1123041252029084,
212
+ "train_iou": 0.8623168849035292,
213
+ "train_miou": 0.9265398148288913,
214
+ "train_dice": 0.926068911143657,
215
+ "train_pixel_acc": 0.9912679252730713,
216
+ "val_iou": 0.7487713479692306,
217
+ "val_miou": 0.8659919440528467,
218
+ "val_dice": 0.8563399084034,
219
+ "val_pixel_acc": 0.984012460350092,
220
+ "epoch_seconds": 187.7046685218811
221
+ },
222
+ {
223
+ "epoch": 15,
224
+ "lr": 0.0001,
225
+ "train_loss": 0.06324006481604143,
226
+ "val_loss": 0.0667751044744537,
227
+ "train_iou": 0.8530640714192248,
228
+ "train_miou": 0.9215913346632082,
229
+ "train_dice": 0.9207065039752026,
230
+ "train_pixel_acc": 0.9906547209748451,
231
+ "val_iou": 0.8483868612565868,
232
+ "val_miou": 0.9187567371405064,
233
+ "val_dice": 0.9179754293209258,
234
+ "val_pixel_acc": 0.9897502545426046,
235
+ "epoch_seconds": 187.08024263381958
236
+ },
237
+ {
238
+ "epoch": 16,
239
+ "lr": 0.0001,
240
+ "train_loss": 0.05760383113767162,
241
+ "val_loss": 0.06076982253718944,
242
+ "train_iou": 0.8649385170385515,
243
+ "train_miou": 0.9279513297717668,
244
+ "train_dice": 0.9275785867858417,
245
+ "train_pixel_acc": 0.9914584097495751,
246
+ "val_iou": 0.8593080757522806,
247
+ "val_miou": 0.9247422004412106,
248
+ "val_dice": 0.9243310314828839,
249
+ "val_pixel_acc": 0.9907323851621221,
250
+ "epoch_seconds": 186.65644669532776
251
+ },
252
+ {
253
+ "epoch": 17,
254
+ "lr": 0.0001,
255
+ "train_loss": 0.05838372658260844,
256
+ "val_loss": 0.06618139067930835,
257
+ "train_iou": 0.8624301549225992,
258
+ "train_miou": 0.9266122992811152,
259
+ "train_dice": 0.9261342259124246,
260
+ "train_pixel_acc": 0.9912967100974565,
261
+ "val_iou": 0.8479751244221743,
262
+ "val_miou": 0.9188062488206119,
263
+ "val_dice": 0.9177343495760741,
264
+ "val_pixel_acc": 0.9902036177683773,
265
+ "epoch_seconds": 186.56280612945557
266
+ },
267
+ {
268
+ "epoch": 18,
269
+ "lr": 0.0001,
270
+ "train_loss": 0.05582433872940865,
271
+ "val_loss": 0.05603827893113097,
272
+ "train_iou": 0.8677574892297334,
273
+ "train_miou": 0.9294656434749867,
274
+ "train_dice": 0.9291971727952736,
275
+ "train_pixel_acc": 0.991656994141778,
276
+ "val_iou": 0.868970635705148,
277
+ "val_miou": 0.9299845503635129,
278
+ "val_dice": 0.9298922295558616,
279
+ "val_pixel_acc": 0.9915055583294153,
280
+ "epoch_seconds": 186.55408787727356
281
+ },
282
+ {
283
+ "epoch": 19,
284
+ "lr": 0.0001,
285
+ "train_loss": 0.056254686144265265,
286
+ "val_loss": 0.0643848076551443,
287
+ "train_iou": 0.8668266806809943,
288
+ "train_miou": 0.9289627193453602,
289
+ "train_dice": 0.9286632654776362,
290
+ "train_pixel_acc": 0.9915862370269521,
291
+ "val_iou": 0.8481368657015212,
292
+ "val_miou": 0.9188324449256032,
293
+ "val_dice": 0.9178290649806209,
294
+ "val_pixel_acc": 0.9901066345877696,
295
+ "epoch_seconds": 186.3390440940857
296
+ },
297
+ {
298
+ "epoch": 20,
299
+ "lr": 0.0001,
300
+ "train_loss": 0.05630754279254964,
301
+ "val_loss": 0.06268132531217166,
302
+ "train_iou": 0.8668781338251209,
303
+ "train_miou": 0.9289860917102337,
304
+ "train_dice": 0.928692792655876,
305
+ "train_pixel_acc": 0.991582235987856,
306
+ "val_iou": 0.8561799879450537,
307
+ "val_miou": 0.9232027941673586,
308
+ "val_dice": 0.9225182832543266,
309
+ "val_pixel_acc": 0.9907630812056163,
310
+ "epoch_seconds": 187.4798219203949
311
+ },
312
+ {
313
+ "epoch": 21,
314
+ "lr": 0.0001,
315
+ "train_loss": 0.053985489532351494,
316
+ "val_loss": 0.05446741550362536,
317
+ "train_iou": 0.8703975134987623,
318
+ "train_miou": 0.9308782978228325,
319
+ "train_dice": 0.9307085870431876,
320
+ "train_pixel_acc": 0.9918330244139797,
321
+ "val_iou": 0.8726764134476894,
322
+ "val_miou": 0.931958428426898,
323
+ "val_dice": 0.9320098306156901,
324
+ "val_pixel_acc": 0.9917365639032457,
325
+ "epoch_seconds": 187.83955121040344
326
+ },
327
+ {
328
+ "epoch": 22,
329
+ "lr": 0.0001,
330
+ "train_loss": 0.05245448729644219,
331
+ "val_loss": 0.06128354940474743,
332
+ "train_iou": 0.8746121303718036,
333
+ "train_miou": 0.9331302603126301,
334
+ "train_dice": 0.933112632956596,
335
+ "train_pixel_acc": 0.992108128035228,
336
+ "val_iou": 0.8571917347559319,
337
+ "val_miou": 0.9235917352222345,
338
+ "val_dice": 0.9231052655622358,
339
+ "val_pixel_acc": 0.9905588964272641,
340
+ "epoch_seconds": 188.18628859519958
341
+ },
342
+ {
343
+ "epoch": 23,
344
+ "lr": 0.0001,
345
+ "train_loss": 0.05292356726572369,
346
+ "val_loss": 0.059326213074936754,
347
+ "train_iou": 0.8725812355181187,
348
+ "train_miou": 0.9320405512856578,
349
+ "train_dice": 0.9319555477406959,
350
+ "train_pixel_acc": 0.9919674428497133,
351
+ "val_iou": 0.8604575116358413,
352
+ "val_miou": 0.925410849718703,
353
+ "val_dice": 0.9249956059241238,
354
+ "val_pixel_acc": 0.9909046093423644,
355
+ "epoch_seconds": 188.44254279136658
356
+ },
357
+ {
358
+ "epoch": 24,
359
+ "lr": 0.0001,
360
+ "train_loss": 0.05405387266567259,
361
+ "val_loss": 0.10780146797852856,
362
+ "train_iou": 0.8703723642991738,
363
+ "train_miou": 0.9308636722429937,
364
+ "train_dice": 0.9306942092520718,
365
+ "train_pixel_acc": 0.991829260244637,
366
+ "val_iou": 0.7597850947492274,
367
+ "val_miou": 0.8716360675538198,
368
+ "val_dice": 0.8634975907185966,
369
+ "val_pixel_acc": 0.9843066936547078,
370
+ "epoch_seconds": 188.25899934768677
371
+ },
372
+ {
373
+ "epoch": 25,
374
+ "lr": 0.0001,
375
+ "train_loss": 0.055368484268811614,
376
+ "val_loss": 0.056573450609686826,
377
+ "train_iou": 0.8673182187326768,
378
+ "train_miou": 0.9292210812745338,
379
+ "train_dice": 0.9289452756705964,
380
+ "train_pixel_acc": 0.9916107015530082,
381
+ "val_iou": 0.8692354283767825,
382
+ "val_miou": 0.9300843363934275,
383
+ "val_dice": 0.9300438191797106,
384
+ "val_pixel_acc": 0.9914486329756664,
385
+ "epoch_seconds": 188.7351987361908
386
+ },
387
+ {
388
+ "epoch": 26,
389
+ "lr": 0.0001,
390
+ "train_loss": 0.04883024627625039,
391
+ "val_loss": 0.05544299011429151,
392
+ "train_iou": 0.8818471550941825,
393
+ "train_miou": 0.937001478170459,
394
+ "train_dice": 0.9372144307331356,
395
+ "train_pixel_acc": 0.9925896481985701,
396
+ "val_iou": 0.871418389708874,
397
+ "val_miou": 0.9313317789843286,
398
+ "val_dice": 0.931291895495839,
399
+ "val_pixel_acc": 0.9917355237050941,
400
+ "epoch_seconds": 188.90261697769165
401
+ },
402
+ {
403
+ "epoch": 27,
404
+ "lr": 5e-05,
405
+ "train_loss": 0.04956427590187752,
406
+ "val_loss": 0.05669465122212257,
407
+ "train_iou": 0.8801757974482207,
408
+ "train_miou": 0.9361050798208332,
409
+ "train_dice": 0.9362696814231919,
410
+ "train_pixel_acc": 0.9924746839786732,
411
+ "val_iou": 0.8682643944056266,
412
+ "val_miou": 0.9295687455665471,
413
+ "val_dice": 0.929487707420403,
414
+ "val_pixel_acc": 0.9913909733643986,
415
+ "epoch_seconds": 189.06074500083923
416
+ },
417
+ {
418
+ "epoch": 28,
419
+ "lr": 5e-05,
420
+ "train_loss": 0.04622631684848757,
421
+ "val_loss": 0.05255526572554594,
422
+ "train_iou": 0.8870640493975447,
423
+ "train_miou": 0.9397906720548489,
424
+ "train_dice": 0.9401525609909687,
425
+ "train_pixel_acc": 0.992932666497603,
426
+ "val_iou": 0.8764778583587629,
427
+ "val_miou": 0.9339403624353065,
428
+ "val_dice": 0.9341734083932789,
429
+ "val_pixel_acc": 0.9918971623394404,
430
+ "epoch_seconds": 188.97186708450317
431
+ },
432
+ {
433
+ "epoch": 29,
434
+ "lr": 5e-05,
435
+ "train_loss": 0.04486466130862633,
436
+ "val_loss": 0.051558227078723054,
437
+ "train_iou": 0.8900693526095972,
438
+ "train_miou": 0.9413952665679748,
439
+ "train_dice": 0.9418377705354447,
440
+ "train_pixel_acc": 0.9931262766249838,
441
+ "val_iou": 0.8797696147994979,
442
+ "val_miou": 0.9357602665123121,
443
+ "val_dice": 0.9360398294270087,
444
+ "val_pixel_acc": 0.9922205007962596,
445
+ "epoch_seconds": 189.2298710346222
446
+ },
447
+ {
448
+ "epoch": 30,
449
+ "lr": 5e-05,
450
+ "train_loss": 0.04376108867088051,
451
+ "val_loss": 0.05390498106412235,
452
+ "train_iou": 0.8930927980885094,
453
+ "train_miou": 0.9430166642875177,
454
+ "train_dice": 0.9435277541494865,
455
+ "train_pixel_acc": 0.993333671542146,
456
+ "val_iou": 0.8750998123464935,
457
+ "val_miou": 0.9332399628591843,
458
+ "val_dice": 0.9333901124456907,
459
+ "val_pixel_acc": 0.9918710554054387,
460
+ "epoch_seconds": 188.97401928901672
461
+ },
462
+ {
463
+ "epoch": 31,
464
+ "lr": 5e-05,
465
+ "train_loss": 0.04451350131721207,
466
+ "val_loss": 0.05089509405107016,
467
+ "train_iou": 0.8917511823680259,
468
+ "train_miou": 0.9422950559863942,
469
+ "train_dice": 0.9427785119729793,
470
+ "train_pixel_acc": 0.9932378474281954,
471
+ "val_iou": 0.8804941228150244,
472
+ "val_miou": 0.9361708156413102,
473
+ "val_dice": 0.9364497470451649,
474
+ "val_pixel_acc": 0.9923094479362449,
475
+ "epoch_seconds": 189.0843346118927
476
+ },
477
+ {
478
+ "epoch": 32,
479
+ "lr": 5e-05,
480
+ "train_loss": 0.044016303630037744,
481
+ "val_loss": 0.051119142855029734,
482
+ "train_iou": 0.8919113664149109,
483
+ "train_miou": 0.9423822932453729,
484
+ "train_dice": 0.9428680246316653,
485
+ "train_pixel_acc": 0.9932512151212373,
486
+ "val_iou": 0.880459614403674,
487
+ "val_miou": 0.9361668176834801,
488
+ "val_dice": 0.9364302297796306,
489
+ "val_pixel_acc": 0.992332903384762,
490
+ "epoch_seconds": 189.00998854637146
491
+ },
492
+ {
493
+ "epoch": 33,
494
+ "lr": 5e-05,
495
+ "train_loss": 0.04632398812946948,
496
+ "val_loss": 0.053821049364549775,
497
+ "train_iou": 0.8861893645035336,
498
+ "train_miou": 0.9393213239818791,
499
+ "train_dice": 0.9396610766457043,
500
+ "train_pixel_acc": 0.9928721359769147,
501
+ "val_iou": 0.874137559797387,
502
+ "val_miou": 0.9327063155549311,
503
+ "val_dice": 0.9328424749055134,
504
+ "val_pixel_acc": 0.9917735623237762,
505
+ "epoch_seconds": 189.3470139503479
506
+ },
507
+ {
508
+ "epoch": 34,
509
+ "lr": 5e-05,
510
+ "train_loss": 0.043632337428403625,
511
+ "val_loss": 0.0511834401459921,
512
+ "train_iou": 0.8923312272990397,
513
+ "train_miou": 0.9426060112979994,
514
+ "train_dice": 0.9431025757289658,
515
+ "train_pixel_acc": 0.9932774407224169,
516
+ "val_iou": 0.8793129518975324,
517
+ "val_miou": 0.935513678262472,
518
+ "val_dice": 0.9357812928492776,
519
+ "val_pixel_acc": 0.9921861130691292,
520
+ "epoch_seconds": 189.21195578575134
521
+ },
522
+ {
523
+ "epoch": 35,
524
+ "lr": 5e-05,
525
+ "train_loss": 0.04354375726120038,
526
+ "val_loss": 0.05260579658317424,
527
+ "train_iou": 0.8927667662012078,
528
+ "train_miou": 0.9428428101855112,
529
+ "train_dice": 0.9433457752356832,
530
+ "train_pixel_acc": 0.9933130741722819,
531
+ "val_iou": 0.876888043596083,
532
+ "val_miou": 0.9341818705033088,
533
+ "val_dice": 0.9344063398858695,
534
+ "val_pixel_acc": 0.9919636330409337,
535
+ "epoch_seconds": 188.7262065410614
536
+ },
537
+ {
538
+ "epoch": 36,
539
+ "lr": 5e-05,
540
+ "train_loss": 0.04252673401073976,
541
+ "val_loss": 0.05314814274953235,
542
+ "train_iou": 0.8957042974711878,
543
+ "train_miou": 0.9444110671040964,
544
+ "train_dice": 0.9449831375769209,
545
+ "train_pixel_acc": 0.9935019057098541,
546
+ "val_iou": 0.8767093035499196,
547
+ "val_miou": 0.9340594159249191,
548
+ "val_dice": 0.9343048514669439,
549
+ "val_pixel_acc": 0.9919040765977424,
550
+ "epoch_seconds": 188.94117784500122
551
+ },
552
+ {
553
+ "epoch": 37,
554
+ "lr": 5e-05,
555
+ "train_loss": 0.0423049783616355,
556
+ "val_loss": 0.050683194460968174,
557
+ "train_iou": 0.8962623419259671,
558
+ "train_miou": 0.9447073438354983,
559
+ "train_dice": 0.9452936148230049,
560
+ "train_pixel_acc": 0.9935348357549244,
561
+ "val_iou": 0.8815474008063396,
562
+ "val_miou": 0.9367102259674921,
563
+ "val_dice": 0.9370451155560061,
564
+ "val_pixel_acc": 0.9923365542763138,
565
+ "epoch_seconds": 189.37437224388123
566
+ },
567
+ {
568
+ "epoch": 38,
569
+ "lr": 5e-05,
570
+ "train_loss": 0.04254359659371954,
571
+ "val_loss": 0.05183536233380437,
572
+ "train_iou": 0.8956982067715906,
573
+ "train_miou": 0.9444068624657491,
574
+ "train_dice": 0.9449797479072172,
575
+ "train_pixel_acc": 0.993499815076813,
576
+ "val_iou": 0.8792618656129126,
577
+ "val_miou": 0.9354581912203935,
578
+ "val_dice": 0.9357523628843982,
579
+ "val_pixel_acc": 0.9921326550425523,
580
+ "epoch_seconds": 189.24428486824036
581
+ },
582
+ {
583
+ "epoch": 39,
584
+ "lr": 5e-05,
585
+ "train_loss": 0.041552137233542674,
586
+ "val_loss": 0.051707126754557804,
587
+ "train_iou": 0.8975470788839772,
588
+ "train_miou": 0.9453940345030725,
589
+ "train_dice": 0.9460077052864062,
590
+ "train_pixel_acc": 0.993618836978573,
591
+ "val_iou": 0.8797414700801373,
592
+ "val_miou": 0.9357653232334014,
593
+ "val_dice": 0.9360238991190977,
594
+ "val_pixel_acc": 0.9922544194144195,
595
+ "epoch_seconds": 189.61007928848267
596
+ },
597
+ {
598
+ "epoch": 40,
599
+ "lr": 5e-05,
600
+ "train_loss": 0.041859386313819524,
601
+ "val_loss": 0.05585922511471879,
602
+ "train_iou": 0.8969631562780661,
603
+ "train_miou": 0.9450822896326851,
604
+ "train_dice": 0.9456832657076497,
605
+ "train_pixel_acc": 0.993581303421338,
606
+ "val_iou": 0.8689363969347078,
607
+ "val_miou": 0.929925359323609,
608
+ "val_dice": 0.9298726252641594,
609
+ "val_pixel_acc": 0.9914305212902027,
610
+ "epoch_seconds": 188.94576597213745
611
+ },
612
+ {
613
+ "epoch": 41,
614
+ "lr": 5e-05,
615
+ "train_loss": 0.04262539843718211,
616
+ "val_loss": 0.05320495666403856,
617
+ "train_iou": 0.8950661671539726,
618
+ "train_miou": 0.944067934365181,
619
+ "train_dice": 0.9446278791396409,
620
+ "train_pixel_acc": 0.993456514256016,
621
+ "val_iou": 0.8752692963700419,
622
+ "val_miou": 0.9333176020703853,
623
+ "val_dice": 0.9334865110459606,
624
+ "val_pixel_acc": 0.9918591441168004,
625
+ "epoch_seconds": 188.90319156646729
626
+ },
627
+ {
628
+ "epoch": 42,
629
+ "lr": 5e-05,
630
+ "train_loss": 0.041834539208899846,
631
+ "val_loss": 0.05152976517343805,
632
+ "train_iou": 0.8968863099402199,
633
+ "train_miou": 0.9450440422754005,
634
+ "train_dice": 0.9456405534061608,
635
+ "train_pixel_acc": 0.9935813188693654,
636
+ "val_iou": 0.8782643908204766,
637
+ "val_miou": 0.9349587093466316,
638
+ "val_dice": 0.9351871814349065,
639
+ "val_pixel_acc": 0.9921271277151191,
640
+ "epoch_seconds": 189.65727949142456
641
+ },
642
+ {
643
+ "epoch": 43,
644
+ "lr": 5e-05,
645
+ "train_loss": 0.04126930144248587,
646
+ "val_loss": 0.050449585830349294,
647
+ "train_iou": 0.8987650056765238,
648
+ "train_miou": 0.9460478224535167,
649
+ "train_dice": 0.9466837686491876,
650
+ "train_pixel_acc": 0.99370346127266,
651
+ "val_iou": 0.8818194341095185,
652
+ "val_miou": 0.9368451648220224,
653
+ "val_dice": 0.9371987748939341,
654
+ "val_pixel_acc": 0.9923357792267107,
655
+ "epoch_seconds": 189.67851400375366
656
+ },
657
+ {
658
+ "epoch": 44,
659
+ "lr": 5e-05,
660
+ "train_loss": 0.04233984309954174,
661
+ "val_loss": 0.05777173970515529,
662
+ "train_iou": 0.8961448912657011,
663
+ "train_miou": 0.9446442473195459,
664
+ "train_dice": 0.9452282843928798,
665
+ "train_pixel_acc": 0.9935265865082938,
666
+ "val_iou": 0.8662722174923982,
667
+ "val_miou": 0.9285813311155209,
668
+ "val_dice": 0.9283449749429995,
669
+ "val_pixel_acc": 0.9913980507910382,
670
+ "epoch_seconds": 189.7228307723999
671
+ },
672
+ {
673
+ "epoch": 45,
674
+ "lr": 5e-05,
675
+ "train_loss": 0.04241095329775955,
676
+ "val_loss": 0.05125176946499518,
677
+ "train_iou": 0.8956887442326946,
678
+ "train_miou": 0.9444054700206559,
679
+ "train_dice": 0.9449744816575747,
680
+ "train_pixel_acc": 0.9935057316713064,
681
+ "val_iou": 0.8801912947090855,
682
+ "val_miou": 0.9359885293181087,
683
+ "val_dice": 0.9362784490982063,
684
+ "val_pixel_acc": 0.9922532568400148,
685
+ "epoch_seconds": 189.56933665275574
686
+ },
687
+ {
688
+ "epoch": 46,
689
+ "lr": 5e-05,
690
+ "train_loss": 0.04193531225124995,
691
+ "val_loss": 0.05170677757511536,
692
+ "train_iou": 0.8971193279558862,
693
+ "train_miou": 0.9451658211286251,
694
+ "train_dice": 0.9457700575140068,
695
+ "train_pixel_acc": 0.9935916175542975,
696
+ "val_iou": 0.8787601536148486,
697
+ "val_miou": 0.9352296247389934,
698
+ "val_dice": 0.9354681617278936,
699
+ "val_pixel_acc": 0.9921701837601797,
700
+ "epoch_seconds": 189.58310103416443
701
+ },
702
+ {
703
+ "epoch": 47,
704
+ "lr": 5e-05,
705
+ "train_loss": 0.0402812083618659,
706
+ "val_loss": 0.05209283863327333,
707
+ "train_iou": 0.9001387862162035,
708
+ "train_miou": 0.9467816507583817,
709
+ "train_dice": 0.947445305307065,
710
+ "train_pixel_acc": 0.9937924419104731,
711
+ "val_iou": 0.8783382015684665,
712
+ "val_miou": 0.934980328184648,
713
+ "val_dice": 0.9352290240756738,
714
+ "val_pixel_acc": 0.9921002457315143,
715
+ "epoch_seconds": 189.59874486923218
716
+ },
717
+ {
718
+ "epoch": 48,
719
+ "lr": 5e-05,
720
+ "train_loss": 0.04003861144072179,
721
+ "val_loss": 0.05218838716280602,
722
+ "train_iou": 0.9014866678731552,
723
+ "train_miou": 0.9475023343866404,
724
+ "train_dice": 0.9481914158057003,
725
+ "train_pixel_acc": 0.9938809591074644,
726
+ "val_iou": 0.8802142812778575,
727
+ "val_miou": 0.9359543152807316,
728
+ "val_dice": 0.9362914536311616,
729
+ "val_pixel_acc": 0.9921721009881455,
730
+ "epoch_seconds": 189.53851962089539
731
+ },
732
+ {
733
+ "epoch": 49,
734
+ "lr": 2.5e-05,
735
+ "train_loss": 0.04282796937746532,
736
+ "val_loss": 0.05290945475211456,
737
+ "train_iou": 0.8948058026891738,
738
+ "train_miou": 0.9439287635147274,
739
+ "train_dice": 0.9444828609024043,
740
+ "train_pixel_acc": 0.9934394750817959,
741
+ "val_iou": 0.8752855109248825,
742
+ "val_miou": 0.9333325871245274,
743
+ "val_dice": 0.9334957325972146,
744
+ "val_pixel_acc": 0.9918714429302403,
745
+ "epoch_seconds": 189.57434248924255
746
+ },
747
+ {
748
+ "epoch": 50,
749
+ "lr": 2.5e-05,
750
+ "train_loss": 0.03972402480854229,
751
+ "val_loss": 0.04950233484574017,
752
+ "train_iou": 0.9019986612679468,
753
+ "train_miou": 0.9477760029839851,
754
+ "train_dice": 0.9484745490479359,
755
+ "train_pixel_acc": 0.9939144298334937,
756
+ "val_iou": 0.8836978344253904,
757
+ "val_miou": 0.9378575204673147,
758
+ "val_dice": 0.9382585872059005,
759
+ "val_pixel_acc": 0.9924737176600336,
760
+ "epoch_seconds": 189.58239936828613
761
+ }
762
+ ],
763
+ "start_time_iso": "2026-05-12T16:53:36",
764
+ "best_epoch": 50,
765
+ "best_val_dice": 0.9382585872059005,
766
+ "epochs_trained": 50,
767
+ "wall_clock_seconds": 9444.264706611633
768
+ }
experiments/resolution_study/logs/unet_res256.json ADDED
@@ -0,0 +1,768 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "cfg_id": "unet_res256",
3
+ "model": "unet",
4
+ "image_size": 256,
5
+ "batch_size": 16,
6
+ "throttle": null,
7
+ "n_train": 5268,
8
+ "n_val": 1330,
9
+ "n_params": 31043521,
10
+ "baseline_dice_at_128": 0.937,
11
+ "epochs": [
12
+ {
13
+ "epoch": 1,
14
+ "lr": 0.0001,
15
+ "train_loss": 0.4614493124412768,
16
+ "val_loss": 0.3646372929215431,
17
+ "train_iou": 0.5631038831815698,
18
+ "train_miou": 0.7615465587386311,
19
+ "train_dice": 0.720494509981535,
20
+ "train_pixel_acc": 0.9619513579001456,
21
+ "val_iou": 0.6997604138758317,
22
+ "val_miou": 0.8375919294655934,
23
+ "val_dice": 0.8233635848480814,
24
+ "val_pixel_acc": 0.9767549213610186,
25
+ "epoch_seconds": 333.7544801235199
26
+ },
27
+ {
28
+ "epoch": 2,
29
+ "lr": 0.0001,
30
+ "train_loss": 0.30752432987545475,
31
+ "val_loss": 0.24549522605680285,
32
+ "train_iou": 0.7217767230664933,
33
+ "train_miou": 0.8501227212974378,
34
+ "train_dice": 0.8384092006784774,
35
+ "train_pixel_acc": 0.9796077725374975,
36
+ "val_iou": 0.7632763313350979,
37
+ "val_miou": 0.8725517568599771,
38
+ "val_dice": 0.8657478329073569,
39
+ "val_pixel_acc": 0.9828330821560726,
40
+ "epoch_seconds": 336.48568630218506
41
+ },
42
+ {
43
+ "epoch": 3,
44
+ "lr": 0.0001,
45
+ "train_loss": 0.2099658602792205,
46
+ "val_loss": 0.16993329709484464,
47
+ "train_iou": 0.7688138016126257,
48
+ "train_miou": 0.8760023500974627,
49
+ "train_dice": 0.8692987367146265,
50
+ "train_pixel_acc": 0.9840807672151578,
51
+ "val_iou": 0.7884047924688202,
52
+ "val_miou": 0.886570557863924,
53
+ "val_dice": 0.8816849471538928,
54
+ "val_pixel_acc": 0.9855576938256273,
55
+ "epoch_seconds": 336.4789528846741
56
+ },
57
+ {
58
+ "epoch": 4,
59
+ "lr": 0.0001,
60
+ "train_loss": 0.1486924609677358,
61
+ "val_loss": 0.13363913349097684,
62
+ "train_iou": 0.7993849588482913,
63
+ "train_miou": 0.8926329531723334,
64
+ "train_dice": 0.8885091040884805,
65
+ "train_pixel_acc": 0.9866329734761692,
66
+ "val_iou": 0.8086741966576477,
67
+ "val_miou": 0.89749550393987,
68
+ "val_dice": 0.8942176519707561,
69
+ "val_pixel_acc": 0.9870649065290167,
70
+ "epoch_seconds": 336.3718407154083
71
+ },
72
+ {
73
+ "epoch": 5,
74
+ "lr": 0.0001,
75
+ "train_loss": 0.11575850789068323,
76
+ "val_loss": 0.19458252945471377,
77
+ "train_iou": 0.8146229425563143,
78
+ "train_miou": 0.9008997447668543,
79
+ "train_dice": 0.8978426575040767,
80
+ "train_pixel_acc": 0.9878606195239829,
81
+ "val_iou": 0.6331028600930844,
82
+ "val_miou": 0.8041691363128989,
83
+ "val_dice": 0.7753373967601752,
84
+ "val_pixel_acc": 0.9762503028812254,
85
+ "epoch_seconds": 337.7454812526703
86
+ },
87
+ {
88
+ "epoch": 6,
89
+ "lr": 0.0001,
90
+ "train_loss": 0.09833390797403725,
91
+ "val_loss": 0.0897191668461476,
92
+ "train_iou": 0.820934578325629,
93
+ "train_miou": 0.9043050199005065,
94
+ "train_dice": 0.9016629022229763,
95
+ "train_pixel_acc": 0.9883345862455951,
96
+ "val_iou": 0.8287262358114551,
97
+ "val_miou": 0.9081414021569407,
98
+ "val_dice": 0.9063425892653931,
99
+ "val_pixel_acc": 0.9882632262724671,
100
+ "epoch_seconds": 338.0997562408447
101
+ },
102
+ {
103
+ "epoch": 7,
104
+ "lr": 0.0001,
105
+ "train_loss": 0.08396331605811914,
106
+ "val_loss": 0.07329047954685632,
107
+ "train_iou": 0.8384309330178158,
108
+ "train_miou": 0.9137191768147961,
109
+ "train_dice": 0.9121157808648456,
110
+ "train_pixel_acc": 0.9896006399515275,
111
+ "val_iou": 0.8569175652720953,
112
+ "val_miou": 0.9235184777262853,
113
+ "val_dice": 0.92294626460333,
114
+ "val_pixel_acc": 0.9906714073697416,
115
+ "epoch_seconds": 337.8614294528961
116
+ },
117
+ {
118
+ "epoch": 8,
119
+ "lr": 0.0001,
120
+ "train_loss": 0.07950066470287064,
121
+ "val_loss": 0.07394498897095521,
122
+ "train_iou": 0.8378896735315402,
123
+ "train_miou": 0.9134466298745323,
124
+ "train_dice": 0.9117953983837552,
125
+ "train_pixel_acc": 0.9895949714909741,
126
+ "val_iou": 0.848943316341971,
127
+ "val_miou": 0.919282785462801,
128
+ "val_dice": 0.9183010737414675,
129
+ "val_pixel_acc": 0.9901941629280709,
130
+ "epoch_seconds": 338.03867387771606
131
+ },
132
+ {
133
+ "epoch": 9,
134
+ "lr": 0.0001,
135
+ "train_loss": 0.0746212132726655,
136
+ "val_loss": 0.0730882856019196,
137
+ "train_iou": 0.8415519959832863,
138
+ "train_miou": 0.9154037290610676,
139
+ "train_dice": 0.9139595274190936,
140
+ "train_pixel_acc": 0.9898355146565937,
141
+ "val_iou": 0.8453807883835677,
142
+ "val_miou": 0.9174229368510998,
143
+ "val_dice": 0.9162128420379467,
144
+ "val_pixel_acc": 0.990038844517298,
145
+ "epoch_seconds": 337.5233850479126
146
+ },
147
+ {
148
+ "epoch": 10,
149
+ "lr": 0.0001,
150
+ "train_loss": 0.0703774124496814,
151
+ "val_loss": 0.07766747084401902,
152
+ "train_iou": 0.8461641265058032,
153
+ "train_miou": 0.9178848342468977,
154
+ "train_dice": 0.9166726992007159,
155
+ "train_pixel_acc": 0.9901676945552373,
156
+ "val_iou": 0.8322079330597991,
157
+ "val_miou": 0.9103752323308301,
158
+ "val_dice": 0.9084208380977877,
159
+ "val_pixel_acc": 0.9891586074255451,
160
+ "epoch_seconds": 336.81258726119995
161
+ },
162
+ {
163
+ "epoch": 11,
164
+ "lr": 0.0001,
165
+ "train_loss": 0.06767331168168422,
166
+ "val_loss": 0.10111256937185924,
167
+ "train_iou": 0.8492884002022871,
168
+ "train_miou": 0.9195699645318902,
169
+ "train_dice": 0.9185029226478537,
170
+ "train_pixel_acc": 0.9904005098451512,
171
+ "val_iou": 0.7632607671763508,
172
+ "val_miou": 0.8736541076252172,
173
+ "val_dice": 0.8657378209561376,
174
+ "val_pixel_acc": 0.9848277844880745,
175
+ "epoch_seconds": 338.0607566833496
176
+ },
177
+ {
178
+ "epoch": 12,
179
+ "lr": 0.0001,
180
+ "train_loss": 0.063549281030216,
181
+ "val_loss": 0.06413589486674894,
182
+ "train_iou": 0.855766526064484,
183
+ "train_miou": 0.9230279903715215,
184
+ "train_dice": 0.9222782220124472,
185
+ "train_pixel_acc": 0.9908184465713903,
186
+ "val_iou": 0.8583499532143296,
187
+ "val_miou": 0.9242372960952364,
188
+ "val_dice": 0.923776441277563,
189
+ "val_pixel_acc": 0.99068222619537,
190
+ "epoch_seconds": 337.69954466819763
191
+ },
192
+ {
193
+ "epoch": 13,
194
+ "lr": 0.0001,
195
+ "train_loss": 0.06312876162542538,
196
+ "val_loss": 0.06831667119903224,
197
+ "train_iou": 0.8557345566664741,
198
+ "train_miou": 0.9230262806852381,
199
+ "train_dice": 0.922259655716777,
200
+ "train_pixel_acc": 0.9908438460249379,
201
+ "val_iou": 0.8430700109371904,
202
+ "val_miou": 0.9159559367012269,
203
+ "val_dice": 0.9148540271766389,
204
+ "val_pixel_acc": 0.9894729040619115,
205
+ "epoch_seconds": 338.00721311569214
206
+ },
207
+ {
208
+ "epoch": 14,
209
+ "lr": 0.0001,
210
+ "train_loss": 0.06133941238689603,
211
+ "val_loss": 0.07744679677610596,
212
+ "train_iou": 0.8599885716636647,
213
+ "train_miou": 0.925302922424573,
214
+ "train_dice": 0.9247245760165601,
215
+ "train_pixel_acc": 0.9911285464113735,
216
+ "val_iou": 0.8230936783281985,
217
+ "val_miou": 0.9054264466609787,
218
+ "val_dice": 0.9029636689684387,
219
+ "val_pixel_acc": 0.9884187970842622,
220
+ "epoch_seconds": 338.0656404495239
221
+ },
222
+ {
223
+ "epoch": 15,
224
+ "lr": 0.0001,
225
+ "train_loss": 0.06275096735493703,
226
+ "val_loss": 0.06042013512480827,
227
+ "train_iou": 0.8543673986664742,
228
+ "train_miou": 0.9222923151810591,
229
+ "train_dice": 0.9214650767489473,
230
+ "train_pixel_acc": 0.9907482063218145,
231
+ "val_iou": 0.8623482010180239,
232
+ "val_miou": 0.9264377149831021,
233
+ "val_dice": 0.9260869697155821,
234
+ "val_pixel_acc": 0.9910578906984245,
235
+ "epoch_seconds": 336.72624230384827
236
+ },
237
+ {
238
+ "epoch": 16,
239
+ "lr": 0.0001,
240
+ "train_loss": 0.06241128948714697,
241
+ "val_loss": 0.0661771520528765,
242
+ "train_iou": 0.8540096462028718,
243
+ "train_miou": 0.9220850635395856,
244
+ "train_dice": 0.921256961043258,
245
+ "train_pixel_acc": 0.9906960084027379,
246
+ "val_iou": 0.8482468613052646,
247
+ "val_miou": 0.9187434870994206,
248
+ "val_dice": 0.9178934687395791,
249
+ "val_pixel_acc": 0.9898505418820477,
250
+ "epoch_seconds": 334.97259640693665
251
+ },
252
+ {
253
+ "epoch": 17,
254
+ "lr": 0.0001,
255
+ "train_loss": 0.05884102593655839,
256
+ "val_loss": 0.06377463563833208,
257
+ "train_iou": 0.8609820252269614,
258
+ "train_miou": 0.9258343339946251,
259
+ "train_dice": 0.9252985934906685,
260
+ "train_pixel_acc": 0.9911945461774285,
261
+ "val_iou": 0.8532734965458835,
262
+ "val_miou": 0.9215979616236386,
263
+ "val_dice": 0.9208284671811342,
264
+ "val_pixel_acc": 0.9904803283232484,
265
+ "epoch_seconds": 337.7106237411499
266
+ },
267
+ {
268
+ "epoch": 18,
269
+ "lr": 0.0001,
270
+ "train_loss": 0.05788590694128564,
271
+ "val_loss": 0.0602996251324103,
272
+ "train_iou": 0.8634235290191429,
273
+ "train_miou": 0.9271413330006437,
274
+ "train_dice": 0.9267066939673413,
275
+ "train_pixel_acc": 0.9913585086437271,
276
+ "val_iou": 0.8602977744401035,
277
+ "val_miou": 0.9253859501825692,
278
+ "val_dice": 0.9249032990957896,
279
+ "val_pixel_acc": 0.991001960926485,
280
+ "epoch_seconds": 338.0129973888397
281
+ },
282
+ {
283
+ "epoch": 19,
284
+ "lr": 0.0001,
285
+ "train_loss": 0.05585921774759437,
286
+ "val_loss": 0.06470159248315863,
287
+ "train_iou": 0.8678712161778339,
288
+ "train_miou": 0.929522330864416,
289
+ "train_dice": 0.9292623695478659,
290
+ "train_pixel_acc": 0.9916571325303569,
291
+ "val_iou": 0.8502223037752299,
292
+ "val_miou": 0.9198251972915545,
293
+ "val_dice": 0.9190488105568931,
294
+ "val_pixel_acc": 0.9900266145405004,
295
+ "epoch_seconds": 337.87419295310974
296
+ },
297
+ {
298
+ "epoch": 20,
299
+ "lr": 0.0001,
300
+ "train_loss": 0.054463416433921365,
301
+ "val_loss": 0.059390213806182146,
302
+ "train_iou": 0.8712867210580867,
303
+ "train_miou": 0.9313510303196082,
304
+ "train_dice": 0.9312166983854112,
305
+ "train_pixel_acc": 0.991886808008702,
306
+ "val_iou": 0.8632602967944369,
307
+ "val_miou": 0.9269551160949391,
308
+ "val_dice": 0.9266126673547378,
309
+ "val_pixel_acc": 0.9911710925568303,
310
+ "epoch_seconds": 337.6509349346161
311
+ },
312
+ {
313
+ "epoch": 21,
314
+ "lr": 0.0001,
315
+ "train_loss": 0.05407479304368749,
316
+ "val_loss": 0.05978784816605704,
317
+ "train_iou": 0.8710308676343484,
318
+ "train_miou": 0.9312109604982032,
319
+ "train_dice": 0.9310705480082675,
320
+ "train_pixel_acc": 0.9918640994084267,
321
+ "val_iou": 0.8608828603359868,
322
+ "val_miou": 0.9256640340556254,
323
+ "val_dice": 0.9252413235517171,
324
+ "val_pixel_acc": 0.990978613831942,
325
+ "epoch_seconds": 337.65660309791565
326
+ },
327
+ {
328
+ "epoch": 22,
329
+ "lr": 0.0001,
330
+ "train_loss": 0.05378927087806391,
331
+ "val_loss": 0.06044962356931397,
332
+ "train_iou": 0.8720698270413106,
333
+ "train_miou": 0.9317701380064896,
334
+ "train_dice": 0.931663781387431,
335
+ "train_pixel_acc": 0.9919391391670148,
336
+ "val_iou": 0.8602316287344453,
337
+ "val_miou": 0.9252180543131009,
338
+ "val_dice": 0.9248650710445977,
339
+ "val_pixel_acc": 0.9907614571707577,
340
+ "epoch_seconds": 337.683287858963
341
+ },
342
+ {
343
+ "epoch": 23,
344
+ "lr": 0.0001,
345
+ "train_loss": 0.05495393315725254,
346
+ "val_loss": 0.058229613317442794,
347
+ "train_iou": 0.8677053382641036,
348
+ "train_miou": 0.9294299432937982,
349
+ "train_dice": 0.9291672733243593,
350
+ "train_pixel_acc": 0.9916395883987412,
351
+ "val_iou": 0.8653690637587451,
352
+ "val_miou": 0.9280028300701518,
353
+ "val_dice": 0.9278261128819346,
354
+ "val_pixel_acc": 0.9911681440539815,
355
+ "epoch_seconds": 337.9082381725311
356
+ },
357
+ {
358
+ "epoch": 24,
359
+ "lr": 0.0001,
360
+ "train_loss": 0.052139689592701016,
361
+ "val_loss": 0.052769842624132125,
362
+ "train_iou": 0.8745124830415324,
363
+ "train_miou": 0.933081638091035,
364
+ "train_dice": 0.9330559182220782,
365
+ "train_pixel_acc": 0.9921098794553344,
366
+ "val_iou": 0.8776057051977803,
367
+ "val_miou": 0.9346154015498194,
368
+ "val_dice": 0.9348136328818156,
369
+ "val_pixel_acc": 0.992099526771028,
370
+ "epoch_seconds": 338.64437532424927
371
+ },
372
+ {
373
+ "epoch": 25,
374
+ "lr": 0.0001,
375
+ "train_loss": 0.05187169149743788,
376
+ "val_loss": 0.055727733188264426,
377
+ "train_iou": 0.8750254997654672,
378
+ "train_miou": 0.9333533612302211,
379
+ "train_dice": 0.9333478396692926,
380
+ "train_pixel_acc": 0.9921390820201271,
381
+ "val_iou": 0.8711172042260545,
382
+ "val_miou": 0.9311804060803527,
383
+ "val_dice": 0.9311198702663551,
384
+ "val_pixel_acc": 0.9917328913408999,
385
+ "epoch_seconds": 338.0799331665039
386
+ },
387
+ {
388
+ "epoch": 26,
389
+ "lr": 0.0001,
390
+ "train_loss": 0.049772144656515485,
391
+ "val_loss": 0.060032029480983816,
392
+ "train_iou": 0.8795077744916783,
393
+ "train_miou": 0.9357532178255031,
394
+ "train_dice": 0.9358916056939912,
395
+ "train_pixel_acc": 0.9924401853151542,
396
+ "val_iou": 0.8610423774479857,
397
+ "val_miou": 0.9257206914842264,
398
+ "val_dice": 0.9253334452584768,
399
+ "val_pixel_acc": 0.9909381149406709,
400
+ "epoch_seconds": 339.0214512348175
401
+ },
402
+ {
403
+ "epoch": 27,
404
+ "lr": 0.0001,
405
+ "train_loss": 0.0504423411788814,
406
+ "val_loss": 0.057618808888253714,
407
+ "train_iou": 0.8780587189426323,
408
+ "train_miou": 0.9349733636059822,
409
+ "train_dice": 0.9350705705697946,
410
+ "train_pixel_acc": 0.9923356938923316,
411
+ "val_iou": 0.865244825836753,
412
+ "val_miou": 0.9279003117252294,
413
+ "val_dice": 0.927754698848825,
414
+ "val_pixel_acc": 0.9910957508517375,
415
+ "epoch_seconds": 336.9800798892975
416
+ },
417
+ {
418
+ "epoch": 28,
419
+ "lr": 0.0001,
420
+ "train_loss": 0.050826606143153076,
421
+ "val_loss": 0.055178927656795294,
422
+ "train_iou": 0.8775293312499431,
423
+ "train_miou": 0.9346974571275203,
424
+ "train_dice": 0.9347703033387376,
425
+ "train_pixel_acc": 0.9923135848686198,
426
+ "val_iou": 0.8713816183614767,
427
+ "val_miou": 0.931265580473916,
428
+ "val_dice": 0.9312708961247905,
429
+ "val_pixel_acc": 0.9916502070606191,
430
+ "epoch_seconds": 338.1521327495575
431
+ },
432
+ {
433
+ "epoch": 29,
434
+ "lr": 0.0001,
435
+ "train_loss": 0.04953139970699946,
436
+ "val_loss": 0.05825573975397717,
437
+ "train_iou": 0.8797804296132041,
438
+ "train_miou": 0.9358951739748018,
439
+ "train_dice": 0.9360459506371535,
440
+ "train_pixel_acc": 0.9924513078948809,
441
+ "val_iou": 0.867289695590805,
442
+ "val_miou": 0.9290643358480635,
443
+ "val_dice": 0.9289289151423256,
444
+ "val_pixel_acc": 0.9913564581620053,
445
+ "epoch_seconds": 338.57173585891724
446
+ },
447
+ {
448
+ "epoch": 30,
449
+ "lr": 5e-05,
450
+ "train_loss": 0.05027323396255572,
451
+ "val_loss": 0.06656691174776781,
452
+ "train_iou": 0.8787501480549811,
453
+ "train_miou": 0.9353438239164525,
454
+ "train_dice": 0.9354624924072286,
455
+ "train_pixel_acc": 0.9923826027930277,
456
+ "val_iou": 0.8454440792247139,
457
+ "val_miou": 0.917379893921289,
458
+ "val_dice": 0.916250011303395,
459
+ "val_pixel_acc": 0.9899056685598261,
460
+ "epoch_seconds": 338.30215406417847
461
+ },
462
+ {
463
+ "epoch": 31,
464
+ "lr": 5e-05,
465
+ "train_loss": 0.04615451558069749,
466
+ "val_loss": 0.05151346671794142,
467
+ "train_iou": 0.8882442528903381,
468
+ "train_miou": 0.940424328057046,
469
+ "train_dice": 0.9408149941732395,
470
+ "train_pixel_acc": 0.993014988070106,
471
+ "val_iou": 0.8796165324933256,
472
+ "val_miou": 0.9357035069766614,
473
+ "val_dice": 0.9359531769243459,
474
+ "val_pixel_acc": 0.9922550631645018,
475
+ "epoch_seconds": 338.35745787620544
476
+ },
477
+ {
478
+ "epoch": 32,
479
+ "lr": 5e-05,
480
+ "train_loss": 0.04361298737878149,
481
+ "val_loss": 0.050731415926877944,
482
+ "train_iou": 0.8930560351047959,
483
+ "train_miou": 0.9429956288275481,
484
+ "train_dice": 0.9435072375502696,
485
+ "train_pixel_acc": 0.9933287954366647,
486
+ "val_iou": 0.8814055502289323,
487
+ "val_miou": 0.9366214850495488,
488
+ "val_dice": 0.9369649729391746,
489
+ "val_pixel_acc": 0.9923042813638088,
490
+ "epoch_seconds": 338.84148359298706
491
+ },
492
+ {
493
+ "epoch": 33,
494
+ "lr": 5e-05,
495
+ "train_loss": 0.0432531412408659,
496
+ "val_loss": 0.05250615810620643,
497
+ "train_iou": 0.8932469672077851,
498
+ "train_miou": 0.9430953850918304,
499
+ "train_dice": 0.9436137838109641,
500
+ "train_pixel_acc": 0.9933371895085522,
501
+ "val_iou": 0.8779424911855842,
502
+ "val_miou": 0.9347608402365122,
503
+ "val_dice": 0.9350046610120853,
504
+ "val_pixel_acc": 0.9920601063204876,
505
+ "epoch_seconds": 338.8733534812927
506
+ },
507
+ {
508
+ "epoch": 34,
509
+ "lr": 5e-05,
510
+ "train_loss": 0.04278574720815276,
511
+ "val_loss": 0.052683066199755386,
512
+ "train_iou": 0.8947657927896826,
513
+ "train_miou": 0.9439085754307257,
514
+ "train_dice": 0.9444605725885626,
515
+ "train_pixel_acc": 0.9934389929746076,
516
+ "val_iou": 0.8767263865522303,
517
+ "val_miou": 0.9341202144635214,
518
+ "val_dice": 0.9343145520140322,
519
+ "val_pixel_acc": 0.9919970404832871,
520
+ "epoch_seconds": 338.85284900665283
521
+ },
522
+ {
523
+ "epoch": 35,
524
+ "lr": 5e-05,
525
+ "train_loss": 0.0439120839491035,
526
+ "val_loss": 0.051377493799442335,
527
+ "train_iou": 0.8920834942018545,
528
+ "train_miou": 0.9424787714330378,
529
+ "train_dice": 0.9429641946939196,
530
+ "train_pixel_acc": 0.9932704598232025,
531
+ "val_iou": 0.8804139898296319,
532
+ "val_miou": 0.9361119201837158,
533
+ "val_dice": 0.9364044243357268,
534
+ "val_pixel_acc": 0.9922756109022545,
535
+ "epoch_seconds": 337.51261353492737
536
+ },
537
+ {
538
+ "epoch": 36,
539
+ "lr": 5e-05,
540
+ "train_loss": 0.04419458805950302,
541
+ "val_loss": 0.049861785756157975,
542
+ "train_iou": 0.8921287981292344,
543
+ "train_miou": 0.9424969492568617,
544
+ "train_dice": 0.9429895036863142,
545
+ "train_pixel_acc": 0.9932626566383631,
546
+ "val_iou": 0.883111018571925,
547
+ "val_miou": 0.9375276275422038,
548
+ "val_dice": 0.9379277268969946,
549
+ "val_pixel_acc": 0.9924064005227902,
550
+ "epoch_seconds": 337.05343556404114
551
+ },
552
+ {
553
+ "epoch": 37,
554
+ "lr": 5e-05,
555
+ "train_loss": 0.04317868397655812,
556
+ "val_loss": 0.05178131034509057,
557
+ "train_iou": 0.8942095004082636,
558
+ "train_miou": 0.9436117221724916,
559
+ "train_dice": 0.9441505812483071,
560
+ "train_pixel_acc": 0.9934034731321107,
561
+ "val_iou": 0.8790203420240567,
562
+ "val_miou": 0.9353519052463208,
563
+ "val_dice": 0.9356155677135322,
564
+ "val_pixel_acc": 0.9921573724961806,
565
+ "epoch_seconds": 335.98432779312134
566
+ },
567
+ {
568
+ "epoch": 38,
569
+ "lr": 5e-05,
570
+ "train_loss": 0.04256369875123103,
571
+ "val_loss": 0.05222855029361589,
572
+ "train_iou": 0.8957032434148426,
573
+ "train_miou": 0.9444119910361566,
574
+ "train_dice": 0.9449825509623113,
575
+ "train_pixel_acc": 0.9935044887487687,
576
+ "val_iou": 0.8791776196571043,
577
+ "val_miou": 0.9354226677710467,
578
+ "val_dice": 0.9357046512905244,
579
+ "val_pixel_acc": 0.9921440296603313,
580
+ "epoch_seconds": 336.62293577194214
581
+ },
582
+ {
583
+ "epoch": 39,
584
+ "lr": 5e-05,
585
+ "train_loss": 0.04222381215429667,
586
+ "val_loss": 0.05104621867871001,
587
+ "train_iou": 0.8962870952115249,
588
+ "train_miou": 0.9447219522728916,
589
+ "train_dice": 0.9453073824895138,
590
+ "train_pixel_acc": 0.9935389108158187,
591
+ "val_iou": 0.8811081235109721,
592
+ "val_miou": 0.936495511510617,
593
+ "val_dice": 0.9367968938079307,
594
+ "val_pixel_acc": 0.9923434838316483,
595
+ "epoch_seconds": 336.9724774360657
596
+ },
597
+ {
598
+ "epoch": 40,
599
+ "lr": 5e-05,
600
+ "train_loss": 0.041671457655276314,
601
+ "val_loss": 0.049910214419166245,
602
+ "train_iou": 0.8975874895742764,
603
+ "train_miou": 0.9454191204847866,
604
+ "train_dice": 0.946030150921421,
605
+ "train_pixel_acc": 0.9936276944912825,
606
+ "val_iou": 0.8837564876282817,
607
+ "val_miou": 0.9378992814860798,
608
+ "val_dice": 0.9382916459026649,
609
+ "val_pixel_acc": 0.9924960717222733,
610
+ "epoch_seconds": 337.6996052265167
611
+ },
612
+ {
613
+ "epoch": 41,
614
+ "lr": 5e-05,
615
+ "train_loss": 0.041797246851704335,
616
+ "val_loss": 0.06259610532738623,
617
+ "train_iou": 0.897003521723989,
618
+ "train_miou": 0.9451036879013084,
619
+ "train_dice": 0.9457057000176742,
620
+ "train_pixel_acc": 0.9935836270621259,
621
+ "val_iou": 0.8568097556986045,
622
+ "val_miou": 0.9235594216657617,
623
+ "val_dice": 0.92288372900781,
624
+ "val_pixel_acc": 0.9908402407079699,
625
+ "epoch_seconds": 337.889524936676
626
+ },
627
+ {
628
+ "epoch": 42,
629
+ "lr": 5e-05,
630
+ "train_loss": 0.04300476115648494,
631
+ "val_loss": 0.05414950386399314,
632
+ "train_iou": 0.8942397675740698,
633
+ "train_miou": 0.9436265753179,
634
+ "train_dice": 0.9441674521692806,
635
+ "train_pixel_acc": 0.9934030907934326,
636
+ "val_iou": 0.8736877271053841,
637
+ "val_miou": 0.9325128280031932,
638
+ "val_dice": 0.9325862730126578,
639
+ "val_pixel_acc": 0.9918275761425035,
640
+ "epoch_seconds": 337.9087963104248
641
+ },
642
+ {
643
+ "epoch": 43,
644
+ "lr": 5e-05,
645
+ "train_loss": 0.04168323976636836,
646
+ "val_loss": 0.05129873160538929,
647
+ "train_iou": 0.8976295390326262,
648
+ "train_miou": 0.9454414446110331,
649
+ "train_dice": 0.9460535057756531,
650
+ "train_pixel_acc": 0.9936301738996799,
651
+ "val_iou": 0.8804478230578452,
652
+ "val_miou": 0.9360994722753839,
653
+ "val_dice": 0.9364235606666566,
654
+ "val_pixel_acc": 0.9922235359822885,
655
+ "epoch_seconds": 336.86182498931885
656
+ },
657
+ {
658
+ "epoch": 44,
659
+ "lr": 5e-05,
660
+ "train_loss": 0.04165409284107613,
661
+ "val_loss": 0.04999064467847347,
662
+ "train_iou": 0.8975923520835848,
663
+ "train_miou": 0.9454204770031447,
664
+ "train_dice": 0.9460328516796719,
665
+ "train_pixel_acc": 0.9936257972804177,
666
+ "val_iou": 0.8836756110662332,
667
+ "val_miou": 0.9378594970449272,
668
+ "val_dice": 0.9382460609192032,
669
+ "val_pixel_acc": 0.9924968977619819,
670
+ "epoch_seconds": 337.4358162879944
671
+ },
672
+ {
673
+ "epoch": 45,
674
+ "lr": 5e-05,
675
+ "train_loss": 0.04057567070492289,
676
+ "val_loss": 0.05272769174050717,
677
+ "train_iou": 0.9001230065946739,
678
+ "train_miou": 0.9467733011504682,
679
+ "train_dice": 0.9474365643388942,
680
+ "train_pixel_acc": 0.9937915613729116,
681
+ "val_iou": 0.8763727686532983,
682
+ "val_miou": 0.9339611671903665,
683
+ "val_dice": 0.9341137148161497,
684
+ "val_pixel_acc": 0.9920271679871052,
685
+ "epoch_seconds": 337.4406862258911
686
+ },
687
+ {
688
+ "epoch": 46,
689
+ "lr": 2.5e-05,
690
+ "train_loss": 0.041589335583601936,
691
+ "val_loss": 0.04972087829152033,
692
+ "train_iou": 0.8981636367038398,
693
+ "train_miou": 0.9457256425645066,
694
+ "train_dice": 0.9463500610131808,
695
+ "train_pixel_acc": 0.9936628146160704,
696
+ "val_iou": 0.8835186869205802,
697
+ "val_miou": 0.9377745642787344,
698
+ "val_dice": 0.9381576015739677,
699
+ "val_pixel_acc": 0.9924847366218268,
700
+ "epoch_seconds": 337.7739152908325
701
+ },
702
+ {
703
+ "epoch": 47,
704
+ "lr": 2.5e-05,
705
+ "train_loss": 0.03872529609185277,
706
+ "val_loss": 0.050474510106834625,
707
+ "train_iou": 0.9037959117072141,
708
+ "train_miou": 0.9487364260790566,
709
+ "train_dice": 0.9494672261342785,
710
+ "train_pixel_acc": 0.9940314846864319,
711
+ "val_iou": 0.8828951470860359,
712
+ "val_miou": 0.9374425474380261,
713
+ "val_dice": 0.9378059616887348,
714
+ "val_pixel_acc": 0.9924461307382213,
715
+ "epoch_seconds": 336.1945569515228
716
+ },
717
+ {
718
+ "epoch": 48,
719
+ "lr": 2.5e-05,
720
+ "train_loss": 0.03837956857274879,
721
+ "val_loss": 0.04856898959371306,
722
+ "train_iou": 0.9052133400783744,
723
+ "train_miou": 0.9494921591842762,
724
+ "train_dice": 0.9502487947529665,
725
+ "train_pixel_acc": 0.9941207202166972,
726
+ "val_iou": 0.8873949308142448,
727
+ "val_miou": 0.9398401980986142,
728
+ "val_dice": 0.9403383640872787,
729
+ "val_pixel_acc": 0.9927275922961689,
730
+ "epoch_seconds": 334.29114842414856
731
+ },
732
+ {
733
+ "epoch": 49,
734
+ "lr": 2.5e-05,
735
+ "train_loss": 0.03812120704149658,
736
+ "val_loss": 0.05060118793820342,
737
+ "train_iou": 0.9053616133892155,
738
+ "train_miou": 0.9495708608878928,
739
+ "train_dice": 0.9503304853284813,
740
+ "train_pixel_acc": 0.9941294242146343,
741
+ "val_iou": 0.8820821594817134,
742
+ "val_miou": 0.936980342639076,
743
+ "val_dice": 0.9373471344360658,
744
+ "val_pixel_acc": 0.992343667396028,
745
+ "epoch_seconds": 333.8846809864044
746
+ },
747
+ {
748
+ "epoch": 50,
749
+ "lr": 2.5e-05,
750
+ "train_loss": 0.03823907319456339,
751
+ "val_loss": 0.048359356354922056,
752
+ "train_iou": 0.9056173367683727,
753
+ "train_miou": 0.9497073574333565,
754
+ "train_dice": 0.950471345211581,
755
+ "train_pixel_acc": 0.9941457923651643,
756
+ "val_iou": 0.8867443620832248,
757
+ "val_miou": 0.9394890526974615,
758
+ "val_dice": 0.9399729819297165,
759
+ "val_pixel_acc": 0.9926789133172275,
760
+ "epoch_seconds": 333.76842617988586
761
+ }
762
+ ],
763
+ "start_time_iso": "2026-05-21T14:27:48",
764
+ "best_epoch": 48,
765
+ "best_val_dice": 0.9403383640872787,
766
+ "epochs_trained": 50,
767
+ "wall_clock_seconds": 16867.168982982635
768
+ }
experiments/resolution_study/metrics.py ADDED
@@ -0,0 +1,36 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ """Confusion-matrix-based metrics. Same as the other experiments."""
2
+ import torch
3
+
4
+
5
+ class SegMetrics:
6
+ def __init__(self, threshold=0.5):
7
+ self.threshold = threshold
8
+ self.reset()
9
+
10
+ def reset(self):
11
+ self.tp = 0.0
12
+ self.fp = 0.0
13
+ self.fn = 0.0
14
+ self.tn = 0.0
15
+
16
+ @torch.no_grad()
17
+ def update(self, logits_or_probs, target, output_is_prob=False):
18
+ pred = logits_or_probs if output_is_prob else torch.sigmoid(logits_or_probs)
19
+ pred = (pred > self.threshold).float()
20
+ target = target.float()
21
+ self.tp += (pred * target).sum().item()
22
+ self.fp += (pred * (1 - target)).sum().item()
23
+ self.fn += ((1 - pred) * target).sum().item()
24
+ self.tn += ((1 - pred) * (1 - target)).sum().item()
25
+
26
+ def compute(self):
27
+ eps = 1e-7
28
+ tp, fp, fn, tn = self.tp, self.fp, self.fn, self.tn
29
+ fg_iou = tp / (tp + fp + fn + eps)
30
+ bg_iou = tn / (tn + fp + fn + eps)
31
+ return {
32
+ "iou": float(fg_iou),
33
+ "miou": float(0.5 * (fg_iou + bg_iou)),
34
+ "dice": float((2 * tp) / (2 * tp + fp + fn + eps)),
35
+ "pixel_acc": float((tp + tn) / (tp + tn + fp + fn + eps)),
36
+ }
experiments/resolution_study/models.py ADDED
@@ -0,0 +1,89 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ """
2
+ Builders for the resolution study. Same 4 architectures, same loss recipe,
3
+ loaded via importlib so this experiment's dataset.py is not shadowed.
4
+ """
5
+ import importlib.util
6
+ from pathlib import Path
7
+
8
+ import torch
9
+ import torch.nn as nn
10
+
11
+ REPO_ROOT = Path(__file__).resolve().parents[2]
12
+ PV_DIR = REPO_ROOT / "pv_panel_models"
13
+
14
+
15
+ def _load(module_name: str, file_path: Path):
16
+ spec = importlib.util.spec_from_file_location(module_name, file_path)
17
+ module = importlib.util.module_from_spec(spec)
18
+ spec.loader.exec_module(module)
19
+ return module
20
+
21
+
22
+ _segnet_mod = _load("_pv_segnet_model", PV_DIR / "cnn_model" / "cnn_segmenter.py")
23
+ _unet_mod = _load("_pv_unet_model", PV_DIR / "unet_model" / "unet_model.py")
24
+ _segformer_b0_mod = _load("_pv_segformer_b0_model", PV_DIR / "vit_model" / "segformer_model.py")
25
+ _segformer_b5_mod = _load("_pv_segformer_b5_model",
26
+ PV_DIR / "segformer_b5_model" / "segformer_model.py")
27
+
28
+
29
+ class _SegNetDiceLoss(nn.Module):
30
+ def __init__(self, smooth=1e-6):
31
+ super().__init__()
32
+ self.smooth = smooth
33
+
34
+ def forward(self, pred, target):
35
+ pred = pred.view(-1)
36
+ target = target.view(-1)
37
+ intersection = (pred * target).sum()
38
+ dice = (2.0 * intersection + self.smooth) / (pred.sum() + target.sum() + self.smooth)
39
+ return 1 - dice
40
+
41
+
42
+ class _SegNetCombinedLoss(nn.Module):
43
+ def __init__(self, bce_weight=0.5):
44
+ super().__init__()
45
+ self.bce = nn.BCELoss()
46
+ self.dice = _SegNetDiceLoss()
47
+ self.bce_weight = bce_weight
48
+
49
+ def forward(self, pred, target):
50
+ return self.bce_weight * self.bce(pred, target) + (1 - self.bce_weight) * self.dice(pred, target)
51
+
52
+
53
+ def build_segnet():
54
+ return _segnet_mod.SegNet(in_channels=3, out_channels=1), _SegNetCombinedLoss(bce_weight=0.5), True
55
+
56
+
57
+ def build_unet():
58
+ return _unet_mod.UNet(in_channels=3, out_channels=1), _unet_mod.CombinedLoss(bce_weight=0.5), False
59
+
60
+
61
+ def build_segformer_b0():
62
+ return (
63
+ _segformer_b0_mod.SegformerModel(pretrained_name="nvidia/mit-b0", num_classes=1),
64
+ _segformer_b0_mod.CombinedLoss(bce_weight=0.5),
65
+ False,
66
+ )
67
+
68
+
69
+ def build_segformer_b5():
70
+ return (
71
+ _segformer_b5_mod.SegformerModel(pretrained_name="nvidia/mit-b5", num_classes=1),
72
+ _segformer_b5_mod.CombinedLoss(bce_weight=0.5),
73
+ False,
74
+ )
75
+
76
+
77
+ MODEL_REGISTRY = {
78
+ "segnet": build_segnet,
79
+ "unet": build_unet,
80
+ "segformer_b0": build_segformer_b0,
81
+ "segformer_b5": build_segformer_b5,
82
+ }
83
+
84
+ PRETTY_NAME = {
85
+ "segnet": "SegNet (CNN)",
86
+ "unet": "U-Net",
87
+ "segformer_b0": "SegFormer-B0",
88
+ "segformer_b5": "SegFormer-B5",
89
+ }
experiments/resolution_study/results/resolution_results.csv ADDED
@@ -0,0 +1,6 @@
 
 
 
 
 
 
 
1
+ cfg_id,model,image_size,batch_size,best_epoch,best_val_dice,best_val_miou,best_val_iou,best_val_pixel_acc,baseline_dice_at_128,delta_vs_128,wall_clock_seconds
2
+ segformer_b0_res192,segformer_b0,192,16,47,0.9393846042240084,0.9389258268871529,0.8856976883092615,0.9926036404487762,0.928,0.011384604224008332,962.2275054454803
3
+ segformer_b0_res256,segformer_b0,256,16,48,0.9447013970333826,0.9440237140925567,0.8951981878661379,0.9932608697647427,0.928,0.01670139703338258,1755.2901220321655
4
+ unet_res192,unet,192,16,50,0.9382585872059005,0.9378575204673147,0.8836978344253904,0.9924737176600336,0.937,0.001258587205900441,9444.264706611633
5
+ unet_res256,unet,256,16,48,0.9403383640872787,0.9398401980986142,0.8873949308142448,0.9927275922961689,0.937,0.0033383640872786113,16867.168982982635
6
+ segformer_b0_res512,segformer_b0,512,16,44,0.9470830922501384,0.9463243945370107,0.8994851210757973,0.9935577822807137,0.928,0.019083092250138378,10060.271508693695
experiments/resolution_study/run_resolution.sh ADDED
@@ -0,0 +1,73 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ #!/usr/bin/env bash
2
+ # Resolution study. Trains one (model, image_size) cell at a time.
3
+ #
4
+ # Usage:
5
+ # ./run_resolution.sh segformer_b0 192 256 # one model, two resolutions
6
+ # ./run_resolution.sh unet 192 256
7
+ # ./run_resolution.sh segformer_b5 192 256 # B5 at 256 auto-drops bs to 8
8
+ # THROTTLE=0.4 ./run_resolution.sh segformer_b0 192 256 # optional duty-cycle cap
9
+ #
10
+ # First arg is the model. Remaining args are the image sizes to sweep.
11
+ # Batch size is 16 unless the (model, image_size) combo is in the override
12
+ # list below (currently: segformer_b5 at 256 -> bs=8 for VRAM headroom).
13
+
14
+ set -euo pipefail
15
+ DIR="$(cd "$(dirname "$0")" && pwd)"
16
+ cd "$DIR"
17
+
18
+ OVERALL_T0=$(date +%s)
19
+ fmt_hms() {
20
+ local s=$1
21
+ printf '%d:%02d:%02d' $((s/3600)) $(((s%3600)/60)) $((s%60))
22
+ }
23
+
24
+ if [ $# -lt 2 ]; then
25
+ echo "usage: $0 <model> <image_size> [image_size ...]"
26
+ echo "example: $0 segformer_b0 192 256"
27
+ exit 1
28
+ fi
29
+
30
+ MODEL="$1"
31
+ shift
32
+ RESOLUTIONS=("$@")
33
+
34
+ mkdir -p logs results
35
+
36
+ THROTTLE_ARG=()
37
+ if [ -n "${THROTTLE:-}" ] && [ "$THROTTLE" != "0" ]; then
38
+ THROTTLE_ARG=(--throttle "$THROTTLE")
39
+ echo "[grid] GPU duty-cycle cap: ${THROTTLE}"
40
+ fi
41
+
42
+ pick_bs() {
43
+ local model="$1"
44
+ local size="$2"
45
+ # SegFormer-B5 at 256 needs smaller batch for VRAM.
46
+ if [ "$model" = "segformer_b5" ] && [ "$size" -ge 256 ]; then
47
+ echo 8
48
+ else
49
+ echo 16
50
+ fi
51
+ }
52
+
53
+ for SIZE in "${RESOLUTIONS[@]}"; do
54
+ BS=$(pick_bs "$MODEL" "$SIZE")
55
+ cfg_id="${MODEL}_res${SIZE}"
56
+ t0=$(date +%s)
57
+ echo ""
58
+ echo "════════════════════════════════════════════════════════════"
59
+ echo " $cfg_id batch_size=$BS"
60
+ echo "════════════════════════════════════════════════════════════"
61
+ "${PYTHON:-python}" train.py \
62
+ --model "$MODEL" \
63
+ --image-size "$SIZE" \
64
+ --batch-size "$BS" \
65
+ "${THROTTLE_ARG[@]}" \
66
+ 2>&1 | tee "logs/${cfg_id}.stdout.log"
67
+ dt=$(( $(date +%s) - t0 ))
68
+ echo " → $cfg_id finished in $(fmt_hms $dt)"
69
+ done
70
+
71
+ OVERALL_DT=$(( $(date +%s) - OVERALL_T0 ))
72
+ echo ""
73
+ echo "[grid] complete in $(fmt_hms $OVERALL_DT). Results in results/resolution_results.csv"
experiments/resolution_study/train.py ADDED
@@ -0,0 +1,294 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ """
2
+ Resolution-study trainer.
3
+
4
+ Trains one (model, image_size) cell at 100% data on final_data_clean/.
5
+
6
+ Usage:
7
+ python train.py --model segformer_b0 --image-size 192
8
+ python train.py --model segformer_b0 --image-size 256
9
+
10
+ Each run produces:
11
+ checkpoints/{model}_res{image_size}_best.pth (state at highest val Dice)
12
+ logs/{model}_res{image_size}.json (per-epoch metrics + timing)
13
+ one row appended to results/resolution_results.csv
14
+
15
+ Hyperparameters held identical to the clean baseline at 128:
16
+ Adam, lr=1e-4, ReduceLROnPlateau(mode='max', patience=5, factor=0.5),
17
+ 50 epochs, CombinedLoss(0.5*BCE + 0.5*Dice), HFlip+VFlip+Rot15.
18
+ Only image_size and (optionally) batch_size vary.
19
+ """
20
+ import argparse
21
+ import csv
22
+ import json
23
+ import time
24
+ from pathlib import Path
25
+ from threading import Lock
26
+
27
+ import torch
28
+ import torch.optim as optim
29
+ from torch.utils.data import DataLoader
30
+ from tqdm import tqdm
31
+
32
+ from dataset import SolarPanelDataset
33
+ from metrics import SegMetrics
34
+ from models import MODEL_REGISTRY
35
+
36
+ THIS_DIR = Path(__file__).resolve().parent
37
+ REPO_ROOT = THIS_DIR.parents[1]
38
+ CLEAN = REPO_ROOT / "final_data_clean"
39
+ TRAIN_IMG = CLEAN / "train" / "images"
40
+ TRAIN_MSK = CLEAN / "train" / "masks"
41
+ VAL_IMG = CLEAN / "val" / "images"
42
+ VAL_MSK = CLEAN / "val" / "masks"
43
+
44
+ LOG_DIR = THIS_DIR / "logs"
45
+ CKPT_DIR = THIS_DIR / "checkpoints"
46
+ RESULTS_DIR = THIS_DIR / "results"
47
+ RESULTS_CSV = RESULTS_DIR / "resolution_results.csv"
48
+
49
+ # Reference val-Dice values at 128 (from clean_data_scaling_study at 100% data).
50
+ BASELINE_128 = {
51
+ "segnet": 0.9291,
52
+ "unet": 0.9370,
53
+ "segformer_b0": 0.9280,
54
+ "segformer_b5": 0.9371,
55
+ }
56
+
57
+ CSV_FIELDS = [
58
+ "cfg_id", "model", "image_size", "batch_size",
59
+ "best_epoch", "best_val_dice", "best_val_miou", "best_val_iou", "best_val_pixel_acc",
60
+ "baseline_dice_at_128", "delta_vs_128",
61
+ "wall_clock_seconds",
62
+ ]
63
+
64
+ _csv_lock = Lock()
65
+
66
+
67
+ def _fmt(seconds: float) -> str:
68
+ seconds = int(round(seconds))
69
+ h, rem = divmod(seconds, 3600)
70
+ m, s = divmod(rem, 60)
71
+ return f"{h:d}:{m:02d}:{s:02d}" if h else f"{m:d}:{s:02d}"
72
+
73
+
74
+ def append_csv_row(row: dict):
75
+ RESULTS_DIR.mkdir(parents=True, exist_ok=True)
76
+ with _csv_lock:
77
+ write_header = not RESULTS_CSV.is_file()
78
+ with open(RESULTS_CSV, "a", newline="") as f:
79
+ writer = csv.DictWriter(f, fieldnames=CSV_FIELDS)
80
+ if write_header:
81
+ writer.writeheader()
82
+ writer.writerow({k: row.get(k) for k in CSV_FIELDS})
83
+
84
+
85
+ def run_epoch(model, loader, criterion, optimizer, device, train: bool,
86
+ output_is_prob: bool, throttle: float | None = None):
87
+ model.train(mode=train)
88
+ metrics = SegMetrics()
89
+ total_loss = 0.0
90
+ n_batches = 0
91
+
92
+ do_throttle = train and throttle is not None and 0 < throttle < 1.0
93
+ sleep_factor = (1.0 - throttle) / throttle if do_throttle else 0.0
94
+
95
+ desc = "Train" if train else "Val"
96
+ ctx = torch.enable_grad() if train else torch.no_grad()
97
+ with ctx:
98
+ for images, masks in tqdm(loader, desc=desc, leave=False):
99
+ batch_t0 = time.perf_counter() if do_throttle else None
100
+
101
+ images = images.to(device, non_blocking=True)
102
+ masks = masks.to(device, non_blocking=True)
103
+
104
+ if train:
105
+ optimizer.zero_grad()
106
+ outputs = model(images)
107
+ loss = criterion(outputs, masks)
108
+ if train:
109
+ loss.backward()
110
+ optimizer.step()
111
+
112
+ total_loss += loss.item()
113
+ n_batches += 1
114
+ metrics.update(outputs.detach(), masks, output_is_prob=output_is_prob)
115
+
116
+ if do_throttle:
117
+ if torch.cuda.is_available():
118
+ torch.cuda.synchronize()
119
+ step_dt = time.perf_counter() - batch_t0
120
+ time.sleep(step_dt * sleep_factor)
121
+
122
+ return total_loss / max(n_batches, 1), metrics.compute()
123
+
124
+
125
+ def parse_args():
126
+ p = argparse.ArgumentParser()
127
+ p.add_argument("--model", required=True, choices=list(MODEL_REGISTRY.keys()))
128
+ p.add_argument("--image-size", required=True, type=int,
129
+ help="square input resolution (e.g. 192, 256)")
130
+ p.add_argument("--batch-size", type=int, default=16)
131
+ p.add_argument("--epochs", type=int, default=50)
132
+ p.add_argument("--lr", type=float, default=1e-4)
133
+ p.add_argument("--num-workers", type=int, default=4)
134
+ p.add_argument("--seed", type=int, default=42)
135
+ p.add_argument("--throttle", type=float, default=None,
136
+ help="optional duty-cycle cap, e.g. 0.4 for 40%% average util")
137
+ return p.parse_args()
138
+
139
+
140
+ def main():
141
+ args = parse_args()
142
+ torch.manual_seed(args.seed)
143
+ device = torch.device("cuda" if torch.cuda.is_available() else "cpu")
144
+ cfg_id = f"{args.model}_res{args.image_size}"
145
+ print(f"[run] {cfg_id} image_size={args.image_size} batch_size={args.batch_size} device={device}")
146
+
147
+ LOG_DIR.mkdir(parents=True, exist_ok=True)
148
+ CKPT_DIR.mkdir(parents=True, exist_ok=True)
149
+
150
+ train_set = SolarPanelDataset(TRAIN_IMG, TRAIN_MSK, image_size=args.image_size, augment=True)
151
+ val_set = SolarPanelDataset(VAL_IMG, VAL_MSK, image_size=args.image_size, augment=False)
152
+ print(f"[data] train={len(train_set)} val={len(val_set)}")
153
+
154
+ train_loader = DataLoader(
155
+ train_set, batch_size=args.batch_size, shuffle=True,
156
+ num_workers=args.num_workers, pin_memory=True,
157
+ )
158
+ val_loader = DataLoader(
159
+ val_set, batch_size=args.batch_size, shuffle=False,
160
+ num_workers=args.num_workers, pin_memory=True,
161
+ )
162
+
163
+ builder = MODEL_REGISTRY[args.model]
164
+ model, criterion, output_is_prob = builder()
165
+ model = model.to(device)
166
+ n_params = sum(p.numel() for p in model.parameters())
167
+ print(f"[model] {args.model} params={n_params:,} "
168
+ f"output={'prob' if output_is_prob else 'logits'}")
169
+
170
+ optimizer = optim.Adam(model.parameters(), lr=args.lr)
171
+ scheduler = optim.lr_scheduler.ReduceLROnPlateau(optimizer, mode="max", patience=5, factor=0.5)
172
+
173
+ baseline = BASELINE_128.get(args.model)
174
+ history = {
175
+ "cfg_id": cfg_id,
176
+ "model": args.model,
177
+ "image_size": args.image_size,
178
+ "batch_size": args.batch_size,
179
+ "throttle": args.throttle,
180
+ "n_train": len(train_set),
181
+ "n_val": len(val_set),
182
+ "n_params": n_params,
183
+ "baseline_dice_at_128": baseline,
184
+ "epochs": [],
185
+ }
186
+
187
+ best_dice = -1.0
188
+ best_epoch = -1
189
+ best_path = CKPT_DIR / f"{cfg_id}_best.pth"
190
+ log_path = LOG_DIR / f"{cfg_id}.json"
191
+
192
+ val_m = {"dice": 0.0, "iou": 0.0, "miou": 0.0, "pixel_acc": 0.0}
193
+
194
+ if args.throttle is not None and 0 < args.throttle < 1:
195
+ print(f"[throttle] training duty cycle capped at {args.throttle*100:.0f}%")
196
+
197
+ t0 = time.time()
198
+ history["start_time_iso"] = time.strftime("%Y-%m-%dT%H:%M:%S", time.localtime(t0))
199
+
200
+ for epoch in range(args.epochs):
201
+ epoch_t0 = time.time()
202
+ train_loss, train_m = run_epoch(
203
+ model, train_loader, criterion, optimizer, device,
204
+ train=True, output_is_prob=output_is_prob, throttle=args.throttle,
205
+ )
206
+ val_loss, val_m = run_epoch(
207
+ model, val_loader, criterion, optimizer, device,
208
+ train=False, output_is_prob=output_is_prob, throttle=None,
209
+ )
210
+ scheduler.step(val_m["dice"])
211
+
212
+ epoch_seconds = time.time() - epoch_t0
213
+ elapsed = time.time() - t0
214
+ eta = (elapsed / (epoch + 1)) * (args.epochs - epoch - 1)
215
+
216
+ improved = val_m["dice"] > best_dice
217
+ if improved:
218
+ best_dice = val_m["dice"]
219
+ best_epoch = epoch + 1
220
+ torch.save({
221
+ "epoch": epoch + 1,
222
+ "model_state_dict": model.state_dict(),
223
+ "val_metrics": val_m,
224
+ "cfg": {
225
+ "cfg_id": cfg_id,
226
+ "model": args.model,
227
+ "image_size": args.image_size,
228
+ },
229
+ "output_is_prob": output_is_prob,
230
+ }, best_path)
231
+
232
+ history["epochs"].append({
233
+ "epoch": epoch + 1,
234
+ "lr": optimizer.param_groups[0]["lr"],
235
+ "train_loss": train_loss,
236
+ "val_loss": val_loss,
237
+ **{f"train_{k}": v for k, v in train_m.items()},
238
+ **{f"val_{k}": v for k, v in val_m.items()},
239
+ "epoch_seconds": epoch_seconds,
240
+ })
241
+
242
+ marker = "★" if improved else " "
243
+ print(
244
+ f" ep {epoch+1:>2}/{args.epochs} "
245
+ f"trL={train_loss:.4f} vL={val_loss:.4f} "
246
+ f"vDice={val_m['dice']:.4f} {marker} vIoU={val_m['iou']:.4f} "
247
+ f"({_fmt(elapsed)}/ETA {_fmt(eta)})"
248
+ )
249
+
250
+ with open(log_path, "w") as f:
251
+ json.dump(history, f, indent=2)
252
+
253
+ total = time.time() - t0
254
+ history["best_epoch"] = best_epoch
255
+ history["best_val_dice"] = best_dice
256
+ history["epochs_trained"] = args.epochs
257
+ history["wall_clock_seconds"] = total
258
+ with open(log_path, "w") as f:
259
+ json.dump(history, f, indent=2)
260
+
261
+ if best_path.is_file():
262
+ st = torch.load(best_path, map_location="cpu", weights_only=False)
263
+ bvm = st.get("val_metrics", {})
264
+ best_val_iou = bvm.get("iou")
265
+ best_val_miou = bvm.get("miou")
266
+ best_val_pa = bvm.get("pixel_acc")
267
+ else:
268
+ best_val_iou = best_val_miou = best_val_pa = None
269
+
270
+ delta = (best_dice - baseline) if baseline is not None else None
271
+ append_csv_row({
272
+ "cfg_id": cfg_id,
273
+ "model": args.model,
274
+ "image_size": args.image_size,
275
+ "batch_size": args.batch_size,
276
+ "best_epoch": best_epoch,
277
+ "best_val_dice": best_dice,
278
+ "best_val_miou": best_val_miou,
279
+ "best_val_iou": best_val_iou,
280
+ "best_val_pixel_acc": best_val_pa,
281
+ "baseline_dice_at_128": baseline,
282
+ "delta_vs_128": delta,
283
+ "wall_clock_seconds": total,
284
+ })
285
+
286
+ print(f"\n[done] {cfg_id} best ep {best_epoch} vDice={best_dice:.4f}")
287
+ if baseline is not None:
288
+ sign = "+" if delta >= 0 else ""
289
+ print(f" baseline at 128 = {baseline:.4f} delta = {sign}{delta:+.4f}")
290
+ print(f" wall {_fmt(total)}")
291
+
292
+
293
+ if __name__ == "__main__":
294
+ main()