# Uso de Keras en Hugging Face

Keras es un marco de aprendizaje profundo de código abierto y multi-backend, con soporte para JAX, TensorFlow y PyTorch. Puedes encontrar más detalles al respecto en [keras.io](https://keras.io/).

## Explorando Keras en el Hub

Puedes listar modelos de `keras` en el Hub filtrando por nombre de biblioteca en la [página de modelos](https://huggingface.co/models?library=keras&sort=downloads).

Los modelos de Keras en el Hub incluyen características útiles cuando se suben directamente desde la biblioteca Keras:
1. Una tarjeta de modelo generada con una descripción, un gráfico del modelo y más.
2. Un recuento de descargas para monitorear la popularidad de un modelo.
3. Un fragmento de código para empezar rápidamente con el modelo.

## Uso de modelos existentes

Keras está profundamente integrado con Hugging Face Hub. Esto significa que puedes cargar y guardar modelos en el Hub directamente desde la biblioteca. Para hacerlo, necesitas instalar una versión reciente de Keras y `huggingface_hub`. La biblioteca `huggingface_hub` es un cliente de Python ligero que Keras utiliza para interactuar con el Hub.

```
pip install -U keras huggingface_hub
```

Una vez que tengas la biblioteca instalada, solo necesitas usar el método regular `keras.saving.load_model` pasando como argumento una ruta de Hugging Face. Una ruta de HF es un `repo_id` con el prefijo `hf://`, por ejemplo, `"hf://keras-io/weather-prediction"`. Lee más sobre `load_model` en la [documentación de Keras](https://keras.io/api/models/model_saving_apis/model_saving_and_loading/#load_model-function).

```py
import keras

model = keras.saving.load_model("hf://Wauplin/mnist_example")
```

Si quieres ver cómo cargar un modelo específico, puedes hacer clic en **Use this model** en la página del modelo para obtener un fragmento de código funcional.

## Compartir tus modelos

De manera similar a `load_model`, puedes guardar y compartir un modelo de `keras` en el Hub usando `model.save()` con una ruta de HF:

```py
model = ...
model.save("hf://your-username/your-model-name")
```

Si el repositorio no existe en el Hub, se creará para usted. El modelo cargado contiene una tarjeta de modelo, un gráfico del modelo, los archivos `metadata.json` y `config.json`, y un archivo `model.weights.h5` que contiene los pesos del modelo.

Por defecto, el repositorio contendrá una tarjeta de modelo mínima. Consulta la [guía de tarjetas de modelo](https://huggingface.co/docs/hub/model-cards) para obtener más información sobre las tarjetas de modelo y cómo completarlas. También puedes actualizar las tarjetas de modelo de forma programática usando `huggingface_hub.ModelCard` (ver [guía](https://huggingface.co/docs/huggingface_hub/guides/model-cards)).

> [!TIP]
> Es posible que ya estés familiarizado con los archivos `.keras`. De hecho, un archivo `.keras` es simplemente un archivo zip que contiene los archivos `.json` y `model.weights.h5`. Al subirlo al Hub, el modelo se guarda como una carpeta descomprimida para que puedas navegar por los archivos. Ten en cuenta que si subes manualmente un archivo `.keras` a un repositorio de modelos en el Hub, el repositorio se etiquetará automáticamente como `keras`, pero no podrás cargarlo usando `keras.saving.load_model`.

## Recursos adicionales

* Keras Developer [Guías](https://keras.io/guides/).
* Ejemplos de Keras [examples](https://keras.io/examples/).

