Module

vectorizers.py

import goldener.vision.vectorizers
View source

Vectorization tools for Vision Transformer (ViT) models.

These functions build goldener.vectorize.GoldTensorVectorizationTool instances keeping only some of the tokens output by a ViT model: the class token, the prefix tokens (class and register tokens) or the patch tokens.

def get_vit_class_token_vectorizer() -> goldener.vectorize.GoldTensorVectorizationTool:

Get a GoldTensorVectorizationTool that keeps only the class token from a ViT model.

def get_vit_prefix_tokens_vectorizer(n_prefixes: int = 5) -> goldener.vectorize.GoldTensorVectorizationTool:

Get a GoldTensorVectorizationTool that keeps the first n_prefixes tokens from a ViT model.

Arguments:
  • n_prefixes: The number of prefix tokens to keep (default is 5).
def get_vit_patch_tokens_vectorizer( n_prefixes: int | None = 5, n_random: int | None = None, transform_y: Optional[Callable[[torch.Tensor], torch.Tensor]] = None, generator: torch._C.Generator | None = None) -> goldener.vectorize.GoldTensorVectorizationTool:

Get a GoldTensorVectorizationTool that keeps the patch tokens from a ViT model

It optionally removes the first n_prefixes tokens and keeps n_random random tokens.

Arguments:
  • n_prefixes: The number of prefix tokens to remove from the start (default is 5). If None, no prefixes are removed.
  • n_random: The number of random tokens to keep after removing prefixes (default is None, meaning no random tokens are kept). If None, no random filtering is applied.
  • transform_y: An optional callable to transform the target variable y.
  • generator: An optional torch.Generator for reproducibility when n_random is set.