Keras
Keras é uma API de alto nível para Python que permite criar e treinar redes neurais e que, desde o Keras 3, executa o mesmo código em JAX, TensorFlow ou PyTorch.
Keras é uma API Python de alto nível e código aberto para criar e treinar redes neuronais. François Chollet lançou-a em março de 2015 para tornar rápidas de escrever as experiências de aprendizado profundo: um modelo é uma pilha ou um grafo de camadas, compile define o otimizador, a função de perda e as métricas, e fit executa o ciclo de treino. Keras tornou-se a API oficial de alto nível do TensorFlow, e o Keras 3, lançado em novembro de 2023, executa o mesmo código de modelo em JAX, TensorFlow ou PyTorch, selecionado quando Keras é importado. O código curto e legível faz dele uma escolha comum para ensino, prototipagem e competições Kaggle, bem como para modelos de produção em classificação de imagens e processamento de linguagem natural.
Como funciona o Keras#
Um modelo Keras é composto por camadas como Dense, Conv2D, LSTM e MultiHeadAttention, cada uma com os seus próprios pesos. O Keras oferece três formas de as combinar: a API Sequential para uma pilha simples, a API funcional para grafos com ramificações, camadas partilhadas ou várias entradas, e a criação de subclasses de keras.Model para controlar totalmente a passagem direta. Um modelo compilado é treinado com fit, que trata do agrupamento em lotes, da retropropagação, das métricas, dos dados de validação e dos callbacks para guardar pontos de controlo ou interromper o treino antecipadamente; em seguida, avalia dados novos com evaluate e predict. Este código treina um pequeno classificador de dígitos no conjunto de dados MNIST incluído no Keras:
import os
os.environ["KERAS_BACKEND"] = "torch" # or "jax" or "tensorflow", set before importing Keras
import keras
# MNIST handwritten digits, with pixels scaled to [0, 1]
(x_train, y_train), (x_test, y_test) = keras.datasets.mnist.load_data()
x_train, x_test = x_train / 255.0, x_test / 255.0
# Define the model as a stack of layers
model = keras.Sequential(
[
keras.Input(shape=(28, 28)),
keras.layers.Flatten(),
keras.layers.Dense(128, activation="relu"),
keras.layers.Dense(10, activation="softmax"),
]
)
# Configure training, then train and evaluate
model.compile(optimizer="adam", loss="sparse_categorical_crossentropy", metrics=["accuracy"])
model.fit(x_train, y_train, epochs=2, batch_size=64, verbose=0)
loss, accuracy = model.evaluate(x_test, y_test, verbose=0)
print(f"Test accuracy: {accuracy:.3f}")Após duas épocas, apresenta uma precisão de teste de cerca de 0.96; alterar "torch" para "jax" ou "tensorflow" executa o mesmo modelo noutra estrutura sem editar qualquer outra linha.
Keras 3 e os seus backends#
Originalmente, o Keras era executado em vários motores, incluindo Theano, TensorFlow e CNTK. O Keras 2.3, lançado em setembro de 2019, foi a última versão com vários backends; depois disso, o desenvolvimento passou para o TensorFlow como tf.keras. O Keras 3 recuperou a independência de backend: as camadas e os modelos são escritos com base em keras.ops, um conjunto de operações ao estilo NumPy implementado por cada backend, pelo que um modelo guardado no formato .keras pode ser recarregado e treinado em qualquer backend. Com o backend PyTorch, um modelo Keras também é um torch.nn.Module que um ciclo de treino PyTorch personalizado pode usar, e, desde o Keras 3.8, um backend OpenVINO apenas para inferência executa modelos treinados em hardware Intel.
Desde o TensorFlow 2.16, instalar o TensorFlow instala o Keras 3, e o código que ainda precisa do Keras 2 usa o pacote separado tf_keras. Os conversores de modelos também visam o Keras: quando o Ultralytics YOLO exporta YOLO26 para um TensorFlow SavedModel, o conversor onnx2tf reconstrói a rede PyTorch a partir do grafo ONNX como um modelo Keras, camada a camada, antes de o guardar.
Modelos pré-treinados no KerasHub#
O KerasHub disponibiliza implementações Keras 3 de arquiteturas populares com pontos de controlo pré-treinados, como ResNet para imagens, BERT para texto e os modelos de linguagem de grande dimensão Gemma. Um nome predefinido carrega um modelo pronto para aprendizado por transferência: keras_hub.models.ImageClassifier.from_preset("resnet_50_imagenet") devolve um classificador treinado com ImageNet que a afinação adapta a um novo conjunto de dados com a mesma chamada fit usada acima. Tal como o restante Keras 3, os modelos KerasHub são executados em qualquer um dos três backends de treino.
Keras vs. TensorFlow e PyTorch#
- TensorFlow: Uma estrutura completa, com o seu próprio ambiente de execução, compilador e ferramentas de implementação, como TensorFlow Serving e LiteRT. Keras é a API em que muitos utilizadores do TensorFlow escrevem modelos, e TensorFlow é um dos motores que executam código Keras.
- PyTorch: Uma estrutura em que os utilizadores normalmente escrevem o próprio ciclo de treino ou recorrem a uma biblioteca como PyTorch Lightning. Keras fornece o ciclo através de
fite pode usar PyTorch como backend, pelo que os dois não são mutuamente exclusivos. - JAX: A biblioteca da Google de transformações de funções combináveis para diferenciação, compilação XLA e vetorização. JAX não inclui uma API integrada de camadas ou treino, e Keras é uma das formas de obter uma sobre essa base.










