# Usando Keras no Hugging Face

Keras é um framework de aprendizado profundo de código aberto com múltiplos backends, com suporte para JAX, TensorFlow e PyTorch. Você pode encontrar mais detalhes sobre ele em [keras.io](https://keras.io/).

## Explorando o Keras no Hub

Você pode listar modelos `keras` no Hub filtrando pelo nome da biblioteca na [página de modelos](https://huggingface.co/models?library=keras&sort=downloads).

Modelos Keras no Hub vêm com recursos úteis quando enviados diretamente da biblioteca Keras:
1. Um cartão de modelo gerado com uma descrição, um gráfico do modelo e mais.
2. Uma contagem de downloads para monitorar a popularidade de um modelo.
3. Um trecho de código para começar rapidamente com o modelo.

## Usando modelos existentes

Keras é profundamente integrado ao Hugging Face Hub. Isso significa que você pode carregar e salvar modelos no Hub diretamente da biblioteca. Para fazer isso, você precisa instalar uma versão recente do Keras e `huggingface_hub`. A biblioteca `huggingface_hub` é um cliente Python leve usado pelo Keras para interagir com o Hub.

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

Depois de instalar a biblioteca, basta usar o método regular `keras.saving.load_model` passando como argumento um caminho do Hugging Face. Um caminho do HF é um `repo_id` prefixado por `hf://`, por exemplo, `"hf://keras-io/weather-prediction"`. Leia mais sobre `load_model` na [documentação do 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")
```

Se você quiser ver como carregar um modelo específico, pode clicar em **Use this model** na página do modelo para obter um trecho de código funcional!

## Compartilhando seus modelos

De forma semelhante ao `load_model`, você pode salvar e compartilhar um modelo `keras` no Hub usando `model.save()` com um caminho do HF:

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

Se o repositório não existir no Hub, ele será criado para você. O modelo enviado contém um cartão do modelo, um gráfico do modelo, os arquivos `metadata.json` e `config.json`, e um arquivo `model.weights.h5` contendo os pesos do modelo.

Por padrão, o repositório conterá um model card mínimo. Consulte o [guia de Model Cards](https://huggingface.co/docs/hub/model-cards) para saber mais sobre model cards e como completá-los. Você também pode atualizar model cards programaticamente usando `huggingface_hub.ModelCard` (veja o [guia](https://huggingface.co/docs/huggingface_hub/guides/model-cards)).

> [!TIP]
> Você talvez já esteja familiarizado com arquivos `.keras`. Na verdade, um arquivo `.keras` é simplesmente um arquivo zip contendo os arquivos `.json` e `model.weights.h5`. Quando enviado ao Hub, o modelo é salvo como uma pasta descompactada para que você possa navegar pelos arquivos. Observe que, se você enviar manualmente um arquivo `.keras` para um repositório de modelos no Hub, o repositório será automaticamente marcado como `keras`, mas você não poderá carregá-lo usando `keras.saving.load_model`.

## Recursos adicionais

* Keras Developer [Guides](https://keras.io/guides/).
* Exemplos do Keras [examples](https://keras.io/examples/).

