Hub documentation

استخدام OpenCLIP في Hugging Face

Hugging Face's logo
Join the Hugging Face community

and get access to the augmented documentation experience

to get started

استخدام OpenCLIP في Hugging Face

OpenCLIP هو تطبيق مفتوح المصدر لنموذج CLIP من OpenAI.

استكشاف OpenCLIP على Hub

يمكنك العثور على نماذج OpenCLIP من خلال التصفية على يسار صفحة النماذج.

تحتوي نماذج OpenCLIP المستضافة على Hub على بطاقة نموذج تتضمن معلومات مفيدة حول النماذج. بفضل تكامل OpenCLIP مع Hugging Face Hub، يمكنك تحميل نماذج OpenCLIP بعدد قليل من أسطر الكود. كما يمكنك نشر هذه النماذج باستخدام نقاط الاستدلال (Inference Endpoints).

التثبيت

للبدء، يمكنك اتباع دليل تثبيت OpenCLIP. يمكنك أيضًا استخدام أمر التثبيت من سطر واحد التالي عبر pip:

$ pip install open_clip_torch

استخدام نماذج موجودة

يمكن تحميل جميع نماذج OpenCLIP بسهولة من 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')

بمجرد التحميل، يمكنك ترميز الصورة والنص لإجراء تصنيف الصور بدون تدريب مسبق:

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) 

يُخرج احتمال كل فئة ممكنة:

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

إذا كنت ترغب في تحميل نموذج OpenCLIP محدد، يمكنك النقر على Use in OpenCLIP في بطاقة النموذج وستحصل على مقتطف برمجي جاهز للاستخدام!

موارد إضافية

Update on GitHub