Views
No views yet
google/siglip2-so400m-patch14-384 for kerasformers. One implementation runs unmodified on TensorFlow / Torch / JAX.SigLIP2ZeroShotClassify): pass image(s) and text prompts at inference time.1import os
2os.environ["KERAS_BACKEND"] = "torch" # or "jax" / "tensorflow"
3
4from kerasformers.models.siglip2 import (
5 SigLIP2Processor,
6 SigLIP2ZeroShotClassify,
7)
8
9processor = SigLIP2Processor.from_weights("kerasformers/siglip2_so400m_p14_384")
10model = SigLIP2ZeroShotClassify.from_weights("kerasformers/siglip2_so400m_p14_384")
11
12labels = [
13 "a photo of a cat",
14 "a photo of a dog",
15 "a photo of a car",
16 "a photo of a living room",
17]
18inputs = processor(text=labels, image_paths="your_image.jpg")
19output = model(
20 {
21 "images": inputs["images"],
22 "token_ids": inputs["input_ids"],
23 }
24)
25print(output["image_logits"].shape)from_weights("kerasformers/<variant>"):| Variant | Hub |
|---|---|
siglip2_base_p16_224 | kerasformers/siglip2_base_p16_224 |
siglip2_base_p16_256 | kerasformers/siglip2_base_p16_256 |
siglip2_base_p16_384 | kerasformers/siglip2_base_p16_384 |
siglip2_base_p16_512 | kerasformers/siglip2_base_p16_512 |
siglip2_base_p32_256 | kerasformers/siglip2_base_p32_256 |
siglip2_large_p16_256 | kerasformers/siglip2_large_p16_256 |
siglip2_large_p16_384 | kerasformers/siglip2_large_p16_384 |
siglip2_large_p16_512 | kerasformers/siglip2_large_p16_512 |
siglip2_so400m_p14_224 | kerasformers/siglip2_so400m_p14_224 |
siglip2_so400m_p14_384 | kerasformers/siglip2_so400m_p14_384 |
siglip2_so400m_p16_256 | kerasformers/siglip2_so400m_p16_256 |
siglip2_so400m_p16_384 | kerasformers/siglip2_so400m_p16_384 |
siglip2_so400m_p16_512 | kerasformers/siglip2_so400m_p16_512 |
KERAS_BACKEND before importing Keras / kerasformers.Processor.from_weights(...) so image size and tokenizer match the variant.input_ids to model token_ids. No padding mask is required.Processor.from_weights.hf: prefix, e.g. SigLIP2ZeroShotClassify.from_weights("hf:google/siglip2-so400m-patch14-384").