Path: blob/master/site/pt-br/guide/migrate/canned_estimators.ipynb
25118 views
Copyright 2021 The TensorFlow Authors.
Exemplos de migração: estimadores predefinidos
Estimadores predefinidos (ou pré-fabricados) são tradicionalmente usados no TensorFlow 1 como soluções rápidas e fáceis de treinar modelos para uma variedade de casos de uso típicos. O TensorFlow 2 fornece substitutos aproximados diretos para vários deles através de modelos Keras. Para os estimadores predefinidos que não possuem substitutos integrados no TensorFlow 2, você ainda pode criar sua própria substituição com bastante facilidade.
Este guia mostrará alguns exemplos de equivalentes diretos e substituições personalizadas para demonstrar como os modelos derivados de tf.estimator
do TensorFlow 1 podem ser migrados para o TensorFlow 2 com Keras.
Ou seja, este guia inclui exemplos para migração:
De
tf.estimator
,Classifier
ouRegressor
LinearEstimator
tf.estimator no TensorFlow 1 paratf.compat.v1.keras.models.LinearModel
do Keras no TensorFlow 2Do
tf.estimator
,Classifier
ouRegressor
deDNNEstimator
no TensorFlow 1 para um Keras DNN ModelKeras personalizado no TensorFlow 2Do
tf.estimator
,Classifier
ouRegressor
deDNNLinearCombinedEstimator
no TensorFlow 1 paratf.compat.v1.keras.models.WideDeepModel
no TensorFlow 2Do
tf.estimator
,Classifier
ouRegressor
BoostedTreesEstimator
tf.estimator no TensorFlow 1 paratfdf.keras.GradientBoostedTreesModel
no TensorFlow 2
Um precursor comum para o treinamento de um modelo é o pré-processamento de características, que é feito para modelos TensorFlow 1 Estimator com tf.feature_column
. Para mais informações sobre o pré-processamento de características no TensorFlow 2, consulte este guia sobre como migrar de colunas de características para a API de camadas de pré-processamento do Keras.
Configuração
Comece com algumas importações necessárias do TensorFlow,
prepare alguns dados simples para demonstração usando o dataset padrão do Titanic,
e crie um método para instanciar um otimizador de amostra simplista para usar com vários modelos TensorFlow 1 Estimator e TensorFlow 2 Keras.
Exemplo 1: migrando do LinearEstimator
TensorFlow 1: usando o LinearEstimator
No TensorFlow 1, você pode usar o tf.estimator.LinearEstimator
para criar um modelo linear de referência para problemas de regressão e classificação.
TensorFlow 2: usando Keras LinearModel
No TensorFlow 2, você pode criar uma instância do Keras tf.compat.v1.keras.models.LinearModel
, que é o substituto do tf.estimator.LinearEstimator
. O caminho tf.compat.v1.keras
é usado para indicar que o modelo pré-fabricado existe para compatibilidade.
Exemplo 2: migrando do DNNEstimator
TensorFlow 1: usando DNNEstimator
No TensorFlow 1, você pode usar o tf.estimator.DNNEstimator
para criar um modelo de rede neural profunda (DNN) básico para problemas de regressão e classificação.
TensorFlow 2: usando Keras para criar um modelo DNN personalizado
No TensorFlow 2, você pode criar um modelo DNN personalizado para substituir aquele gerado por tf.estimator.DNNEstimator
, com níveis semelhantes de personalização especificada pelo usuário (por exemplo, como no exemplo anterior, a capacidade de personalizar um otimizador de modelo escolhido).
Um workflow semelhante pode ser usado para substituir tf.estimator.experimental.RNNEstimator
por um modelo de rede neural recorrente Keras (RNN). O Keras fornece diversas opções integradas e personalizáveis através de tf.keras.layers.RNN
, tf.keras.layers.LSTM
e tf.keras.layers.GRU
. Para saber mais, veja Camadas RNN integradas: um exemplo simples, seção do guia RNN com o Keras.
Exemplo 3: migrando do DNNLinearCombinedEstimator
TensorFlow 1: usando o DNNLinearCombinedEstimator
No TensorFlow 1, você pode usar tf.estimator.DNNLinearCombinedEstimator
para criar um modelo combinado para problemas de regressão e classificação com capacidade de personalização para seus componentes lineares e DNN.
TensorFlow 2: usando Keras WideDeepModel
No TensorFlow 2, você pode criar uma instância do Keras tf.compat.v1.keras.models.WideDeepModel
para substituir uma gerada por tf.estimator.DNNLinearCombinedEstimator
, com níveis semelhantes de personalização especificada pelo usuário (por exemplo, como no exemplo anterior, a capacidade de personalizar um otimizador de modelo escolhido).
Este WideDeepModel
é construído com base num LinearModel
constituinte e num modelo DNN personalizado, ambos discutidos nos dois exemplos anteriores. Um modelo linear personalizado também pode ser usado no lugar do Keras LinearModel
integrado, se desejado.
Se você prefere construir seu próprio modelo em vez de usar um estimador pronto, confira o guia Modelo sequencial Keras. Para obter mais informações sobre treinamento personalizado e otimizadores, veja o guia Treinamento personalizado: passo a passo.
Exemplo 4: migrando do BoostedTreesEstimator
TensorFlow 1: usando o BoostedTreesEstimator
No TensorFlow 1, você poderia usar o tf.estimator.BoostedTreesEstimator
para criar uma base para criar um modelo de Gradient Boosting básico usando um conjunto de árvores de decisão para problemas de regressão e classificação. Essa funcionalidade não está mais incluída no TensorFlow 2.
TensorFlow 2: usando Florestas de Decisão do TensorFlow
No TensorFlow 2, o tf.estimator.BoostedTreesEstimator
é substituído por tfdf.keras.GradientBoostedTreesModel do pacote TensorFlow Decision Forests.
As Florestas de Decisão do TensorFlow oferecem diversas vantagens sobre o tf.estimator.BoostedTreesEstimator
, principalmente em relação à qualidade, velocidade, facilidade de uso e flexibilidade. Para saber mais sobre as florestas de decisão do TensorFlow, comece com o beginner colab.
O exemplo a seguir mostra como treinar um modelo Gradient Boosted Trees usando o TensorFlow 2:
Instale as Florestas de Decisão do TensorFlow.
Crie um dataset do TensorFlow. Observe que as Florestas de Decisão oferecem suporte nativo a muitos tipos de recursos e não precisam de pré-processamento.
Treine o modelo no dataset train_dataset
.
Avalie a qualidade do modelo no dataset eval_dataset
.
O Gradient Boosted Trees é apenas um dos muitos algoritmos de floresta de decisão disponíveis no TensorFlow Decision Forests. Por exemplo, Random Forests (florestas aleatórias), disponível como tfdf.keras.GradientBoostedTreesModel é muito resistente ao overfitting, enquanto CART (disponível como tfdf.keras.CartModel) é ótimo para a interpretação de modelos.
No próximo exemplo, treine e plote um modelo Random Forest.
No exemplo final, treine e avalie um modelo CART.