Skip to content

Commit ca70e08

Browse files
author
Donglai Wei
committed
update liconn
1 parent bd2aea2 commit ca70e08

6 files changed

Lines changed: 279 additions & 152 deletions
Lines changed: 4 additions & 150 deletions
Original file line numberDiff line numberDiff line change
@@ -1,195 +1,49 @@
1-
_base_: bases/mednext.yaml
1+
_base_: neuron_nisb_common.yaml
22

33
experiment_name: neuron_nisb_40nm_common_mednext_b_sdt
44
description: NISB neuron instance segmentation (BANIS-style) with MedNeXt-B, affinity + SDT (40nm)
55

6-
system:
7-
training:
8-
num_gpus: -1
9-
num_workers: -1
10-
batch_size: 4
11-
inference:
12-
num_gpus: 1
13-
num_workers: 4
14-
batch_size: 4
15-
seed: 42
166

177
model:
188
input_size: [128, 128, 128]
199
output_size: [128, 128, 128]
20-
in_channels: 1
21-
out_channels: 7
22-
mednext_size: B
23-
mednext_kernel_size: 3
24-
mednext_dim: 3d
25-
mednext_checkpoint_style: outside_block
26-
deep_supervision: false
2710

28-
loss_functions:
29-
- WeightedBCEWithLogitsLoss
30-
- WeightedMSELoss
31-
loss_weights: [1.0, 1.0]
32-
loss_kwargs:
33-
- {}
34-
- {tanh: true}
35-
36-
multi_task_config:
37-
- [0, 6, affinity, [0]]
38-
- [6, 7, sdt, [1]]
3911

4012
data:
41-
# BANIS command mapping:
42-
# --base_data_path /projects/weilab/dataset/nisb
43-
# --data_setting base
44-
45-
# BANIS data.zarr arrays are under each seed directory.
4613
train_image: seed*/data.zarr/img_40-36-36nm.h5
4714
train_label: seed*/data.zarr/seg_40-36-36nm.h5
4815
val_image: seed*/data.zarr/img_40-36-36nm.h5
4916
val_label: seed*/data.zarr/seg_40-36-36nm.h5
50-
iter_num_per_epoch: 200
5117

5218
train_resolution: [36, 36, 40]
5319
val_resolution: [36, 36, 40]
5420

5521
patch_size: [128, 128, 128]
56-
use_preloaded_cache_train: true
57-
use_preloaded_cache_val: true
58-
use_cache: false
59-
persistent_workers: true
6022

61-
image_transform:
62-
normalize: "0-1"
63-
clip_percentile_low: 0.0
64-
clip_percentile_high: 1.0
6523

6624
label_transform:
6725
targets:
6826
- name: affinity
6927
kwargs:
70-
long_range: 10
28+
long_range: 3
7129
- name: skeleton_aware_edt
7230
kwargs:
7331
resolution: [36, 36, 40]
7432
alpha: 0.8
7533
bg_value: -1.0
7634
relabel: true
7735

78-
augmentation:
79-
preset: some
80-
81-
flip:
82-
enabled: true
83-
prob: 0.5
84-
85-
rotate:
86-
enabled: true
87-
prob: 0.5
88-
89-
affine:
90-
enabled: true
91-
prob: 0.5
92-
rotate_range: [3.1416, 3.1416, 3.1416]
93-
scale_range: [0.2, 0.2, 0.2]
94-
shear_range: [0.5, 0.5, 0.5]
95-
96-
intensity:
97-
enabled: true
98-
gaussian_noise_prob: 0.5
99-
gaussian_noise_std: 0.5
100-
shift_intensity_prob: 0.5
101-
shift_intensity_offset: 0.1
102-
contrast_prob: 0.5
103-
contrast_range: [0.9, 1.1]
104-
105-
106-
optimization:
107-
max_epochs: 500
108-
gradient_clip_val: 1.0
109-
accumulate_grad_batches: 1
110-
precision: "16-mixed"
111-
log_every_n_steps: 100
112-
val_check_interval: 1
113-
num_sanity_val_steps: 0
114-
115-
optimizer:
116-
name: AdamW
117-
lr: 1.0e-3
118-
weight_decay: 1.0e-2
119-
betas: [0.9, 0.999]
120-
eps: 1.0e-8
121-
122-
scheduler:
123-
name: CosineAnnealingLR
124-
t_max: 50000
125-
interval: step
126-
frequency: 1
127-
36+
12837
monitor:
129-
logging:
130-
scalar:
131-
loss: [train_loss_total_epoch, val_loss_total, train_loss_affinity_total, train_loss_sdt_total]
132-
loss_every_n_steps: 100
133-
val_check_interval: 1.0
134-
images:
135-
enabled: true
136-
max_images: 8
137-
num_slices: 8
138-
log_every_n_epochs: 1
139-
channel_mode: all
140-
14138
checkpoint:
142-
monitor: val_loss_total
143-
mode: min
144-
save_top_k: 100
145-
save_last: true
146-
save_every_n_epochs: 5
14739
dirpath: outputs/neuron_nisb_base_40nm_mednext_b_sdt/checkpoints/
148-
use_timestamp: true
149-
150-
early_stopping:
151-
enabled: false
152-
40+
15341
test:
15442
data:
15543
test_image: seed101/data.zarr/img_40-36-36nm.h5
15644
test_label: seed101/data.zarr/seg_40-36-36nm.h5
15745
test_resolution: [36, 36, 40]
158-
output_path: outputs/neuron_nisb_base_40nm_mednext_b_sdt/results_seed101/
159-
160-
decoding:
161-
- name: decode_affinity_cc
162-
kwargs:
163-
threshold: 0.95
164-
165-
evaluation:
166-
enabled: false
16746

