# Hugging Face'te OpenCLIP Kullanımı

[OpenCLIP](https://github.com/mlfoundations/open_clip), OpenAI'nin CLIP'inin açık kaynak bir uygulamasıdır.

## Hub'da OpenCLIP'i Keşfetme

OpenCLIP modellerini [modeller sayfasının](https://huggingface.co/models?library=open_clip&sort=trending) solundaki filtreleme bölümünden bulabilirsiniz.

Hub üzerinde barındırılan OpenCLIP modellerinin, modeller hakkında faydalı bilgiler içeren bir model kartı vardır. OpenCLIP Hugging Face Hub entegrasyonu sayesinde OpenCLIP modellerini birkaç satır kodla yükleyebilirsiniz. Ayrıca bu modelleri [Inference Endpoints](https://huggingface.co/inference-endpoints) kullanarak dağıtabilirsiniz.

## Kurulum

Başlamak için [OpenCLIP kurulum kılavuzunu](https://github.com/mlfoundations/open_clip#usage) takip edebilirsiniz. Ayrıca aşağıdaki tek satırlık pip kurulumunu da kullanabilirsiniz:

```
$ pip install open_clip_torch
```

## Mevcut modelleri kullanma

Tüm OpenCLIP modelleri Hub'dan kolayca yüklenebilir:

```py
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')
```

Yüklendikten sonra, [sıfır atımlı görüntü sınıflandırması](https://huggingface.co/tasks/zero-shot-image-classification) yapmak için görüntüyü ve metni kodlayabilirsiniz:

```py
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) 
```

Her olası sınıfın olasılığını çıktılar:

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

Belirli bir OpenCLIP modelini yüklemek istiyorsanız, model kartındaki `Use in OpenCLIP` bağlantısına tıklayabilir ve size çalışan bir kod parçası sunulur!

## Ek kaynaklar

* OpenCLIP [deposu](https://github.com/mlfoundations/open_clip)
* OpenCLIP [belgeleri](https://github.com/mlfoundations/open_clip/tree/main/docs)
* Hub'daki OpenCLIP [modelleri](https://huggingface.co/models?library=open_clip&sort=trending)

