zouinkhim commited on
Commit
2c17b0b
·
verified ·
1 Parent(s): 1fb3b1b

2D students to top-level setup_53_2d/ setup_54_2d/ (3D manifest schema, per-axis sizes, step 20000); source_repo on 3D manifests; remove 2d/

Browse files
2d/README.md DELETED
@@ -1,14 +0,0 @@
1
- # 2D-slice mito models (experimental)
2
-
3
- One z-slice in, one slice out: `input` float32 `[1,1,1,N,N]` → `output` float32 raw logits `[1,3,1,N-88,N-88]`
4
- (mito affinities z, y, x; threshold at 0). 16 nm, input norm `uint8/255*2-1`, same as the 3D models.
5
-
6
- These are **distilled students** of the 3D models `setup_53` / `setup_54`: every 3D kernel collapsed to 2D (sum of depth
7
- taps) and fine-tuned to reproduce the 3D model's predictions slice by slice (no labels; random axis permutations so
8
- xz/yz views work too). Collapsing alone gives F1 ≈ 0.08 (53) / 0.38 (54); distillation recovers most of the 3D accuracy.
9
- Checkpoint step and per-file fidelity (vs the PyTorch student) are in each folder's `manifest.json`.
10
-
11
- WebGPU (Chrome, Apple M-series, fp16): setup_53 1068² → 980² in 264 ms (3.6 Mpix/s), 556² → 468² in 64 ms,
12
- vs 752 ms per 172³ → 84³ block for the 3D model (0.79 Mvox/s).
13
-
14
- cellmap-flow serverless: Input size `1,N,N`, Output size `1,N-88,N-88`, voxel 16,16,16, Channels 3, Has channel axis true.
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
setup_53/manifest.json CHANGED
@@ -177,5 +177,6 @@
177
  "flip_frac": 0.0001571787837219936,
178
  "ort_cpu_s": 0.76
179
  }
180
- ]
 
181
  }
 
177
  "flip_frac": 0.0001571787837219936,
178
  "ort_cpu_s": 0.76
179
  }
180
+ ],
181
+ "source_repo": "cellmap/mito-aff-unetiso-setup-53"
182
  }
setup_53_2d/README.md ADDED
@@ -0,0 +1,10 @@
 
 
 
 
 
 
 
 
 
 
 
