Hub documentation
استخدام timm في Hugging Face
استخدام timm في Hugging Face
timm، المعروف أيضًا باسم pytorch-image-models، هو مجموعة مفتوحة المصدر تضم أحدث نماذج الصور في PyTorch، والأوزان المُسبقة التدريب، وسكربتات الأداة لتدريب والاستدلال والتحقق.
تركز هذه الوثائق على وظائف timm في Hugging Face Hub بدلاً من مكتبة timm نفسها. للحصول على معلومات تفصيلية حول مكتبة timm، قم بزيارة وثائقها.
يمكنك العثور على عدد من نماذج timm على Hub باستخدام عوامل التصفية الموجودة على يسار صفحة النماذج.
تأتي جميع النماذج على Hub بعدة ميزات مفيدة:
- بطاقة نموذج مُولَّدة تلقائيًا، يمكن لمطوّري النموذج إكمالها بـمعلومات حول نموذجهم.
- تساعد وسوم البيانات الوصفية المستخدمين على اكتشاف نماذج
timmذات الصلة. - An interactive widget you can use to play with the model directly in the browser.
- مزوّد Inference Providers يتيح للمستخدمين إرسال طلبات الاستدلال.
استخدام نماذج موجودة مسبقًا من المستودع
يمكن تحميل أي نموذج timm من Hugging Face Hub بسطر واحد من الشيفرة ما دام لديك timm مثبّتًا! بعد اختيار نموذج من Hub، مرّر معرّف النموذج مع البادئة hf-hub: إلى طريقة create_model في timm لتنزيل النموذج وإنشائه.
import timm
# Loading https://huggingface.co/timm/eca_nfnet_l0
model = timm.create_model("hf-hub:timm/eca_nfnet_l0", pretrained=True)إذا كنت ترغب في معرفة كيفية تحميل نموذج محدد، يمكنك النقر على Use in timm وستحصل على مقتطف برمجي جاهز للتشغيل لتحميله!


الاستدلال
يُظهر المقطع أدناه كيفية تنفيذ الاستدلال على نموذج timm محمّل من 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)يجب أن يُبقيك هذا مع قائمة من التنبؤات، على النحو التالي:
[
{'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}
]مشاركة نماذجك
يمكنك مشاركة نماذج timm الخاصة بك مباشرةً على Hugging Face Hub. سيقوم هذا الإجراء بنشر إصدار جديد من نموذجك على Hugging Face Hub، وإنشاء مستودع نموذج لك إذا لم يكن موجودًا بالفعل.
قبل رفع نموذج، تأكد من أنك قد سجّلت الدخول إلى Hugging Face:
python -m pip install huggingface_hub hf auth login
بديلًا عن ذلك، إذا كنت تفضل العمل من دفتر ملاحظات Jupyter أو Colaboratory، فبعد تثبيت huggingface_hub يمكنك تسجيل الدخول باستخدام:
from huggingface_hub import notebook_login
notebook_login()ثم، قم بدفع نموذجك باستخدام طريقة 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
)موارد إضافية
- timm (pytorch-image-models) مستودع GitHub.
- توثيق timm.
- توثيق إضافي في timmdocs بواسطة Aman Arora.
- البدء بنماذج الصور في PyTorch (timm): دليل للممارسين بقلم Chris Hughes.