--- library_name: visbench tags: - visbench - probing - generic_segmentation --- # generic_segmentation probe for `dinov2_vitb14` A **trained probe head**, not a backbone. It is the small module VisBench fits on top of frozen `dinov2_vitb14` features to measure what those features carry. ```python import visbench from visbench.hub import load_probe_from_hub backbone = visbench.get_backbone("dinov2_vitb14") probe = load_probe_from_hub("turhancan97/visbench-generic_segmentation-dinov2_vitb14", backbone=backbone) ``` ## It only works with this backbone These weights were fitted on features from `dinov2_vitb14`, taken with `pooling=mean` and `feature_mode=dense_only`. Loading them against anything else is refused, because the failure is otherwise silent: a head fitted on one pooling and fed another has the right shapes and produces a plausible, wrong number. | | | | --- | --- | | backbone | `dinov2_vitb14` | | backbone key | `dinov2/dinov2_vitb14/224/7764ea0f912e` | | task | `generic_segmentation` (mid_level) | | pooling | `mean` (requested `mean`) | | feature mode | `dense_only` | | layers | `None` | **Reported scores** | metric | value | | --- | --- | | `f1` | 0.8408 | | `iou` | 0.7556 | | `pixel_acc` | 0.9360 | ## Reproducing it Fitted with: - `batch_size`: `8` - `epochs`: `10` - `head`: `linear` - `hidden_dim`: `512` - `layers`: `None` - `loss`: `masked_bce` - `lr`: `0.0005` - `optimizer`: `adamw` - `protocol`: `visbench_binary_seg` - `threshold`: `0.5` - `warmup_epochs`: `1.5` - `weight_decay`: `0.0001` Generated by [VisBench](https://github.com/turhancan97/VisBench).