1
+ # setup_53_2d — 2D-slice mito student (experimental)
2
+
3
+ One z-slice in, one slice out: `input` float32 `[1,1,1,N,N]` → `output` float32 raw logits `[1,3,1,N-88,N-88]`
4
+ (mito affinities z, y, x; threshold at 0). 16 nm, input norm `uint8/255*2-1`.
5
+
6
+ Distilled from the 3D model `setup_53` (PyTorch: `cellmap/mito-aff-unetiso-setup-53`): every 3D kernel collapsed to 2D (sum of depth taps) and
7
+ fine-tuned to reproduce the 3D predictions slice by slice. Training step, per-file fidelity and sizes are in
8
+ `manifest.json` (same schema as the 3D folders, per-axis `input_size` / `output_size`).
9
+
10
+ cellmap-flow serverless: Input size `1,N,N`, Output size `1,N-88,N-88`, voxel 16,16,16, Channels 3, Has channel axis true.
{2d/setup_53 → setup_53_2d}/manifest.json RENAMED
@@ -1,15 +1,25 @@
1
  {
2
- "model": "setup_53",
3
- "kind": "2D slice student distilled from the 3D model (train_2d_distill.py)",
4
- "checkpoint": "runs/setup_53_2d/student_20000.pt",
5
- "step": 20000,
 
6
  "channels": [
7
  "mito_aff_z",
8
  "mito_aff_y",
9
  "mito_aff_x"
10
  ],
11
- "voxel_size_nm": 16,
12
- "io": "input float32 [1,1,1,N,N] (one z-slice); output float32 raw logits [1,3,1,N-88,N-88]",
 
 
 
 
 
 
 
 
 
13
  "input_norm": [
14
  {
15
  "name": "MinMaxNormalizer",
@@ -21,56 +31,115 @@
21
  "expression": "2*x-1"
22
  }
23
  ],
 
 
 
 
 
24
  "variants": [
25
  {
 
26
  "variant": "fp32",
27
- "input_size": 300,
28
- "output_size": 212,
 
 
 
 
 
 
 
 
29
  "file": "setup_53_mito_affinities_16nm_2d_in300_fp32.onnx",
30
  "file_mb": 7.75,
31
  "max_abs": 6.103515625e-05,
32
  "flip_frac": 0.0
33
  },
34
  {
 
35
  "variant": "fp16",
36
- "input_size": 300,
37
- "output_size": 212,
 
 
 
 
 
 
 
 
38
  "file": "setup_53_mito_affinities_16nm_2d_in300_fp16.onnx",
39
  "file_mb": 3.9,
40
  "max_abs": 0.13983917236328125,
41
  "flip_frac": 5.1916459000830666e-05
42
  },
43
  {
 
44
  "variant": "fp32",
45
- "input_size": 556,
46
- "output_size": 468,
 
 
 
 
 
 
 
 
47
  "file": "setup_53_mito_affinities_16nm_2d_in556_fp32.onnx",
48
  "file_mb": 7.75,
49
  "max_abs": 6.103515625e-05,
50
  "flip_frac": 0.0
51
  },
52
  {
 
53
  "variant": "fp16",
54
- "input_size": 556,
55
- "output_size": 468,
 
 
 
 
 
 
 
 
56
  "file": "setup_53_mito_affinities_16nm_2d_in556_fp16.onnx",
57
  "file_mb": 3.9,
58
  "max_abs": 0.15328407287597656,
59
  "flip_frac": 4.717900017045316e-05
60
  },
61
  {
 
62
  "variant": "fp32",
63
- "input_size": 1068,
64
- "output_size": 980,
 
 
 
 
 
 
 
 
65
  "file": "setup_53_mito_affinities_16nm_2d_in1068_fp32.onnx",
66
  "file_mb": 7.75,
67
  "max_abs": 6.866455078125e-05,
68
  "flip_frac": 0.0
69
  },
70
  {
 
71
  "variant": "fp16",
72
- "input_size": 1068,
73
- "output_size": 980,
 
 
 
 
 
 
 
 
74
  "file": "setup_53_mito_affinities_16nm_2d_in1068_fp16.onnx",
75
  "file_mb": 3.9,
76
  "max_abs": 0.16084671020507812,
 
1
  {
2
+ "model": "setup_53_2d",
3
+ "task": "mito_affinities",
4
+ "architecture": "Unet3dIso (2D-collapsed)",
5
+ "checkpoint": "student_20000",
6
+ "params": 1927907,
7
  "channels": [
8
  "mito_aff_z",
9
  "mito_aff_y",
10
  "mito_aff_x"
11
  ],
12
+ "input_voxel_size_nm": [
13
+ 16,
14
+ 16,
15
+ 16
16
+ ],
17
+ "output_voxel_size_nm": [
18
+ 16,
19
+ 16,
20
+ 16
21
+ ],
22
+ "output": "raw logits (apply sigmoid / threshold at 0)",
23
  "input_norm": [
24
  {
25
  "name": "MinMaxNormalizer",
 
31
  "expression": "2*x-1"
32
  }
33
  ],
34
+ "io": "input 'input' float32 [1,1,1,y,x] (one z-slice); output 'output' float32 [1,C,1,y',x']",
35
+ "kind": "2D slice student distilled from the 3D model (train_2d_distill.py)",
36
+ "step": 20000,
37
+ "distilled_from": "setup_53",
38
+ "distilled_from_repo": "cellmap/mito-aff-unetiso-setup-53",
39
  "variants": [
40
  {
41
+ "model": "setup_53_2d",
42
  "variant": "fp32",
43
+ "input_size": [
44
+ 1,
45
+ 300,
46
+ 300
47
+ ],
48
+ "output_size": [
49
+ 1,
50
+ 212,
51
+ 212
52
+ ],
53
  "file": "setup_53_mito_affinities_16nm_2d_in300_fp32.onnx",
54
  "file_mb": 7.75,
55
  "max_abs": 6.103515625e-05,
56
  "flip_frac": 0.0
57
  },
58
  {
59
+ "model": "setup_53_2d",
60
  "variant": "fp16",
61
+ "input_size": [
62
+ 1,
63
+ 300,
64
+ 300
65
+ ],
66
+ "output_size": [
67
+ 1,
68
+ 212,
69
+ 212
70
+ ],
71
  "file": "setup_53_mito_affinities_16nm_2d_in300_fp16.onnx",
72
  "file_mb": 3.9,
73
  "max_abs": 0.13983917236328125,
74
  "flip_frac": 5.1916459000830666e-05
75
  },
76
  {
77
+ "model": "setup_53_2d",
78
  "variant": "fp32",
79
+ "input_size": [
80
+ 1,
81
+ 556,
82
+ 556
83
+ ],
84
+ "output_size": [
85
+ 1,
86
+ 468,
87
+ 468
88
+ ],
89
  "file": "setup_53_mito_affinities_16nm_2d_in556_fp32.onnx",
90
  "file_mb": 7.75,
91
  "max_abs": 6.103515625e-05,
92
  "flip_frac": 0.0
93
  },
94
  {
95
+ "model": "setup_53_2d",
96
  "variant": "fp16",
97
+ "input_size": [
98
+ 1,
99
+ 556,
100
+ 556
101
+ ],
102
+ "output_size": [
103
+ 1,
104
+ 468,
105
+ 468
106
+ ],
107
  "file": "setup_53_mito_affinities_16nm_2d_in556_fp16.onnx",
108
  "file_mb": 3.9,
109
  "max_abs": 0.15328407287597656,
110
  "flip_frac": 4.717900017045316e-05
111
  },
112
  {
113
+ "model": "setup_53_2d",
114
  "variant": "fp32",
115
+ "input_size": [
116
+ 1,
117
+ 1068,
118
+ 1068
119
+ ],
120
+ "output_size": [
121
+ 1,
122
+ 980,
123
+ 980
124
+ ],
125
  "file": "setup_53_mito_affinities_16nm_2d_in1068_fp32.onnx",
126
  "file_mb": 7.75,
127
  "max_abs": 6.866455078125e-05,
128
  "flip_frac": 0.0
129
  },
130
  {
131
+ "model": "setup_53_2d",
132
  "variant": "fp16",
133
+ "input_size": [
134
+ 1,
135
+ 1068,
136
+ 1068
137
+ ],
138
+ "output_size": [
139
+ 1,
140
+ 980,
141
+ 980
142
+ ],
143
  "file": "setup_53_mito_affinities_16nm_2d_in1068_fp16.onnx",
144
  "file_mb": 3.9,
145
  "max_abs": 0.16084671020507812,
{2d/setup_53 → setup_53_2d}/setup_53_mito_affinities_16nm_2d_in1068_fp16.onnx RENAMED
File without changes
{2d/setup_53 → setup_53_2d}/setup_53_mito_affinities_16nm_2d_in1068_fp32.onnx RENAMED
File without changes
{2d/setup_53 → setup_53_2d}/setup_53_mito_affinities_16nm_2d_in300_fp16.onnx RENAMED
File without changes
{2d/setup_53 → setup_53_2d}/setup_53_mito_affinities_16nm_2d_in300_fp32.onnx RENAMED
File without changes
{2d/setup_53 → setup_53_2d}/setup_53_mito_affinities_16nm_2d_in556_fp16.onnx RENAMED
File without changes
{2d/setup_53 → setup_53_2d}/setup_53_mito_affinities_16nm_2d_in556_fp32.onnx RENAMED
File without changes
setup_54/manifest.json CHANGED
@@ -177,5 +177,6 @@
177
  "flip_frac": 7.592322643343052e-05,
178
  "ort_cpu_s": 0.96
179
  }
180
- ]
 
181
  }
 
177
  "flip_frac": 7.592322643343052e-05,
178
  "ort_cpu_s": 0.96
179
  }
180
+ ],
181
+ "source_repo": "cellmap/mito-aff-resunet-setup-54"
182
  }
