Views
No views yet
google/siglip-base-patch16-256-multilingual model.siglip-base-patch16-256-multilingual-onnx/
├── vision/
│ ├── model.onnx # Vision encoder
│ ├── config.json # Model configuration
│ └── preprocessor_config.json
├── text/
│ ├── model.onnx # Text encoder
│ ├── config.json # Model configuration
│ ├── tokenizer.json # Fast tokenizer
│ ├── special_tokens_map.json
│ └── spiece.model # SentencePiece model
└── README.mdpip install onnxruntime pillow transformerspip install onnxruntime-gpu1import numpy as np
2import onnxruntime as ort
3from PIL import Image
4from transformers import AutoProcessor
5
6# Load processors
7processor = AutoProcessor.from_pretrained("google/siglip-base-patch16-256-multilingual")
8
9# Load ONNX sessions
10vision_session = ort.InferenceSession("vision/model.onnx")
11text_session = ort.InferenceSession("text/model.onnx")
12
13# Process image
14image = Image.open("your_image.jpg")
15image_inputs = processor(images=image, return_tensors="np")
16image_embeddings = vision_session.run(None, {"pixel_values": image_inputs["pixel_values"]})[0]
17
18# Process text
19texts = ["a photo of a cat", "une photo d'un chat", "una foto de un gato"]
20text_inputs = processor(text=texts, padding=True, return_tensors="np")
21text_embeddings = text_session.run(None, {
22 "input_ids": text_inputs["input_ids"],
23 "attention_mask": text_inputs["attention_mask"]
24})[0]
25
26# Compute similarity using sigmoid (not softmax like CLIP!)
27# SigLIP uses sigmoid activation, so we compute sigmoid of the dot product
28logits = np.dot(image_embeddings, text_embeddings.T)
29probs = 1 / (1 + np.exp(-logits)) # sigmoid activation
30
31print("Probabilities:")
32for i, text in enumerate(texts):
33 print(f" {text}: {probs[0][i]:.2%}")1@article{zhai2023sigmoid,
2 title={Sigmoid Loss for Language Image Pre-Training},
3 author={Zhai, Xiaohua and others},
4 journal={arXiv preprint arXiv:2303.12170},
5 year={2023}
6}