Esta página foi traduzida pela API Cloud Translation.
Switch to English

tf.estimator.DNNLinearCombinedRegressor

TensorFlow 1 versão Ver fonte no GitHub

Um estimador para TensorFlow Linear e DNN juntou modelos para a regressão.

Herda de: Estimator

Exemplo:

 numeric_feature = numeric_column(...)
categorical_column_a = categorical_column_with_hash_bucket(...)
categorical_column_b = categorical_column_with_hash_bucket(...)

categorical_feature_a_x_categorical_feature_b = crossed_column(...)
categorical_feature_a_emb = embedding_column(
    categorical_column=categorical_feature_a, ...)
categorical_feature_b_emb = embedding_column(
    categorical_column=categorical_feature_b, ...)

estimator = tf.estimator.DNNLinearCombinedRegressor(
    # wide settings
    linear_feature_columns=[categorical_feature_a_x_categorical_feature_b],
    linear_optimizer=tf.keras.optimizers.Ftrl(...),
    # deep settings
    dnn_feature_columns=[
        categorical_feature_a_emb, categorical_feature_b_emb,
        numeric_feature],
    dnn_hidden_units=[1000, 500, 100],
    dnn_optimizer=tf.keras.optimizers.Adagrad(...),
    # warm-start settings
    warm_start_from="/path/to/checkpoint/dir")

# To apply L1 and L2 regularization, you can set dnn_optimizer to:
tf.compat.v1.train.ProximalAdagradOptimizer(
    learning_rate=0.1,
    l1_regularization_strength=0.001,
    l2_regularization_strength=0.001)