16847
inference:
16948
sliding_window:
17049
window_size: [128, 128, 128]
171-
sw_batch_size: 4
172-
overlap: 0.5
173-
blending: gaussian
174-
sigma_scale: 0.25
175-
padding_mode: replicate
176-
keep_input_on_cpu: true
177-
sw_device: cuda
178-
output_device: cpu
179-
180-
test_time_augmentation:
181-
enabled: false
182-
flip_axes: null
183-
rotation90_axes: null
184-
channel_activations:
185-
- [0, 6, sigmoid]
186-
- [6, 7, tanh]
187-
select_channel: [0,1,2,6]
188-
ensemble_mode: mean
189-
apply_mask: false
190-
191-
save_prediction:
192-
enabled: true
193-
intensity_scale: -1.0
194-
intensity_dtype: float32
195-
output_formats: [h5]

tutorials/neuron_nisb_40nm_liconn.yaml

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,6 @@ system:
88
batch_size: 4
99

1010

11-
1211
data:
1312
train_path: /projects/weilab/dataset/nisb/liconn/train
1413
val_path: /projects/weilab/dataset/nisb/liconn/val
@@ -20,7 +19,7 @@ data:
2019
long_range: 3
2120
- name: skeleton_aware_edt
2221
kwargs:
23-
resolution: [36, 36, 40]
22+
resolution: [36, 36, 24]
2423
alpha: 0.8
2524
bg_value: -1.0
2625
relabel: true
Lines changed: 53 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,53 @@
1+
_base_: neuron_nisb_common.yaml
2+
3+
experiment_name: neuron_nisb_9nm_common_mednext_b_sdt
4+
description: NISB neuron instance segmentation (BANIS-style) with MedNeXt-B, affinity + SDT (9nm)
5+
6+
7+
model:
8+
input_size: [32, 256, 256]
9+
output_size: [32, 256, 256]
10+
11+
12+
data:
13+
train_image: seed*/data.zarr/img
14+
train_label: seed*/data.zarr/seg
15+
val_image: seed*/data.zarr/img
16+
val_label: seed*/data.zarr/seg
17+
patch_size: [32, 256, 256]
18+
train_resolution: [20, 9, 9]
19+
val_resolution: [20, 9, 9]
20+
# NISB zarr arrays are stored as XYZ; model/data pipeline expects ZYX.
21+
train_transpose: [2, 1, 0]
22+
val_transpose: [2, 1, 0]
23+
24+
25+
use_lazy_zarr: true
26+
use_preloaded_cache_train: false
27+
use_preloaded_cache_val: false
28+
29+
label_transform:
30+
targets:
31+
- name: affinity
32+
kwargs:
33+
long_range: 3
34+
- name: skeleton_aware_edt
35+
kwargs:
36+
resolution: [20, 9, 9]
37+
alpha: 0.8
38+
bg_value: -1.0
39+
relabel: true
40+
41+
monitor:
42+
checkpoint:
43+
dirpath: outputs/neuron_nisb_9nm_mednext_b_sdt/checkpoints/
44+
45+
test:
46+
data:
47+
test_image: seed101/data.zarr/img
48+
test_label: seed101/data.zarr/seg
49+
test_resolution: [20, 9, 9]
50+
51+
inference:
52+
sliding_window:
53+
window_size: [32, 256, 256]
Lines changed: 53 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,53 @@
1+
_base_: neuron_nisb_9nm_common.yaml
2+
3+
experiment_name: neuron_nisb_9nm_liconn_mednext_b_sdt
4+
description: NISB Liconn neuron instance segmentation (BANIS-style) with MedNeXt-B, affinity + SDT (9nm)
5+
6+
system:
7+
training:
8+
batch_size: 1
9+
10+
11+
12+
model:
13+
input_size: [192, 192, 192]
14+
output_size: [192, 192, 192]
15+
16+
data:
17+
train_path: /projects/weilab/dataset/nisb/liconn/train
18+
val_path: /projects/weilab/dataset/nisb/liconn/val
19+
20+
train_resolution: [12, 9, 9]
21+
val_resolution: [12, 9, 9]
22+
patch_size: [192, 192, 192]
23+
24+
25+
26+
image_transform:
27+
normalize: "0-1"
28+
clip_percentile_low: 0.0
29+
clip_percentile_high: 1.0
30+
31+
label_transform:
32+
targets:
33+
- name: affinity
34+
kwargs:
35+
long_range: 3
36+
- name: skeleton_aware_edt
37+
kwargs:
38+
resolution: [12, 9, 9]
39+
alpha: 0.8
40+
bg_value: -1.0
41+
relabel: true
42+
optimization:
43+
accumulate_grad_batches: 2
44+
45+
monitor:
46+
checkpoint:
47+
dirpath: outputs/neuron_nisb_9nm_liconn_mednext_b_sdt/checkpoints/
48+
49+
test:
50+
data:
51+
test_path: /projects/weilab/dataset/nisb/liconn/test/
52+
test_resolution: [12, 9, 9]
53+
output_path: outputs/neuron_nisb_9nm_liconn_mednext_b_sdt/results_seed101/

0 commit comments

Comments
 (0)