Path: blob/master/site/pt-br/guide/migrate/migrating_estimator.ipynb
25118 views
Copyright 2021 The TensorFlow Authors.
Como migrar das APIs Estimator para Keras
Este guia demonstra como migrar das APIs tf.estimator.Estimator
do TensorFlow 1 para as APIs tf.keras
do TensorFlow 2. Primeiro, você configurará e executará um modelo básico para treinamento e avaliação com tf.estimator.Estimator
. Em seguida, você executará as etapas equivalentes no TensorFlow 2 com as APIs tf.keras
. Você também aprenderá como personalizar a etapa de treinamento criando uma subclasse de tf.keras.Model
e usando tf.GradientTape
.
No TensorFlow 1, as APIs
tf.estimator.Estimator
de alto nível permitem que você treine e avalie um modelo, além de realizar inferências e salvar seu modelo (para servir).No TensorFlow 2, use as APIs Keras para executar as tarefas mencionadas acima, como construção de modelo, aplicação de gradiente, treinamento, avaliação e previsão.
(Para migrar workflows de salvamento de modelo/checkpoint para o TensorFlow 2, confira os guias de migração SavedModel e Checkpoint.)
Configuração
Comece com imports e um dataset simples:
TensorFlow 1: treine e avalie com tf.estimator.Estimator
Este exemplo mostra como realizar treinamento e avaliação com tf.estimator.Estimator
no TensorFlow 1.
Comece definindo algumas funções: uma função de entrada para os dados de treinamento, uma função de entrada de avaliação para os dados de avaliação e uma função de modelo que informa ao Estimator
como a operação de treinamento é definida com as características e rótulos:
Instancie seu Estimator
e treine o modelo:
Avalie o programa com o dataset de avaliação:
TensorFlow 2: treine e avalie com os métodos Keras integrados
Este exemplo demonstra como realizar treinamento e avaliação com Keras Model.fit
e Model.evaluate
no TensorFlow 2. (Saiba mais no guia Treinamento e avaliação com métodos integrados).
Comece preparando o pipeline do dataset com as APIs
tf.data.Dataset
.Defina um modelo Keras Sequential simples com uma camada linear (
tf.keras.layers.Dense
).Crie uma instância de um otimizador Adagrad (
tf.keras.optimizers.Adagrad
).Configure o modelo para treinamento passando a variável
optimizer
e a perda do erro quadrático médio ("mse"
) paraModel.compile
.
Com isto, você está pronto para treinar o modelo chamando Model.fit
:
Finalmente, avalie o modelo com Model.evaluate
:
TensorFlow 2: treine e avalie com uma etapa de treinamento personalizada e métodos Keras integrados
No TensorFlow 2, você também pode escrever sua própria função de passo de treinamento personalizada com tf.GradientTape
para executar passos para frente e para trás, enquanto aproveita o suporte de treinamento integrado, como tf.keras.callbacks.Callback
e tf.distribute.Strategy
. (Saiba mais em Personalizando o que acontece no Model.fit e Escrevendo loops de treinamento personalizados do zero.)
Neste exemplo, comece criando um tf.keras.Model
personalizado criando uma subclasse de tf.keras.Sequential
que substitui Model.train_step
. (Saiba mais sobre subclasses tf.keras.Model). Dentro dessa classe, defina uma função train_step
personalizada que, para cada lote de dados, execute um passo para frente e um passo para trás durante uma etapa de treinamento.
Em seguida, como antes:
Prepare o pipeline do dataset com
tf.data.Dataset
.Defina um modelo simples com uma camada
tf.keras.layers.Dense
.Instancie o Adagrad (
tf.keras.optimizers.Adagrad
)Configure o modelo para treinamento com
Model.compile
, enquanto usa o erro quadrático médio ("mse"
) como função de perda.
Chame Model.fit
para treinar o modelo:
E, finalmente, avalie o programa com Model.evaluate
:
Próximos passos
Recursos adicionais do Keras que você pode achar úteis:
Os guias abaixo podem ajudar na migração de workflows de estratégias de distribuição de APIs tf.estimator
: