Add IMPACT-Synth training config (losses + optimizer) so the app is fine-tunable
Browse filesRestore the training loss the shipped prediction config lacked: MAE + SAM_Perceptual (SAM2.1) + L1 on the Tanh head vs CT, a masked MAE metric, AdamW + StepLR. Output key Tanh verified against UNetPlusPlus.yml. Enables fine_tune (was a no-op RESUME with outputs_criterions: None).
- CBCT/Config.yml +62 -1
- Finetune/Config.yml +62 -1
- MR/Config.yml +62 -1
- MR_CBCT/Config.yml +62 -1
CBCT/Config.yml
CHANGED
|
@@ -2,7 +2,68 @@ Trainer:
|
|
| 2 |
Model:
|
| 3 |
classpath: UNetPlusPlus.yml
|
| 4 |
UNetPlusPlus:
|
| 5 |
-
outputs_criterions:
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 6 |
Dataset:
|
| 7 |
groups_src:
|
| 8 |
MASK:
|
|
|
|
| 2 |
Model:
|
| 3 |
classpath: UNetPlusPlus.yml
|
| 4 |
UNetPlusPlus:
|
| 5 |
+
outputs_criterions:
|
| 6 |
+
Tanh:
|
| 7 |
+
targets_criterions:
|
| 8 |
+
CT:
|
| 9 |
+
criterions_loader:
|
| 10 |
+
MAE:
|
| 11 |
+
is_loss: true
|
| 12 |
+
schedulers: {Constant: {nb_step: 0, value: 1}}
|
| 13 |
+
group: 0
|
| 14 |
+
start: 0
|
| 15 |
+
stop: None
|
| 16 |
+
accumulation: false
|
| 17 |
+
reduction: mean
|
| 18 |
+
SAM_Perceptual:
|
| 19 |
+
is_loss: true
|
| 20 |
+
schedulers: {Constant: {nb_step: 0, value: 1}}
|
| 21 |
+
group: 0
|
| 22 |
+
start: 0
|
| 23 |
+
stop: None
|
| 24 |
+
accumulation: false
|
| 25 |
+
train: true
|
| 26 |
+
model_name: SAM2.1_Small.pt
|
| 27 |
+
weights: [1, 1, 1]
|
| 28 |
+
torch:nn:L1Loss:
|
| 29 |
+
size_average: None
|
| 30 |
+
reduce: None
|
| 31 |
+
reduction: mean
|
| 32 |
+
schedulers: {Constant: {nb_step: 0, value: 1}}
|
| 33 |
+
is_loss: true
|
| 34 |
+
group: 0
|
| 35 |
+
start: 0
|
| 36 |
+
stop: None
|
| 37 |
+
accumulation: false
|
| 38 |
+
CT;MASK:
|
| 39 |
+
criterions_loader:
|
| 40 |
+
MAE:
|
| 41 |
+
schedulers: {Constant: {nb_step: 0, value: 1}}
|
| 42 |
+
is_loss: false
|
| 43 |
+
group: 0
|
| 44 |
+
start: 0
|
| 45 |
+
stop: None
|
| 46 |
+
accumulation: false
|
| 47 |
+
reduction: mean
|
| 48 |
+
optimizer:
|
| 49 |
+
name: AdamW
|
| 50 |
+
lr: 0.001
|
| 51 |
+
betas: [0.9, 0.999]
|
| 52 |
+
eps: 1e-08
|
| 53 |
+
weight_decay: 0.001
|
| 54 |
+
amsgrad: false
|
| 55 |
+
maximize: false
|
| 56 |
+
foreach: None
|
| 57 |
+
capturable: false
|
| 58 |
+
differentiable: false
|
| 59 |
+
fused: None
|
| 60 |
+
schedulers:
|
| 61 |
+
StepLR:
|
| 62 |
+
step_size: 10
|
| 63 |
+
gamma: 0.75
|
| 64 |
+
last_epoch: -1
|
| 65 |
+
verbose: deprecated
|
| 66 |
+
nb_step: 0
|
| 67 |
Dataset:
|
| 68 |
groups_src:
|
| 69 |
MASK:
|
Finetune/Config.yml
CHANGED
|
@@ -2,7 +2,68 @@ Trainer:
|
|
| 2 |
Model:
|
| 3 |
classpath: UNetPlusPlus.yml
|
| 4 |
UNetPlusPlus:
|
| 5 |
-
outputs_criterions:
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 6 |
Dataset:
|
| 7 |
groups_src:
|
| 8 |
MASK:
|
|
|
|
| 2 |
Model:
|
| 3 |
classpath: UNetPlusPlus.yml
|
| 4 |
UNetPlusPlus:
|
| 5 |
+
outputs_criterions:
|
| 6 |
+
Tanh:
|
| 7 |
+
targets_criterions:
|
| 8 |
+
CT:
|
| 9 |
+
criterions_loader:
|
| 10 |
+
MAE:
|
| 11 |
+
is_loss: true
|
| 12 |
+
schedulers: {Constant: {nb_step: 0, value: 1}}
|
| 13 |
+
group: 0
|
| 14 |
+
start: 0
|
| 15 |
+
stop: None
|
| 16 |
+
accumulation: false
|
| 17 |
+
reduction: mean
|
| 18 |
+
SAM_Perceptual:
|
| 19 |
+
is_loss: true
|
| 20 |
+
schedulers: {Constant: {nb_step: 0, value: 1}}
|
| 21 |
+
group: 0
|
| 22 |
+
start: 0
|
| 23 |
+
stop: None
|
| 24 |
+
accumulation: false
|
| 25 |
+
train: true
|
| 26 |
+
model_name: SAM2.1_Small.pt
|
| 27 |
+
weights: [1, 1, 1]
|
| 28 |
+
torch:nn:L1Loss:
|
| 29 |
+
size_average: None
|
| 30 |
+
reduce: None
|
| 31 |
+
reduction: mean
|
| 32 |
+
schedulers: {Constant: {nb_step: 0, value: 1}}
|
| 33 |
+
is_loss: true
|
| 34 |
+
group: 0
|
| 35 |
+
start: 0
|
| 36 |
+
stop: None
|
| 37 |
+
accumulation: false
|
| 38 |
+
CT;MASK:
|
| 39 |
+
criterions_loader:
|
| 40 |
+
MAE:
|
| 41 |
+
schedulers: {Constant: {nb_step: 0, value: 1}}
|
| 42 |
+
is_loss: false
|
| 43 |
+
group: 0
|
| 44 |
+
start: 0
|
| 45 |
+
stop: None
|
| 46 |
+
accumulation: false
|
| 47 |
+
reduction: mean
|
| 48 |
+
optimizer:
|
| 49 |
+
name: AdamW
|
| 50 |
+
lr: 0.001
|
| 51 |
+
betas: [0.9, 0.999]
|
| 52 |
+
eps: 1e-08
|
| 53 |
+
weight_decay: 0.001
|
| 54 |
+
amsgrad: false
|
| 55 |
+
maximize: false
|
| 56 |
+
foreach: None
|
| 57 |
+
capturable: false
|
| 58 |
+
differentiable: false
|
| 59 |
+
fused: None
|
| 60 |
+
schedulers:
|
| 61 |
+
StepLR:
|
| 62 |
+
step_size: 10
|
| 63 |
+
gamma: 0.75
|
| 64 |
+
last_epoch: -1
|
| 65 |
+
verbose: deprecated
|
| 66 |
+
nb_step: 0
|
| 67 |
Dataset:
|
| 68 |
groups_src:
|
| 69 |
MASK:
|
MR/Config.yml
CHANGED
|
@@ -2,7 +2,68 @@ Trainer:
|
|
| 2 |
Model:
|
| 3 |
classpath: UNetPlusPlus.yml
|
| 4 |
UNetPlusPlus:
|
| 5 |
-
outputs_criterions:
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 6 |
Dataset:
|
| 7 |
groups_src:
|
| 8 |
MASK:
|
|
|
|
| 2 |
Model:
|
| 3 |
classpath: UNetPlusPlus.yml
|
| 4 |
UNetPlusPlus:
|
| 5 |
+
outputs_criterions:
|
| 6 |
+
Tanh:
|
| 7 |
+
targets_criterions:
|
| 8 |
+
CT:
|
| 9 |
+
criterions_loader:
|
| 10 |
+
MAE:
|
| 11 |
+
is_loss: true
|
| 12 |
+
schedulers: {Constant: {nb_step: 0, value: 1}}
|
| 13 |
+
group: 0
|
| 14 |
+
start: 0
|
| 15 |
+
stop: None
|
| 16 |
+
accumulation: false
|
| 17 |
+
reduction: mean
|
| 18 |
+
SAM_Perceptual:
|
| 19 |
+
is_loss: true
|
| 20 |
+
schedulers: {Constant: {nb_step: 0, value: 1}}
|
| 21 |
+
group: 0
|
| 22 |
+
start: 0
|
| 23 |
+
stop: None
|
| 24 |
+
accumulation: false
|
| 25 |
+
train: true
|
| 26 |
+
model_name: SAM2.1_Small.pt
|
| 27 |
+
weights: [1, 1, 1]
|
| 28 |
+
torch:nn:L1Loss:
|
| 29 |
+
size_average: None
|
| 30 |
+
reduce: None
|
| 31 |
+
reduction: mean
|
| 32 |
+
schedulers: {Constant: {nb_step: 0, value: 1}}
|
| 33 |
+
is_loss: true
|
| 34 |
+
group: 0
|
| 35 |
+
start: 0
|
| 36 |
+
stop: None
|
| 37 |
+
accumulation: false
|
| 38 |
+
CT;MASK:
|
| 39 |
+
criterions_loader:
|
| 40 |
+
MAE:
|
| 41 |
+
schedulers: {Constant: {nb_step: 0, value: 1}}
|
| 42 |
+
is_loss: false
|
| 43 |
+
group: 0
|
| 44 |
+
start: 0
|
| 45 |
+
stop: None
|
| 46 |
+
accumulation: false
|
| 47 |
+
reduction: mean
|
| 48 |
+
optimizer:
|
| 49 |
+
name: AdamW
|
| 50 |
+
lr: 0.001
|
| 51 |
+
betas: [0.9, 0.999]
|
| 52 |
+
eps: 1e-08
|
| 53 |
+
weight_decay: 0.001
|
| 54 |
+
amsgrad: false
|
| 55 |
+
maximize: false
|
| 56 |
+
foreach: None
|
| 57 |
+
capturable: false
|
| 58 |
+
differentiable: false
|
| 59 |
+
fused: None
|
| 60 |
+
schedulers:
|
| 61 |
+
StepLR:
|
| 62 |
+
step_size: 10
|
| 63 |
+
gamma: 0.75
|
| 64 |
+
last_epoch: -1
|
| 65 |
+
verbose: deprecated
|
| 66 |
+
nb_step: 0
|
| 67 |
Dataset:
|
| 68 |
groups_src:
|
| 69 |
MASK:
|
MR_CBCT/Config.yml
CHANGED
|
@@ -2,7 +2,68 @@ Trainer:
|
|
| 2 |
Model:
|
| 3 |
classpath: UNetPlusPlus.yml
|
| 4 |
UNetPlusPlus:
|
| 5 |
-
outputs_criterions:
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 6 |
Dataset:
|
| 7 |
groups_src:
|
| 8 |
MASK:
|
|
|
|
| 2 |
Model:
|
| 3 |
classpath: UNetPlusPlus.yml
|
| 4 |
UNetPlusPlus:
|
| 5 |
+
outputs_criterions:
|
| 6 |
+
Tanh:
|
| 7 |
+
targets_criterions:
|
| 8 |
+
CT:
|
| 9 |
+
criterions_loader:
|
| 10 |
+
MAE:
|
| 11 |
+
is_loss: true
|
| 12 |
+
schedulers: {Constant: {nb_step: 0, value: 1}}
|
| 13 |
+
group: 0
|
| 14 |
+
start: 0
|
| 15 |
+
stop: None
|
| 16 |
+
accumulation: false
|
| 17 |
+
reduction: mean
|
| 18 |
+
SAM_Perceptual:
|
| 19 |
+
is_loss: true
|
| 20 |
+
schedulers: {Constant: {nb_step: 0, value: 1}}
|
| 21 |
+
group: 0
|
| 22 |
+
start: 0
|
| 23 |
+
stop: None
|
| 24 |
+
accumulation: false
|
| 25 |
+
train: true
|
| 26 |
+
model_name: SAM2.1_Small.pt
|
| 27 |
+
weights: [1, 1, 1]
|
| 28 |
+
torch:nn:L1Loss:
|
| 29 |
+
size_average: None
|
| 30 |
+
reduce: None
|
| 31 |
+
reduction: mean
|
| 32 |
+
schedulers: {Constant: {nb_step: 0, value: 1}}
|
| 33 |
+
is_loss: true
|
| 34 |
+
group: 0
|
| 35 |
+
start: 0
|
| 36 |
+
stop: None
|
| 37 |
+
accumulation: false
|
| 38 |
+
CT;MASK:
|
| 39 |
+
criterions_loader:
|
| 40 |
+
MAE:
|
| 41 |
+
schedulers: {Constant: {nb_step: 0, value: 1}}
|
| 42 |
+
is_loss: false
|
| 43 |
+
group: 0
|
| 44 |
+
start: 0
|
| 45 |
+
stop: None
|
| 46 |
+
accumulation: false
|
| 47 |
+
reduction: mean
|
| 48 |
+
optimizer:
|
| 49 |
+
name: AdamW
|
| 50 |
+
lr: 0.001
|
| 51 |
+
betas: [0.9, 0.999]
|
| 52 |
+
eps: 1e-08
|
| 53 |
+
weight_decay: 0.001
|
| 54 |
+
amsgrad: false
|
| 55 |
+
maximize: false
|
| 56 |
+
foreach: None
|
| 57 |
+
capturable: false
|
| 58 |
+
differentiable: false
|
| 59 |
+
fused: None
|
| 60 |
+
schedulers:
|
| 61 |
+
StepLR:
|
| 62 |
+
step_size: 10
|
| 63 |
+
gamma: 0.75
|
| 64 |
+
last_epoch: -1
|
| 65 |
+
verbose: deprecated
|
| 66 |
+
nb_step: 0
|
| 67 |
Dataset:
|
| 68 |
groups_src:
|
| 69 |
MASK:
|