Keras é a API de alto nível da plataforma TensorFlow. Ele fornece uma interface acessível e altamente produtiva para resolver problemas de aprendizado de máquina (ML), com foco no aprendizado profundo moderno. Keras cobre todas as etapas do fluxo de trabalho de aprendizado de máquina, desde o processamento de dados até o ajuste de hiperparâmetros e a implantação. Foi desenvolvido com foco em permitir experimentação rápida.
Com Keras, você tem acesso total à escalabilidade e aos recursos de plataforma cruzada do TensorFlow. Você pode executar Keras em um pod TPU ou em grandes clusters de GPUs e pode exportar modelos Keras para execução no navegador ou em dispositivos móveis. Você também pode servir modelos Keras por meio de uma API web.
Keras foi projetado para reduzir a carga cognitiva, atingindo os seguintes objetivos:
- Ofereça interfaces simples e consistentes.
- Minimize o número de ações necessárias para casos de uso comuns.
- Forneça mensagens de erro claras e acionáveis.
- Siga o princípio da divulgação progressiva da complexidade: é fácil começar e você pode concluir fluxos de trabalho avançados aprendendo à medida que avança.
- Ajudá-lo a escrever código conciso e legível.
Quem deve usar Keras
A resposta curta é que todo usuário do TensorFlow deve usar as APIs Keras por padrão. Quer você seja um engenheiro, um pesquisador ou um profissional de ML, você deve começar com Keras.
Existem alguns casos de uso (por exemplo, criar ferramentas com base no TensorFlow ou desenvolver sua própria plataforma de alto desempenho) que exigem APIs de baixo nível do TensorFlow Core . Mas se o seu caso de uso não se enquadra em uma das aplicações Core API , você deve preferir o Keras.
Componentes da API Keras
As principais estruturas de dados do Keras são camadas e modelos . Uma camada é uma simples transformação de entrada/saída e um modelo é um gráfico acíclico direcionado (DAG) de camadas.
Camadas
A classe tf.keras.layers.Layer
é a abstração fundamental em Keras. Uma Layer
encapsula um estado (pesos) e alguns cálculos (definidos no método tf.keras.layers.Layer.call
).
Os pesos criados por camadas podem ser treináveis ou não treináveis. As camadas podem ser compostas recursivamente: se você atribuir uma instância de camada como um atributo de outra camada, a camada externa começará a rastrear os pesos criados pela camada interna.
Você também pode usar camadas para lidar com tarefas de pré-processamento de dados, como normalização e vetorização de texto. Camadas de pré-processamento podem ser incluídas diretamente em um modelo, durante ou após o treinamento, o que torna o modelo portátil.
Modelos
Um modelo é um objeto que agrupa camadas e que pode ser treinado em dados.
O tipo mais simples de modelo é o modelo Sequential
, que é uma pilha linear de camadas. Para arquiteturas mais complexas, você pode usar a API funcional Keras , que permite construir gráficos arbitrários de camadas, ou usar subclasses para escrever modelos do zero .
A classe tf.keras.Model
apresenta métodos integrados de treinamento e avaliação:
-
tf.keras.Model.fit
: treina o modelo para um número fixo de épocas. -
tf.keras.Model.predict
: Gera previsões de saída para as amostras de entrada. -
tf.keras.Model.evaluate
: Retorna os valores de perda e métricas do modelo; configurado por meio do métodotf.keras.Model.compile
.
Esses métodos dão acesso aos seguintes recursos de treinamento integrados:
- Retornos de chamada . Você pode aproveitar retornos de chamada integrados para parada antecipada, checkpoint de modelo e monitoramento do TensorBoard . Você também pode implementar retornos de chamada personalizados .
- Treinamento distribuído . Você pode facilmente ampliar seu treinamento para várias GPUs, TPUs ou dispositivos.
- Fusão passo. Com o argumento
steps_per_execution
emtf.keras.Model.compile
, você pode processar vários lotes em uma única chamadatf.function
, o que melhora muito a utilização do dispositivo em TPUs.
Para uma visão detalhada de como usar fit
, consulte o guia de treinamento e avaliação . Para saber como personalizar os loops integrados de treinamento e avaliação, consulte Personalizando o que acontece em fit()
.
Outras APIs e ferramentas
Keras fornece muitas outras APIs e ferramentas para aprendizado profundo, incluindo:
Para obter uma lista completa de APIs disponíveis, consulte a referência da API Keras . Para saber mais sobre outros projetos e iniciativas Keras, consulte O ecossistema Keras .
Próximos passos
Para começar a usar Keras com TensorFlow, confira os seguintes tópicos:
- O modelo sequencial
- A API Funcional
- Treinamento e avaliação com métodos integrados
- Criando novas camadas e modelos por meio de subclasses
- Serialização e salvamento
- Trabalhando com camadas de pré-processamento
- Personalizando o que acontece em fit()
- Escrevendo um loop de treinamento do zero
- Trabalhando com RNNs
- Noções básicas sobre mascaramento e preenchimento
- Escrevendo seus próprios retornos de chamada
- Transferir aprendizagem e ajuste fino
- Treinamento multi-GPU e distribuído
Para saber mais sobre Keras, consulte os seguintes tópicos em keras.io :