# Compartir y cargar modelos desde el Hugging Face Hub

La biblioteca `timm` tiene una integración integrada con Hugging Face Hub, lo que facilita compartir y cargar modelos desde el 🤗 Hub.

En esta breve guía, veremos cómo:
  1. Compartir un modelo de `timm` en el Hub
  2. Cómo volver a cargar ese modelo desde el Hub

## Autenticación

Primero, asegúrate de tener instalado el paquete `huggingface_hub`.

```bash
pip install huggingface_hub
```

Luego, deberá autenticarse. Puede hacerlo ejecutando el siguiente comando:

```bash
hf auth login
```

O, si estás usando un notebook, puedes usar el helper `notebook_login`:

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

## Compartir un modelo

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

Aquí es donde normalmente se entrenaría o ajustaría el modelo. Lo omitiremos por el bien de este tutorial.

Supongamos que ya hemos ajustado el modelo. El siguiente paso sería subirlo al Hub. Podemos hacerlo con la función `timm.models.push_to_hf_hub`. La configuración exportada describe el modelo tal como es ahora (por ejemplo, su número de clases, o el tamaño y los canales de entrada si se modificaron), consulte [adaptar y exportar modelos](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)
```

Ejecutar lo anterior publicaría el modelo en `<your-username>/resnet18-random` en el Hub. Ahora puedes compartir este modelo con tus amigos o usarlo en tu propio código.

## Carga de un modelo

Cargar un modelo desde el Hub es tan sencillo como llamar a `timm.create_model` con el nombre del repositorio del Hub, prefijado con `hf-hub:`, y `pretrained=True`. En este caso, usaremos [`nateraw/resnet18-random`](https://huggingface.co/nateraw/resnet18-random), que es el modelo que acabamos de subir al Hub.

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

