Hub documentation

Uso de OpenCLIP en Hugging Face

Hugging Face's logo
Join the Hugging Face community

and get access to the augmented documentation experience

to get started

Uso de OpenCLIP en Hugging Face

OpenCLIP es una implementación de código abierto de CLIP de OpenAI.

Explorando OpenCLIP en el Hub

Puedes encontrar modelos de OpenCLIP filtrando a la izquierda de la página de modelos.

Los modelos OpenCLIP alojados en el Hub tienen una tarjeta de modelo con información útil sobre los modelos. Gracias a la integración de OpenCLIP con Hugging Face Hub, puedes cargar modelos OpenCLIP con unas pocas líneas de código. También puedes desplegar estos modelos usando Inference Endpoints.

Instalación

Para comenzar, puedes seguir la guía de instalación de OpenCLIP. También puedes usar la siguiente instalación de una línea a través de pip:

$ pip install open_clip_torch

Uso de modelos existentes

Todos los modelos de OpenCLIP se pueden cargar fácilmente desde el Hub:

import open_clip

model, preprocess = open_clip.create_model_from_pretrained('hf-hub:laion/CLIP-ViT-g-14-laion2B-s12B-b42K')
tokenizer = open_clip.get_tokenizer('hf-hub:laion/CLIP-ViT-g-14-laion2B-s12B-b42K')

Una vez cargado, puedes codificar la imagen y el texto para realizar clasificación de imágenes sin ejemplos:

import torch
from PIL import Image
import requests

url = 'http://images.cocodataset.org/val2017/000000039769.jpg'
image = Image.open(requests.get(url, stream=True).raw)
image = preprocess(image).unsqueeze(0)
text = tokenizer(["a diagram", "a dog", "a cat"])

with torch.no_grad(), torch.cuda.amp.autocast():
    image_features = model.encode_image(image)
    text_features = model.encode_text(text)
    image_features /= image_features.norm(dim=-1, keepdim=True)
    text_features /= text_features.norm(dim=-1, keepdim=True)

    text_probs = (100.0 * image_features @ text_features.T).softmax(dim=-1)

print("Label probs:", text_probs) 

Devuelve la probabilidad de cada clase posible:

Label probs: tensor([[0.0020, 0.0034, 0.9946]])

Si deseas cargar un modelo específico de OpenCLIP, puedes hacer clic en Use in OpenCLIP en la tarjeta del modelo y ¡se te proporcionará un fragmento de código funcional!

Recursos adicionales

Update on GitHub