# To apply learning rate decay, you can set dnn_optimizer to a callable:
lambda: tf.keras.optimizers.Adam(
    learning_rate=tf.compat.v1.train.exponential_decay(
        learning_rate=0.1,
        global_step=tf.compat.v1.train.get_global_step(),
        decay_steps=10000,
        decay_rate=0.96)
# It is the same for linear_optimizer.

# Input builders
def input_fn_train:
  # Returns tf.data.Dataset of (x, y) tuple where y represents label's class
  # index.
  pass
def input_fn_eval:
  # Returns tf.data.Dataset of (x, y) tuple where y represents label's class
  # index.
  pass
def input_fn_predict:
  # Returns tf.data.Dataset of (x, None) tuple.
  pass
estimator.train(input_fn=input_fn_train, steps=100)
metrics = estimator.evaluate(input_fn=input_fn_eval, steps=10)
predictions = estimator.predict(input_fn=input_fn_predict)
 

Entrada de train e evaluate deveriam ter as seguintes características, caso contrário, haverá uma KeyError :

  • para cada column em dnn_feature_columns + linear_feature_columns :
    • Se column é uma CategoricalColumn , um recurso com key=column.name cujo value é um SparseTensor .
    • Se column é um WeightedCategoricalColumn , duas características: a primeira com key o nome da coluna id, o segundo com key o nome da coluna de peso. Ambas as características value deve ser um SparseTensor .
    • Se column é uma DenseColumn , um recurso com key=column.name cujo value é um Tensor .

Perda é calculada usando erro quadrado médio.

model_dir Diretório para salvar os parâmetros do modelo, gráfico e etc. Isso também pode ser usado para postos de controle de carga a partir do diretório em um estimador para continuar treinando um modelo salvo anteriormente.
linear_feature_columns Um iteráveis ​​contendo todas as colunas de função utilizados por parte linear do modelo. Todos os itens no conjunto devem ser instâncias de classes derivadas de FeatureColumn .
linear_optimizer Um exemplo de tf.keras.optimizers.* Usado para aplicar gradientes para a parte linear do modelo. também pode ser uma string (um dos 'Adagrad', 'Adam', 'Ftrl', 'RMSProp', 'SGD), nem pode ser chamada. O padrão é FTRL Optimizer.
dnn_feature_columns Um iterable contendo todas as colunas de recursos usados ​​por uma profunda parte do modelo. Todos os itens no conjunto devem ser instâncias de classes derivadas de FeatureColumn .
dnn_optimizer Uma instância de tf.keras.optimizers.* Usado para aplicar gradientes para a parte profunda do modelo. também pode ser uma string (um dos 'Adagrad', 'Adam', 'Ftrl', 'RMSProp', 'SGD), nem pode ser chamada. O padrão é Adagrad Optimizer.
dnn_hidden_units Lista de unidades escondidas por camada. Todas as camadas são totalmente ligado.
dnn_activation_fn função de activação aplicado em cada camada. Se None, usará tf.nn.relu .
dnn_dropout Quando não Nenhum, a probabilidade vamos abandonar uma determinada coordenada.
label_dimension Número de regressão alvos por exemplo. Este é o tamanho da última dimensão dos rótulos e logits Tensor objetos (normalmente, estes têm forma [batch_size, label_dimension] ).
weight_column Uma corda ou um NumericColumn criado por tf.feature_column.numeric_column definindo coluna característica representando pesos. Ele é usado para exemplos de peso ou aumentar para baixo durante o treinamento. Vai ser multiplicado pela perda do exemplo. Se for uma string, ele é usado como uma chave para buscar tensor peso dos features . Se é um _NumericColumn , tensor cru é obtido pela chave weight_column.key , então weight_column.normalizer_fn é aplicada sobre ele para obter tensor peso.
config RunConfig objeto para definir as configurações de tempo de execução.
warm_start_from A filepath string para um posto de controle para aquecer-começam a partir de, ou um WarmStartSettings opor-se totalmente configure-partida quente. Se o filepath corda é fornecido em vez de um WarmStartSettings , em seguida, todos os pesos são começou-quente, e presume-se que vocabulários e nomes Tensor mantêm-se inalterados.
loss_reduction Um dos tf.losses.Reduction exceto NONE . Descreve como reduzir a perda de formação ao longo do lote. O padrão é SUM_OVER_BATCH_SIZE .
batch_norm Se pretende utilizar a normalização em lotes após cada camada escondida.
linear_sparse_combiner Uma string especificando a forma de reduzir o modelo linear se uma coluna categórico é multivalente. Um dos "sqrtn" "média" e "soma" - estes são efetivamente diferentes maneiras de fazer a normalização exemplo de nível, que pode ser útil para os recursos saco-de-palavras. Para mais detalhes, consulte tf.feature_column.linear_model .

ValueError Se ambos os linear_feature_columns e dnn_features_columns estão vazios, ao mesmo tempo.

Compatibilidade ansioso

Estimadores pode ser usado durante a execução ansioso está habilitado. Note-se que input_fn e todos os ganchos são executados dentro de um contexto gráfico, então eles têm que ser escrito para ser compatível com o modo gráfico. Note-se que input_fn código usando tf.data geralmente funciona tanto gráfico e modos ansiosos.

config

export_savedmodel

model_dir

model_fn Retorna o model_fn que é obrigado a self.params .
params

Métodos

eval_dir

Ver fonte

Mostra o nome do diretório onde métricas de avaliação são despejados.

args
name Nome da avaliação, se as necessidades do usuário para executar múltiplas avaliações sobre diferentes conjuntos de dados, como no treinamento de dados vs dados de teste. Métricas para diferentes avaliações são guardadas em pastas separadas, e aparecem separadamente em tensorboard.

Devoluções
Uma seqüência que é o caminho do diretório contém métricas de avaliação.

evaluate

Ver fonte

Avalia o modelo dado dados de avaliação input_fn .

Para cada etapa, chama input_fn , que retorna um lote de dados. Avalia até que:

  • steps lotes são processados, ou
  • input_fn levanta uma excepção fim-de-entrada ( tf.errors.OutOfRangeError ou StopIteration ).

args
input_fn Uma função que constrói os dados de entrada para a avaliação. Veja Premade Estimators para mais informações. A função deve construir e retornar um dos seguintes:

  • Um tf.data.Dataset objecto: saídas do Dataset objecto tem de ser um tuplo (features, labels) com as mesmas restrições como abaixo.
  • Uma tupla (features, labels) : Onde features é um tf.Tensor ou um dicionário de nome do recurso string para Tensor e labels é um Tensor ou um dicionário de nome do rótulo string para Tensor . Ambos os features e labels são consumidos por model_fn . Eles devem satisfazer a expectativa de model_fn de entradas.
steps Número de passos para que avaliar o modelo. Se None , avalia até input_fn levanta uma excepção fim-de-entrada.
hooks Lista de tf.train.SessionRunHook casos subclasse. Usado para retornos de chamada dentro da chamada avaliação.
checkpoint_path Caminho de um posto de controle específico para avaliar. Se None , o último posto de controle em model_dir é usado. Se não há postos de controle em model_dir , a avaliação é executado com recém-inicializado Variables em vez dos restaurados a partir do ponto de verificação.
name Nome da avaliação, se as necessidades do usuário para executar múltiplas avaliações sobre diferentes conjuntos de dados, como no treinamento de dados vs dados de teste. Métricas para diferentes avaliações são guardadas em pastas separadas, e aparecem separadamente em tensorboard.

Devoluções
Um dicionário que contém as métricas de avaliação especificados em model_fn de chave pelo nome, bem como uma entrada global_step que contém o valor da etapa global para o qual foi realizada a referida avaliação. Para estimadores enlatados, o Dict contém a loss (perda média por mini-lote) e o average_loss (perda média por amostra). Classificadores enlatados também retornam a accuracy . Regressores enlatados também devolver o label/mean ea prediction/mean .

Levanta
ValueError Se steps <= 0 .

experimental_export_all_saved_models

Ver fonte

Exportações uma SavedModel com tf.MetaGraphDefs para cada modo solicitado.

Para cada modo aprovada em via input_receiver_fn_map , este método cria um novo gráfico chamando o input_receiver_fn obter recurso e rotular Tensor s. Em seguida, este método chama o Estimator de model_fn no modo passada para gerar o gráfico de modelo com base nessas características e etiquetas, e restaura o checkpoint dada (ou, na falta disso, o checkpoint mais recente) no gráfico. Apenas um dos modos é usado para guardar variáveis ao SavedModel (ordem de preferência: tf.estimator.ModeKeys.TRAIN , tf.estimator.ModeKeys.EVAL , então tf.estimator.ModeKeys.PREDICT ), de tal forma que até três tf.MetaGraphDefs são salvos com um único conjunto de variáveis em uma única SavedModel diretório.

Para as variáveis e tf.MetaGraphDefs , um diretório timestamped