# مشاركة النماذج وتحميلها من Hugging Face Hub

تتميز مكتبة `timm` بتكامل مدمج مع Hugging Face Hub، مما يسهّل مشاركة النماذج وتحميلها من 🤗 Hub.

في هذا الدليل المختصر، سنرى كيفية:
  1. مشاركة نموذج `timm` على Hub
  2. كيفية تحميل ذلك النموذج مرة أخرى من Hub

## المصادقة

أولاً، ستحتاج إلى التأكد من تثبيت حزمة `huggingface_hub`.

```bash
pip install huggingface_hub
```

ثم، ستحتاج إلى المصادقة على هويتك. يمكنك القيام بذلك من خلال تنفيذ الأمر التالي:

```bash
hf auth login
```

أو، إذا كنت تستخدم دفتر ملاحظات، يمكنك استخدام أداة المساعدة `notebook_login`:

```py
>>> from huggingface_hub import notebook_login
>>> notebook_login()
```

## مشاركة نموذج

```py
>>> import timm
>>> model = timm.create_model('resnet18', pretrained=True, num_classes=4)
```

هنا هو المكان الذي كنت ستدرّب فيه النموذج أو تُعدّله عادةً. سنُغفل ذلك من أجل هذا الشرح التعليمي.

لنفترض أننا قمنا الآن بضبط النموذج. الخطوة التالية ستكون رفعه إلى الـ Hub! يمكننا القيام بذلك باستخدام دالة `timm.models.push_to_hf_hub`. يصف الإعداد المُصدَّر النموذج كما هو الآن (مثل عدد فئاته، أو حجم المدخلات والقنوات إذا تم تغييرها)، راجع [تكييف وتصدير النماذج](model_adaptation).

```py
>>> model_cfg = dict(label_names=['a', 'b', 'c', 'd'])
>>> timm.models.push_to_hf_hub(model, 'resnet18-random', model_config=model_cfg)
```

تشغيل الأمر أعلاه سيقوم بدفع النموذج إلى `<your-username>/resnet18-random` على Hub. يمكنك الآن مشاركة هذا النموذج مع أصدقائك، أو استخدامه في كودك الخاص!

## تحميل نموذج

تحميل نموذج من Hub بسيط للغاية، إذ يكفي استدعاء `timm.create_model` مع اسم مستودع Hub، مسبوقًا بـ`hf-hub:`، و`pretrained=True`. في هذه الحالة، سنستخدم [`nateraw/resnet18-random`](https://huggingface.co/nateraw/resnet18-random)، وهو النموذج الذي رفعناه للتو إلى Hub.

```py
>>> model_reloaded = timm.create_model('hf-hub:nateraw/resnet18-random', pretrained=True)
```

