Hub documentation
Sử dụng timm trên Hugging Face
Sử dụng timm trên Hugging Face
timm, còn được biết đến với tên pytorch-image-models, là một bộ sưu tập mã nguồn mở gồm các mô hình ảnh PyTorch tiên tiến, trọng số được huấn luyện trước, và các script tiện ích cho việc huấn luyện, suy luận và xác thực.
Tài liệu này tập trung vào các tính năng của timm trên Hugging Face Hub thay vì chính thư viện timm. Để biết thông tin chi tiết về thư viện timm, hãy truy cập tài liệu của nó.
Bạn có thể tìm thấy một số mô hình timm trên Hub bằng cách sử dụng các bộ lọc ở phía bên trái của trang mô hình.
Tất cả các mô hình trên Hub đều đi kèm với một số tính năng hữu ích:
- Thẻ mô tả mô hình được tạo tự động, mà các tác giả mô hình có thể hoàn thiện bằng thông tin về mô hình của họ.
- Các thẻ metadata giúp người dùng tìm thấy các mô hình
timmphù hợp. - Một widget tương tác mà bạn có thể sử dụng để thử nghiệm trực tiếp với mô hình ngay trong trình duyệt.
- Một Inference Providers cho phép người dùng thực hiện các yêu cầu suy luận.
Sử dụng các mô hình có sẵn từ Hub
Bất kỳ model timm nào từ Hugging Face Hub đều có thể được nạp bằng một dòng code duy nhất, miễn là bạn đã cài đặt timm! Sau khi đã chọn một model từ Hub, hãy truyền ID của model đó có tiền tố hf-hub: vào phương thức create_model của timm để tải xuống và khởi tạo model.
import timm
# Loading https://huggingface.co/timm/eca_nfnet_l0
model = timm.create_model("hf-hub:timm/eca_nfnet_l0", pretrained=True)Nếu bạn muốn xem cách tải một mô hình cụ thể, hãy nhấp vào Use in timm và bạn sẽ nhận được một đoạn mã hoạt động để tải mô hình đó!


Suy luận
Đoạn mã dưới đây cho thấy cách bạn có thể thực hiện suy luận trên một mô hình timm được tải từ 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)Kết quả sẽ là một danh sách các dự đoán, như sau:
[
{'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}
]Chia sẻ các mô hình của bạn
Bạn có thể chia sẻ các mô hình timm của mình trực tiếp lên Hugging Face Hub. Thao tác này sẽ công bố một phiên bản mới của mô hình lên Hugging Face Hub, đồng thời tạo một kho mô hình cho bạn nếu nó chưa tồn tại.
Trước khi đẩy một mô hình, hãy đảm bảo rằng bạn đã đăng nhập vào Hugging Face:
python -m pip install huggingface_hub hf auth login
Hoặc, nếu bạn thích làm việc từ notebook Jupyter hoặc Colaboratory, sau khi đã cài đặt huggingface_hub, bạn có thể đăng nhập bằng:
from huggingface_hub import notebook_login
notebook_login()Sau đó, đẩy mô hình của bạn bằng phương thức 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
)Tài nguyên bổ sung
- timm (pytorch-image-models) GitHub Repo.
- tài liệu documentation của timm.
- Tài liệu bổ sung tại timmdocs của Aman Arora.
- Bắt đầu với Mô hình Ảnh PyTorch (timm): Hướng dẫn cho người thực hành của Chris Hughes.