Model reference · open weights

aloe-dinov3-in1k-lp

Embeddings rmaser · community Image embed 1 build Non-commercial 909 dl/mo

aloe-dinov3-in1k-lp is an open-weight embedding model from rmaser. aloe-v2-dinov3-base-in1k-lp (FP32) weighs 177 MB; the smallest configuration that runs it is RTX 3060 12 GB.

What it is

Released byrmaser
TypeEmbedding models
TaskImage embed
Parameters (lead)88M
Runs withtransformers
Released2026-07-18
Popularity909 downloads / month
Weights177 MB (aloe-v2-dinov3-base-in1k-lp (FP32), file size)
LicenceNon-commercial

What it runs on

Memory and cards for aloe-v2-dinov3-base-in1k-lp (FP32)

Weights 177 MB (file size) · overhead about 1.1 GB.

CardRunsCounted
memory
RTX 3060 12 GBfits11.6 GB
RTX 4060 Ti 16 GBfits15.4 GB
RTX 3090 24 GBfits23.4 GB
RTX 4090 24 GBfits23.4 GB
RTX 5090 32 GBfits31.0 GB
L40S 48 GBfits44.0 GB
A100 80 GBfits78.2 GB
H100 80 GBfits78.1 GB
RTX PRO 6000 Blackwell 96 GBfits93.8 GB
DGX Spark (GB10) 128 GB unifiedfits107 GB
H200 141 GBfits138 GB
B200 180 GBfits176 GB

Estimates, not measurements: the weights are the build's file size. No cache grows with use; a batch of inputs needs working memory of its own. Counted memory is 92 % of what CUDA reports for the card.

From the model card

What rmaser says about aloe-dinov3-in1k-lp

ALOEv2 is a B-cos-interpretable DINOv3 model obtained by fine-tuning the original ALOE backbones for a further 30k steps. It keeps the original three-layer distillation scheme but adds per-step multi-resolution sampling (224/384/480) and fixes a target-layer bug so the even-thirds distillation layers include the final transformer block.

The original ALOE distilled at a single resolution (224 px), which left features poorly calibrated for the high-resolution inputs that dense-prediction probes — correspondence, depth, surface normals — actually run on, so feature quality degraded at those resolutions. Training on multiple resolutions removes that train/eval mismatch and restores dense-prediction accuracy close to the DINOv3 teacher, while retaining the inherent B-cos explanations and holding ImageNet-1k recognition roughly unchanged.

This card is shared by the ALOEv2 DINOv3 backbones and their ImageNet-1k linear-probe (LP) classifier heads:

KindRepos
Backbonermaser/aloe-v2-dinov3-{small,base,large}
ImageNet-1k LPrmaser/aloe-v2-dinov3-{small,base,large}-in1k-lp
Read the full model card

Why ALOEv2 (qualitative difference vs. previous models)

Fig 2a — dense correspondence & surface normals across model sizes. ALOEv2 (orange) tracks the DINOv3 teacher closely on NAVI / ScanNet / SPair / surface-normals, while the original ALOE (grey, dotted) lags far behind.

NYUv2 depth probe. δ<1.25 (higher better) and RMSE (lower better) by size:

Fig 3 — discriminative quality (ImageNet-1k kNN@20 + Linear Probe).

GridPG localization. ALOEv2 inherent B-cos localization (higher is better):

SizeALOEv2 B-cosOriginal ALOE B-cosDINOv3 AttnLRP
Small75.8079.5553.46
Base87.7782.6965.11
Large84.3880.6965.33

ImageNet-1k (base): kNN@20 81.43, Linear Probe 83.92.

Usage — backbone (feature extraction)

from transformers import AutoImageProcessor, AutoModel

repo_id = "rmaser/aloe-v2-dinov3-base"
processor = AutoImageProcessor.from_pretrained(repo_id, trust_remote_code=True)
model = AutoModel.from_pretrained(repo_id, trust_remote_code=True)
model.eval()

Hidden states are pre-norm

With output_hidden_states=True, hidden_states[i] is the raw output of block i — in particular hidden_states[-1] is not last_hidden_state, which additionally passes through post_layernorm. This is the convention the distillation loss was defined against, and recent Transformers versions report the post-norm tensor in hidden_states[-1] on the official DINOv3 teacher, so the two APIs differ at that one index.

Use hidden_states[i] for anything layer-wise — ALOEv2 supervises blocks n/3, 2n/3 and n, where its cosine similarity to the DINOv3 teacher's corresponding pre-norm features is 0.98–0.99. post_layernorm was not part of the loss, so last_hidden_state is noticeably less aligned (0.78–0.86).

Usage — ImageNet-1k classification and explanations (-in1k-lp only)

from PIL import Image
from transformers import AutoImageProcessor, AutoModelForImageClassification

repo_id = "rmaser/aloe-v2-dinov3-base-in1k-lp"
processor = AutoImageProcessor.from_pretrained(repo_id, trust_remote_code=True)
model = AutoModelForImageClassification.from_pretrained(repo_id, trust_remote_code=True)
model.eval()

image = Image.open("image.jpg").convert("RGB")
pixel_values = processor(images=image, return_tensors="pt").pixel_values

result = model.explain(pixel_values, idx=None)
class_idx = int(result["explained_class_idx"][0])
print(f"Predicted ImageNet-1k class index: {class_idx}")

rgba = (result["explanation"][0] * 255).astype("uint8")
Image.fromarray(rgba).save("explanation.png")

idx=None explains the predicted class. Pass an ImageNet-1k class index to idx to explain a specific class instead. Do not wrap model.explain(...) in torch.inference_mode(): generating the attribution requires input gradients.

Notes

ALOE models use custom B-cos-aware Transformers code, so loading requires trust_remote_code=True. Runtime code: rmaser/aloe-arch.

Links

Citation

@inproceedings{maser2026align,
  title = {Align Once to Explain: Feature Alignment for Scalable B-cosification of Foundational Vision Transformers},
  author = {Maser, Raphael and Gairola, Siddhartha and Rao, Sukrut and Schiele, Bernt},
  booktitle = {Proceedings of the IEEE/CVF Conference on Computer Vision and Pattern Recognition (CVPR)},
  year = {2026},
  note = {Poster}
}

License

This model is released under the Creative Commons Attribution-NonCommercial ShareAlike 4.0 International License. The methods described in this work are patent pending.

Quoted from the model card on Hugging Face — the full card is behind the Hugging Face link above.

© 2026 AxForge · EU-hosted AI infrastructure Pricing Docs Trust Privacy Terms