GR-Neutro — concept-bottleneck model weights

Weights for neutrophil-morphology classification on GR-Neutro (in-house Gustave Roussy peripheral-blood neutrophil corpus; 4,378 cells, 7 abnormality classes, 10 textbook morphology concepts). Backbone: DinoBloom-B (ViT-B/14, 768-d CLS), last-6 blocks fine-tuned for the end-to-end checkpoints.

Code, training/inference/preprocessing instructions: https://github.com/nabilmouadden/biologically-constrained-classification/tree/release/models-code

Download

hf download nabimu9/gr-neutro-cbm-weights --local-dir weights

End-to-end checkpoints

DinoBloom-B last-6 fine-tuned, seed 42, GR-Neutro 7-class test split.

File Architecture Test W-F1 Macro-F1 Subset acc. Multi-seed mean W-F1
joint_cbm_dinobloomB_ft_s42.pt Joint CBM (classifier ∥ concept adapter + constraint) 0.912 0.861 0.865 0.886 ± 0.014
pure_bottleneck_cbm_dinobloomB_ft_s42.pt Pure-bottleneck CBM (class only through concepts, λ=2) 0.909 0.862 0.847 ≈ 0.88
backbone_baseline_dinobloomB_ft_s42.pt No-concept backbone baseline 0.907 0.865 0.868 0.890
cbm_sequential_dinobloomB_ft_s42.pt Sequential CBM 0.873 0.804 0.756 —
cbm_independent_dinobloomB_ft_s42.pt Independent CBM 0.772 0.748 0.585 —

Per-abnormality F1 (seed 42)

Class (n) Joint CBM Pure-bottleneck Backbone baseline Sequential Independent
Normal (199) 0.987 0.980 0.982 0.962 0.791
Hypogranulation (108) 0.903 0.910 0.897 0.888 0.824
Hyposegmentation (67) 0.855 0.826 0.821 0.846 0.786
Chromatin (35) 0.694 0.750 0.719 0.429 0.437
Hypersegmentation (19) 0.895 0.919 0.919 0.919 0.872
Döhle (19) 0.848 0.757 0.848 0.743 0.684
Hypergranulation (16) 0.842 0.889 0.865 0.842 0.842

Each .pt is a torch.save dict with state_dict, args (incl. mode, unfreeze_last_n, λ's, seed), class_names, concepts, prior_C, normal_idx. infer.py reads args["mode"] and rebuilds the architecture.

Head checkpoints — heads/

Concept heads trained on a feature bank, seed 42. Test W-F1:

File (heads/) Method Frozen bank Fine-tuned bank
cem_<bank>_s42_head.pt CEM (Concept Embedding Model) 0.844 0.936
backbone_mlp_<bank>_s42_head.pt backbone-MLP reference 0.832 0.935
pcbmh_<bank>_s42_head.pt PCBM-h (residual CBM, r=10) 0.823 0.928
pure_bottleneck_<bank>_s42_head.pt pure-bottleneck head 0.781 0.890

<bank> ∈ {frozen, ft_last4}. Each .pt holds state_dict, constructor_kwargs, class_names, concept_names, train_idx, test_idx, test_wf1. Rebuild with residual_cbm.py's PCBMh / CEM classes.

Feature banks

File Content Shape
dinobloom_b_frozen_features.npz Frozen DinoBloom-B CLS features features (4378, 768), paths
dinobloom_b_ft_last4_features.npz Fine-tuned (last-4) CLS bank, seed 0 features (4378, 768), paths

License

CC BY 4.0. Trained weights only; GR-Neutro raw images are not redistributed.

Downloads last month

-

Downloads are not tracked for this model. How to track
Inference Providers NEW
This model isn't deployed by any Inference Provider. 🙋 Ask for provider support