Hub documentation

Menggunakan timm di Hugging Face

Hugging Face's logo
Join the Hugging Face community

and get access to the augmented documentation experience

to get started

Menggunakan timm di Hugging Face

timm, yang juga dikenal sebagai pytorch-image-models, adalah kumpulan open-source model gambar PyTorch state-of-the-art, bobot pretrained, dan skrip utilitas untuk pelatihan, inferensi, dan validasi.

Dokumentasi ini berfokus pada fungsionalitas timm di Hugging Face Hub, bukan pada pustaka timm itu sendiri. Untuk informasi terperinci tentang pustaka timm, kunjungi dokumentasinya.

Anda dapat menemukan sejumlah model timm di Hub menggunakan filter di sebelah kiri halaman model.

Semua model di Hub dilengkapi dengan beberapa fitur yang berguna:

  1. Kartu model yang dihasilkan secara otomatis, yang dapat dilengkapi oleh pengembang model dengan informasi tentang model mereka.
  2. Tag metadata membantu pengguna menemukan model timm yang relevan.
  3. Widget interaktif yang dapat Anda gunakan untuk bermain langsung dengan model di browser.
  4. Inference Providers yang memungkinkan pengguna untuk membuat permintaan inferensi.

Menggunakan model yang sudah ada dari Hub

Setiap model timm dari Hugging Face Hub dapat dimuat dengan satu baris kode selama Anda telah menginstal timm! Setelah Anda memilih model dari Hub, berikan ID model dengan awalan hf-hub: ke metode create_model dari timm untuk mengunduh dan menginstansiasi model tersebut.

import timm

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

Jika Anda ingin melihat cara memuat model tertentu, Anda dapat mengklik Use in timm dan Anda akan diberikan potongan kode yang berfungsi untuk memuatnya!

Inferensi

Snippet di bawah ini menunjukkan cara Anda melakukan inferensi pada model timm yang dimuat dari Hub:

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)

Hal ini seharusnya meninggalkan Anda dengan daftar prediksi, seperti ini:

[
    {'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}
]

Berbagi model Anda

Anda dapat membagikan model timm Anda langsung ke Hugging Face Hub. Hal ini akan menerbitkan versi baru dari model Anda ke Hugging Face Hub, dan membuat repositori model untuk Anda jika belum ada.

Sebelum mendorong model, pastikan Anda telah masuk ke Hugging Face:

python -m pip install huggingface_hub
hf auth login

Sebagai alternatif, jika Anda lebih suka bekerja dari notebook Jupyter atau Colaboratory, setelah Anda menginstal huggingface_hub Anda dapat masuk dengan:

from huggingface_hub import notebook_login
notebook_login()

Lalu, unggah model Anda menggunakan metode push_to_hf_hub:

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
)

Sumber daya tambahan

Update on GitHub