Hub documentation

Hugging Face'te timm kullanımı

Hugging Face's logo
Join the Hugging Face community

and get access to the augmented documentation experience

to get started

Hugging Face'te timm kullanımı

timm, diğer adıyla pytorch-image-models, eğitim, çıkarım ve doğrulama için en son PyTorch görüntü modelleri, önceden eğitilmiş ağırlıklar ve yardımcı betiklerden oluşan açık kaynak bir koleksiyondur.

Bu dokümantasyon, timm kütüphanesinin kendisi yerine Hugging Face Hub'daki timm işlevselliğine odaklanır. timm kütüphanesi hakkında ayrıntılı bilgi için dokümantasyonuna göz atın.

modeller sayfası solundaki filtreleri kullanarak Hub'da bir dizi timm modeli bulabilirsiniz.

Hub'daki tüm modeller birkaç faydalı özellik ile birlikte gelir:

  1. Model yazarlarının modelle ilgili bilgilerle tamamlayabileceği, otomatik olarak oluşturulan bir model kartı.
  2. Metadata etiketleri, kullanıcıların ilgili timm modellerini keşfetmesine yardımcı olur.
  3. Modeli doğrudan tarayıcıda denemeniz için kullanabileceğiniz etkileşimli bir widget.
  4. Kullanıcıların çıkarım istekleri yapmasına olanak tanıyan bir Inference Providers.

Hub'daki mevcut modelleri kullanma

Hugging Face Hub’daki herhangi bir timm modeli, timm yüklü olduğu sürece tek satır kodla yüklenebilir! Hub’dan bir model seçtikten sonra, modelin kimliğini hf-hub: önekiyle birlikte timm’in create_model yöntemine iletin; model indirilecek ve örneklenmiş olacaktır.

import timm

# Loading https://huggingface.co/timm/eca_nfnet_l0
model = timm.create_model("hf-hub:timm/eca_nfnet_l0", pretrained=True)

Belirli bir modelin nasıl yükleneceğini görmek istiyorsanız, Use in timm bağlantısına tıklayabilir ve yüklemek için çalışan bir kod parçası alabilirsiniz!

Çıkarım

Aşağıdaki kod parçası, Hub'dan yüklenen bir timm modelinde çıkarım (inference) yapmanın nasıl gerçekleştirileceğini göstermektedir:

import timm
import torch
from PIL import Image
from timm.data import resolve_data_config
from timm.data.transforms_factory import create_transform

# Load from Hub 🔥
model = timm.create_model(
    'hf-hub:nateraw/resnet50-oxford-iiit-pet',
    pretrained=True
)

# Set model to eval mode for inference
model.eval()

# Create Transform
transform = create_transform(**resolve_data_config(model.pretrained_cfg, model=model))

# Get the labels from the model config
labels = model.pretrained_cfg['label_names']
top_k = min(len(labels), 5)

# Use your own image file here...
image = Image.open('boxer.jpg').convert('RGB')

# Process PIL image with transforms and add a batch dimension
x = transform(image).unsqueeze(0)

# Pass inputs to model forward function to get outputs
out = model(x)

# Apply softmax to get predicted probabilities for each class
probabilities = torch.nn.functional.softmax(out[0], dim=0)

# Grab the values and indices of top 5 predicted classes
values, indices = torch.topk(probabilities, top_k)

# Prepare a nice dict of top k predictions
predictions = [
    {"label": labels[i], "score": v.item()}
    for i, v in zip(indices, values)
]
print(predictions)

Bu işlem, aşağıdaki gibi bir tahmin listesi bırakmalıdır:

[
    {'label': 'american_pit_bull_terrier', 'score': 0.9999998807907104},
    {'label': 'staffordshire_bull_terrier', 'score': 1.0000000149011612e-07},
    {'label': 'miniature_pinscher', 'score': 1.0000000149011612e-07},
    {'label': 'chihuahua', 'score': 1.0000000149011612e-07},
    {'label': 'beagle', 'score': 1.0000000149011612e-07}
]

Modellerinizi paylaşma

timm modellerinizi doğrudan Hugging Face Hub üzerinde paylaşabilirsiniz. Bu işlem, modelinizin yeni bir sürümünü Hugging Face Hub üzerinde yayımlar ve henüz bir model deposu yoksa sizin için oluşturur.

Bir model göndermeden önce, Hugging Face'e giriş yaptığınızdan emin olun:

python -m pip install huggingface_hub
hf auth login

Alternatif olarak, Jupyter veya Colaboratory defterinden çalışmayı tercih ediyorsanız, huggingface_hub paketini kurduktan sonra aşağıdaki komutla oturum açabilirsiniz:

from huggingface_hub import notebook_login
notebook_login()

Ardından, modelinizi push_to_hf_hub yöntemiyle gönderin:

import timm

# Build or load a model, e.g. timm's pretrained resnet18
model = timm.create_model('resnet18', pretrained=True, num_classes=4)

###########################
# [Fine tune your model...]
###########################

# Push it to the 🤗 Hub
timm.models.hub.push_to_hf_hub(
    model,
    'resnet18-random-classifier',
    model_config={'labels': ['a', 'b', 'c', 'd']}
)

# Load your model from the Hub
model_reloaded = timm.create_model(
    'hf-hub:<your-username>/resnet18-random-classifier',
    pretrained=True
)

Ek kaynaklar

Update on GitHub