Views
No views yet
masonwang025/deeptfus-base
that adds an orthogonal-mechanism Dice loss on top of variant C's recipe.
Soft-argmax pulls the predicted centroid toward GT; Dice pulls the
−6 dB iso-volume shape to match GT. Tests whether the two loss terms
compose to fix focal_position_error_mm AND max_pressure_error AND
focal-volume bloat simultaneously.max_pressure_error (0.129
vs paper 0.199) and the only variant to tighten the predicted focal
blob (3.06× → 2.70×), at the cost of ~0.2 mm of focal_mm vs C.loss.focal_weight 0 to 5e-5 (C's recipe; soft-argmax centroid pull)
loss.focal_temperature : to 0.03
loss.grad_weight 0.1 to 0.1 (anchor kept)
loss.dice_weight 0 to 3e-3 (NEW: Dice on −6 dB iso-volume)
loss.dice_threshold : to 0.5 (= half-max amplitude)
loss.dice_temperature : to 0.05 (sigmoid soft-mask sharpness)1 − Dice(σ((pred−0.5)/0.05), σ((target−0.5)/0.05)).
Penalizes pred for having voxels above half-peak amplitude where GT
doesn't, and vice versa. Fine-tune ran 10 epochs from base ckpt at
lr=3e-5; shipped ckpt is ckpt_epoch_005.pt (best balanced epoch by
val_max_p + tied for val_total).| metric | paper | base | E (this model) | Δ vs base |
|---|---|---|---|---|
relative_l2 mean ± std | 0.414 ± 0.086 | 0.384 ± 0.078 | 0.401 ± 0.081 | +0.017 (still in paper budget) |
focal_position_error_mm mean ± std | 2.89 ± 2.14 | 6.49 ± 4.58 | 5.32 ± 3.44 | −1.17 mm; best std of any variant |
focal_position_error_mm median | 2.45 | 5.15 | 4.39 | −0.76 mm (−15%) |
max_pressure_error mean ± std | 0.199 ± 0.158 | 0.225 ± 0.116 | 0.129 ± 0.095 ★ | −0.096 (−43%) beats paper |
max_pressure_error median | 0.166 | 0.217 | 0.110 ★ | −0.107 (−49%) beats paper |
focal_pressure_error median | : | 0.528 | 0.421 | −0.107 |
focal_iou_fwhm mean | : | 0.156 | 0.164 ★ | +0.008 (best of any variant) |
inference_latency_s median | : | 0.233 | 0.232 | unchanged |
1from huggingface_hub import hf_hub_download
2import torch
3
4ckpt = torch.load(
5 hf_hub_download("masonwang025/deeptfus-ft-e-dice-anchored", "ckpt_best.pt"),
6 map_location="cpu", weights_only=False,
7)