See our collection for all versions of MobileViT-V2.

Run MobileViT-V2 with Keras 3: JAX, PyTorch, or TensorFlow

GitHub Docs Collection

kerasformers/mobilevitv2_075_cvnets_in1k

Paper: Separable Self-attention for Mobile Vision Transformers (arXiv:2206.02680) · HF Papers

MobileViTV2 replaces MHSA with separable self-attention (O(k)) and scales width via a single multiplier. Classification at 256/384; DeepLabV3 segmentation is a separate script/collection.

For more details on the model, please go to the upstream model card.

Pure-Keras 3 conversion of timm/mobilevitv2_075.cvnets_in1k for kerasformers. One implementation runs unmodified on TensorFlow / Torch / JAX.

This is an image-classification / backbone checkpoint (MobileViTV2ImageClassify / MobileViTV2Model).

✨ Quick start

import os
os.environ["KERAS_BACKEND"] = "torch"  # or "jax" / "tensorflow"

from PIL import Image
from kerasformers.models.mobilevitv2 import (
    MobileViTV2ImageClassify,
    MobileViTV2Model,
    MobileViTV2ImageProcessor,
)

model = MobileViTV2ImageClassify.from_weights("kerasformers/mobilevitv2_075_cvnets_in1k")
processor = MobileViTV2ImageProcessor.from_weights("kerasformers/mobilevitv2_075_cvnets_in1k")

image = Image.open("your_image.jpg").convert("RGB")
logits = model(processor(image)["pixel_values"], training=False)
print(logits.shape)  # (1, num_classes)

backbone = MobileViTV2Model.from_weights(
    "kerasformers/mobilevitv2_075_cvnets_in1k", as_backbone=True
)
feats = backbone(processor(image)["pixel_values"], training=False)
print(len(feats), [tuple(f.shape) for f in feats])

Load any MobileViT-V2 variant the same way with from_weights("kerasformers/<variant>"):

Variant Hub
mobilevitv2_050_cvnets_in1k kerasformers/mobilevitv2_050_cvnets_in1k
mobilevitv2_075_cvnets_in1k kerasformers/mobilevitv2_075_cvnets_in1k
mobilevitv2_100_cvnets_in1k kerasformers/mobilevitv2_100_cvnets_in1k
mobilevitv2_125_cvnets_in1k kerasformers/mobilevitv2_125_cvnets_in1k
mobilevitv2_150_cvnets_in1k kerasformers/mobilevitv2_150_cvnets_in1k
mobilevitv2_150_cvnets_in22k_ft_in1k kerasformers/mobilevitv2_150_cvnets_in22k_ft_in1k
mobilevitv2_150_cvnets_in22k_ft_in1k_384 kerasformers/mobilevitv2_150_cvnets_in22k_ft_in1k_384
mobilevitv2_175_cvnets_in1k kerasformers/mobilevitv2_175_cvnets_in1k
mobilevitv2_175_cvnets_in22k_ft_in1k kerasformers/mobilevitv2_175_cvnets_in22k_ft_in1k
mobilevitv2_175_cvnets_in22k_ft_in1k_384 kerasformers/mobilevitv2_175_cvnets_in22k_ft_in1k_384
mobilevitv2_200_cvnets_in1k kerasformers/mobilevitv2_200_cvnets_in1k
mobilevitv2_200_cvnets_in22k_ft_in1k kerasformers/mobilevitv2_200_cvnets_in22k_ft_in1k
mobilevitv2_200_cvnets_in22k_ft_in1k_384 kerasformers/mobilevitv2_200_cvnets_in22k_ft_in1k_384

Tips

  • Set KERAS_BACKEND before importing Keras / kerasformers.
  • MobileViTV2ImageClassify returns class logits; MobileViTV2Model returns features (as_backbone=True for multi-scale stages).
  • See docs and Loading Weights.
  • Upstream / timm checkpoints: MobileViTV2ImageClassify.from_weights("hf:timm/mobilevitv2_075.cvnets_in1k").

Special Thanks

A huge thank you to the MobileViT-V2 authors and the timm / Hub communities for creating and releasing these models.

License: see YAML license (usually matches the upstream checkpoint).

Downloads last month
33
Inference Providers NEW
This model isn't deployed by any Inference Provider. 🙋 Ask for provider support

Model tree for zeromodels/mobilevitv2_075_cvnets_in1k

Finetuned
(1)
this model

Collection including zeromodels/mobilevitv2_075_cvnets_in1k

Paper for zeromodels/mobilevitv2_075_cvnets_in1k