setup_54_2d/README.md ADDED
@@ -0,0 +1,10 @@
 
 
 
 
 
 
 
 
 
 
 
1
+ # setup_54_2d — 2D-slice mito student (experimental)
2
+
3
+ One z-slice in, one slice out: `input` float32 `[1,1,1,N,N]` → `output` float32 raw logits `[1,3,1,N-88,N-88]`
4
+ (mito affinities z, y, x; threshold at 0). 16 nm, input norm `uint8/255*2-1`.
5
+
6
+ Distilled from the 3D model `setup_54` (PyTorch: `cellmap/mito-aff-resunet-setup-54`): every 3D kernel collapsed to 2D (sum of depth taps) and
7
+ fine-tuned to reproduce the 3D predictions slice by slice. Training step, per-file fidelity and sizes are in
8
+ `manifest.json` (same schema as the 3D folders, per-axis `input_size` / `output_size`).
9
+
10
+ cellmap-flow serverless: Input size `1,N,N`, Output size `1,N-88,N-88`, voxel 16,16,16, Channels 3, Has channel axis true.
{2d/setup_54 → setup_54_2d}/manifest.json RENAMED
@@ -1,15 +1,25 @@
1
  {
2
- "model": "setup_54",
3
- "kind": "2D slice student distilled from the 3D model (train_2d_distill.py)",
4
- "checkpoint": "runs/setup_54_2d/student_20000.pt",
5
- "step": 20000,
 
6
  "channels": [
7
  "mito_aff_z",
8
  "mito_aff_y",
9
  "mito_aff_x"
10
  ],
11
- "voxel_size_nm": 16,
12
- "io": "input float32 [1,1,1,N,N] (one z-slice); output float32 raw logits [1,3,1,N-88,N-88]",
 
 
 
 
 
 
 
 
 
13
  "input_norm": [
14
  {
15
  "name": "MinMaxNormalizer",
@@ -21,56 +31,115 @@
21
  "expression": "2*x-1"
22
  }
23
  ],
 
 
 
 
 
24
  "variants": [
25
  {
 
26
  "variant": "fp32",
27
- "input_size": 300,
28
- "output_size": 212,
 
 
 
 
 
 
 
 
29
  "file": "setup_54_mito_affinities_16nm_2d_in300_fp32.onnx",
30
  "file_mb": 15.05,
31
  "max_abs": 1.9550323486328125e-05,
32
  "flip_frac": 0.0
33
  },
34
  {
 
35
  "variant": "fp16",
36
- "input_size": 300,
37
- "output_size": 212,
 
 
 
 
 
 
 
 
38
  "file": "setup_54_mito_affinities_16nm_2d_in300_fp16.onnx",
39
  "file_mb": 7.56,
40
  "max_abs": 0.012979507446289062,
41
  "flip_frac": 0.0
42
  },
43
  {
 
44
  "variant": "fp32",
45
- "input_size": 556,
46
- "output_size": 468,
 
 
 
 
 
 
 
 
47
  "file": "setup_54_mito_affinities_16nm_2d_in556_fp32.onnx",
48
  "file_mb": 15.05,
49
  "max_abs": 4.76837158203125e-05,
50
  "flip_frac": 0.0
51
  },
52
  {
 
53
  "variant": "fp16",
54
- "input_size": 556,
55
- "output_size": 468,
 
 
 
 
 
 
 
 
56
  "file": "setup_54_mito_affinities_16nm_2d_in556_fp16.onnx",
57
  "file_mb": 7.56,
58
  "max_abs": 0.024660348892211914,
59
  "flip_frac": 1.2175225850439526e-05
60
  },
61
  {
 
62
  "variant": "fp32",
63
- "input_size": 1060,
64
- "output_size": 972,
 
 
 
 
 
 
 
 
65
  "file": "setup_54_mito_affinities_16nm_2d_in1060_fp32.onnx",
66
  "file_mb": 15.05,
67
  "max_abs": 0.0002117156982421875,
68
  "flip_frac": 0.0
69
  },
70
  {
 
71
  "variant": "fp16",
72
- "input_size": 1060,
73
- "output_size": 972,
 
 
 
 
 
 
 
 
74
  "file": "setup_54_mito_affinities_16nm_2d_in1060_fp16.onnx",
75
  "file_mb": 7.56,
76
  "max_abs": 0.02630472183227539,
 
1
  {
2
+ "model": "setup_54_2d",
3
+ "task": "mito_affinities",
4
+ "architecture": "ResUNet3DValid (2D-collapsed)",
5
+ "checkpoint": "student_20000",
6
+ "params": 3750963,
7
  "channels": [
8
  "mito_aff_z",
9
  "mito_aff_y",
10
  "mito_aff_x"
11
  ],
12
+ "input_voxel_size_nm": [
13
+ 16,
14
+ 16,
15
+ 16
16
+ ],
17
+ "output_voxel_size_nm": [
18
+ 16,
19
+ 16,
20
+ 16
21
+ ],
22
+ "output": "raw logits (apply sigmoid / threshold at 0)",
23
  "input_norm": [
24
  {
25
  "name": "MinMaxNormalizer",
 
31
  "expression": "2*x-1"
32
  }
33
  ],
34
+ "io": "input 'input' float32 [1,1,1,y,x] (one z-slice); output 'output' float32 [1,C,1,y',x']",
35
+ "kind": "2D slice student distilled from the 3D model (train_2d_distill.py)",
36
+ "step": 20000,
37
+ "distilled_from": "setup_54",
38
+ "distilled_from_repo": "cellmap/mito-aff-resunet-setup-54",
39
  "variants": [
40
  {
41
+ "model": "setup_54_2d",
42
  "variant": "fp32",
43
+ "input_size": [
44
+ 1,
45
+ 300,
46
+ 300
47
+ ],
48
+ "output_size": [
49
+ 1,
50
+ 212,
51
+ 212
52
+ ],
53
  "file": "setup_54_mito_affinities_16nm_2d_in300_fp32.onnx",
54
  "file_mb": 15.05,
55
  "max_abs": 1.9550323486328125e-05,
56
  "flip_frac": 0.0
57
  },
58
  {
59
+ "model": "setup_54_2d",
60
  "variant": "fp16",
61
+ "input_size": [
62
+ 1,
63
+ 300,
64
+ 300
65
+ ],
66
+ "output_size": [
67
+ 1,
68
+ 212,
69
+ 212
70
+ ],
71
  "file": "setup_54_mito_affinities_16nm_2d_in300_fp16.onnx",
72
  "file_mb": 7.56,
73
  "max_abs": 0.012979507446289062,
74
  "flip_frac": 0.0
75
  },
76
  {
77
+ "model": "setup_54_2d",
78
  "variant": "fp32",
79
+ "input_size": [
80
+ 1,
81
+ 556,
82
+ 556
83
+ ],
84
+ "output_size": [
85
+ 1,
86
+ 468,
87
+ 468
88
+ ],
89
  "file": "setup_54_mito_affinities_16nm_2d_in556_fp32.onnx",
90
  "file_mb": 15.05,
91
  "max_abs": 4.76837158203125e-05,
92
  "flip_frac": 0.0
93
  },
94
  {
95
+ "model": "setup_54_2d",
96
  "variant": "fp16",
97
+ "input_size": [
98
+ 1,
99
+ 556,
100
+ 556
101
+ ],
102
+ "output_size": [
103
+ 1,
104
+ 468,
105
+ 468
106
+ ],
107
  "file": "setup_54_mito_affinities_16nm_2d_in556_fp16.onnx",
108
  "file_mb": 7.56,
109
  "max_abs": 0.024660348892211914,
110
  "flip_frac": 1.2175225850439526e-05
111
  },
112
  {
113
+ "model": "setup_54_2d",
114
  "variant": "fp32",
115
+ "input_size": [
116
+ 1,
117
+ 1060,
118
+ 1060
119
+ ],
120
+ "output_size": [
121
+ 1,
122
+ 972,
123
+ 972
124
+ ],
125
  "file": "setup_54_mito_affinities_16nm_2d_in1060_fp32.onnx",
126
  "file_mb": 15.05,
127
  "max_abs": 0.0002117156982421875,
128
  "flip_frac": 0.0
129
  },
130
  {
131
+ "model": "setup_54_2d",
132
  "variant": "fp16",
133
+ "input_size": [
134
+ 1,
135
+ 1060,
136
+ 1060
137
+ ],
138
+ "output_size": [
139
+ 1,
140
+ 972,
141
+ 972
142
+ ],
143
  "file": "setup_54_mito_affinities_16nm_2d_in1060_fp16.onnx",
144
  "file_mb": 7.56,
145
  "max_abs": 0.02630472183227539,
{2d/setup_54 → setup_54_2d}/setup_54_mito_affinities_16nm_2d_in1060_fp16.onnx RENAMED
File without changes
{2d/setup_54 → setup_54_2d}/setup_54_mito_affinities_16nm_2d_in1060_fp32.onnx RENAMED
File without changes
{2d/setup_54 → setup_54_2d}/setup_54_mito_affinities_16nm_2d_in300_fp16.onnx RENAMED
File without changes
{2d/setup_54 → setup_54_2d}/setup_54_mito_affinities_16nm_2d_in300_fp32.onnx RENAMED
File without changes
{2d/setup_54 → setup_54_2d}/setup_54_mito_affinities_16nm_2d_in556_fp16.onnx RENAMED
File without changes
{2d/setup_54 → setup_54_2d}/setup_54_mito_affinities_16nm_2d_in556_fp32.onnx RENAMED
File without changes
setup_55/manifest.json CHANGED
@@ -175,5 +175,6 @@
175
  "flip_frac": 0.0,
176
  "ort_cpu_s": 0.72
177
  }
178
- ]
 
179
  }
 
175
  "flip_frac": 0.0,
176
  "ort_cpu_s": 0.72
177
  }
178
+ ],
179
+ "source_repo": "cellmap/nuc-unetiso-setup-55"
180
  }
