Keras: a API de alto nível para TensorFlow

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étodo tf.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 em tf.keras.Model.compile , você pode processar vários lotes em uma única chamada tf.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:

Para saber mais sobre Keras, consulte os seguintes tópicos em keras.io :