timm documentation
Partager et charger des modèles depuis le Hugging Face Hub
Partager et charger des modèles depuis le Hugging Face Hub
La bibliothèque timm intègre nativement le Hugging Face Hub, ce qui facilite le partage et le chargement de modèles depuis le 🤗 Hub.
Dans ce court guide, nous allons voir comment :
- Partager un modèle
timmsur le Hub - Comment recharger ce modèle depuis le Hub
Authentification
Tout d'abord, vous devez vous assurer que le package huggingface_hub est installé.
pip install huggingface_hub
Ensuite, vous devrez vous authentifier. Vous pouvez le faire en exécutant la commande suivante :
hf auth login
Par contre, si vous utilisez un notebook, vous pouvez utiliser l'assistant notebook_login :
>>> from huggingface_hub import notebook_login
>>> notebook_login()Partager un modèle
>>> import timm
>>> model = timm.create_model('resnet18', pretrained=True, num_classes=4)C’est ici que vous entraîneriez ou affinerez normalement le modèle. Nous allons passer cette étape pour les besoins de ce tutoriel.
Prenons pour acquis que nous avons maintenant affiné le modèle. L’étape suivante consisterait à le publier sur le Hub ! Nous pouvons le faire à l’aide de la fonction timm.models.push_to_hf_hub. La configuration exportée décrit le modèle tel qu’il est actuellement (par exemple, son nombre de classes, ou la taille et le nombre de canaux d’entrée s’ils ont été modifiés), voir adapter et exporter des modèles.
>>> model_cfg = dict(label_names=['a', 'b', 'c', 'd'])
>>> timm.models.push_to_hf_hub(model, 'resnet18-random', model_config=model_cfg)L’exécution de la commande ci-dessus pousse le modèle vers <your-username>/resnet18-random sur le Hub. Vous pouvez désormais partager ce modèle avec vos amis, ou l’utiliser dans votre propre code !
Chargement d'un modèle
Charger un modèle depuis le Hub est aussi simple que d’appeler timm.create_model avec le nom du dépôt du Hub, préfixé par hf-hub:, et pretrained=True. Dans ce cas, nous utiliserons nateraw/resnet18-random, qui est le modèle que nous venons de pousser sur le Hub.
>>> model_reloaded = timm.create_model('hf-hub:nateraw/resnet18-random', pretrained=True)