setup_56/manifest.json CHANGED
@@ -175,5 +175,6 @@
175
  "flip_frac": 0.0006377551020408163,
176
  "ort_cpu_s": 0.88
177
  }
178
- ]
 
179
  }
 
175
  "flip_frac": 0.0006377551020408163,
176
  "ort_cpu_s": 0.88
177
  }
178
+ ],
179
+ "source_repo": "cellmap/nuc-resunet-setup-56"
180
  }
setup_61/manifest.json CHANGED
@@ -175,5 +175,6 @@
175
  "flip_frac": 0.0,
176
  "ort_cpu_s": 0.98
177
  }
178
- ]
 
179
  }
 
175
  "flip_frac": 0.0,
176
  "ort_cpu_s": 0.98
177
  }
178
+ ],
179
+ "source_repo": "cellmap/nuc-resunet-setup-61"
180
  }
setup_67/manifest.json CHANGED
@@ -175,5 +175,6 @@
175
  "flip_frac": 0.002824344023323615,
176
  "ort_cpu_s": 0.88
177
  }
178
- ]
 
179
  }
 
175
  "flip_frac": 0.002824344023323615,
176
  "ort_cpu_s": 0.88
177
  }
178
+ ],
179
+ "source_repo": "cellmap/er-resunet-setup-67"
180
  }