Skip to main content

Hugging Face Transformers image embedding adapter with a scikit-learn KNN classification head.

Project description

transformers-knn-adapter

transformers_knn_adapter extends Hugging Face image models by attaching a scikit-learn KNN classifier on top of transformer embeddings.

Requirements

  • Python 3.11+
  • uv

Setup

uv sync --dev

Run Tests

uv run pytest

Train

uv run python -m transformers_knn_adapter.knn_image_pipeline train \
  --model microsoft/resnet-50 \
  --knn-model-path /tmp/knn/dinov2_small_mini_imagenet_full.joblib \
  --dataset timm/mini-imagenet \
  --split train \
  --max-samples 1000 \
  --shuffle \
  --grid-search \
  --grid-search-splits 3 \
  --grid-search-repeats 2 \
  --grid-search-scoring f1_macro

Evaluate

uv run python -m transformers_knn_adapter.knn_image_pipeline eval \
  --model microsoft/resnet-50 \
  --knn-model-path /tmp/knn/dinov2_small_mini_imagenet_full.joblib \
  --dataset timm/mini-imagenet \
  --split test \
  --stratified \
  --max-samples 100 \
  --shuffle \
  --batch-size 100

Inference

uv run python -m transformers_knn_adapter.knn_image_pipeline infer \
  --model microsoft/resnet-50 \
  --knn-model-path /tmp/knn/dinov2_small_mini_imagenet_full.joblib \
  --image https://picsum.photos/200 \
  --inference-batch-size 5

Python API

from transformers_knn_adapter.knn_image_pipeline import pipeline

clf = pipeline(
    "image-classification",
    model_path="microsoft/resnet-50",
    knn_model_path="/tmp/knn/model.joblib",
)

Notes

Real train/eval runs can download model and dataset artifacts from Hugging Face.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

transformers_knn_adapter-0.2.0.tar.gz (206.4 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

transformers_knn_adapter-0.2.0-py3-none-any.whl (10.9 kB view details)

Uploaded Python 3

File details

Details for the file transformers_knn_adapter-0.2.0.tar.gz.

File metadata

  • Download URL: transformers_knn_adapter-0.2.0.tar.gz
  • Upload date:
  • Size: 206.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for transformers_knn_adapter-0.2.0.tar.gz
Algorithm Hash digest
SHA256 aee3ee3fdb8b9158715a8331db6413db817ba0fa3b2ba48cd4e04e674c90434e
MD5 3339dd5f78296bc0e822d83112d106d2
BLAKE2b-256 713bb6c733ba0741608498602be437476c9c0b8f5d8f9a3f18d33905d42cbe0b

See more details on using hashes here.

Provenance

The following attestation bundles were made for transformers_knn_adapter-0.2.0.tar.gz:

Publisher: publish.yml on dimidagd/transformers-knn-adapter

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file transformers_knn_adapter-0.2.0-py3-none-any.whl.

File metadata

File hashes

Hashes for transformers_knn_adapter-0.2.0-py3-none-any.whl
Algorithm Hash digest
SHA256 6379c1e2e180f10034d7b86d2872c01f60aa74dff491d0b339684c8ead5a3f3b
MD5 87bbfc9aee10a11d739fc7f6d252aca4
BLAKE2b-256 bc6c9cdbd8d9e2edcdf38db8d49ef14f311d8cddbf51870b5b23f0c508b72841

See more details on using hashes here.

Provenance

The following attestation bundles were made for transformers_knn_adapter-0.2.0-py3-none-any.whl:

Publisher: publish.yml on dimidagd/transformers-knn-adapter

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page