turhancan97's picture
Add generic_segmentation probe for dinov2_vitb14
3abd197 verified
|
Raw History Blame Contribute Delete
1.61 kB
---
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).