Se usó la API de Cloud Translation para traducir esta página.
Switch to English

tf.estimator.DNNLinearCombinedClassifier

TensorFlow 1 versión Ver código fuente en GitHub

Un estimador de TensorFlow lineales y DNN se unió clasificación modelos.

Hereda de: Estimator

Ejemplo:

 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_id_column=categorical_feature_b, ...)

estimator = tf.estimator.DNNLinearCombinedClassifier(
    # 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 del train y evaluate debería haber siguientes características, de lo contrario habrá un KeyError :

  • para cada column en dnn_feature_columns + linear_feature_columns :
    • Si column es una CategoricalColumn , una característica con key=column.name cuyo value es un SparseTensor .
    • Si column es una WeightedCategoricalColumn , dos características: la primera con key el nombre de columna ID, el segundo con key el nombre de columna de peso. Ambas características value debe ser un SparseTensor .
    • Si column es una DenseColumn , una característica con key=column.name cuyo value es un Tensor .

La pérdida se calcula utilizando softmax entropía cruzada.

model_dir Directorio para guardar los parámetros del modelo, gráfico, etc Esto también puede ser usado para los puestos de control de carga desde el directorio en un estimador para continuar la formación de un modelo previamente guardado.
linear_feature_columns Un iterable que contiene todas las columnas de función utilizado por parte lineal del modelo. Todos los artículos en el conjunto debe ser instancias de clases derivadas de FeatureColumn .
linear_optimizer Una instancia de tf.keras.optimizers.* Utiliza para aplicar gradientes a la parte lineal del modelo. También puede ser una cadena (uno de 'Adagrad', 'Adán', 'Ftrl', 'RMSProp', 'SGD'), o exigible. Por defecto es FTRL optimizador.
dnn_feature_columns Un iterable que contiene todas las columnas de función utilizado por una profunda parte del modelo. Todos los artículos en el conjunto debe ser instancias de clases derivadas de FeatureColumn .
dnn_optimizer Una instancia de tf.keras.optimizers.* Utiliza para aplicar gradientes a la parte profunda del modelo. También puede ser una cadena (uno de 'Adagrad', 'Adán', 'Ftrl', 'RMSProp', 'SGD'), o exigible. Por defecto es Adagrad optimizador.
dnn_hidden_units Lista de unidades ocultas por capa. Todas las capas están completamente conectados.
dnn_activation_fn función de activación aplicada a cada capa. Si ninguno, utilizará tf.nn.relu .
dnn_dropout Cuando no Ninguno, la probabilidad vamos a abandonar una coordenada dada.
n_classes Número de clases de etiquetas. El valor predeterminado es 2, la clasificación a saber binario. Debe ser> 1.
weight_column Una cadena o una _NumericColumn creados por tf.feature_column.numeric_column definir columna característica que representa los pesos. Se utiliza para impulsar ejemplos peso o hacia abajo durante el entrenamiento. Se multiplica por la pérdida del ejemplo. Si se trata de una cadena, se utiliza como una clave a buscar tensor de peso de las features . Si se trata de un _NumericColumn , tensor de la prima se trae por la clave weight_column.key , entonces weight_column.normalizer_fn se aplica en él para obtener tensor de peso.
label_vocabulary Una lista de cadenas representa valores posibles de la etiqueta. Si se les da, las etiquetas deben ser de tipo cadena y tienen ningún valor en label_vocabulary . Si no se le da, que las etiquetas de medios que ya se codifican como número entero o flotador dentro de [0, 1] para n_classes=2 y codificados como valores enteros en {0, 1, ..., n_classes-1} para n_classes > 2. También habrá errores si no se proporciona el vocabulario y las etiquetas son de cadena.
config RunConfig objeto de configurar los ajustes de tiempo de ejecución.
warm_start_from Una ruta de archivo de cadena a un puesto de control de arranque en caliente de productos o la WarmStartSettings objeto a partir calentamiento totalmente configure. Si se proporciona la ruta de archivo de una cadena en lugar WarmStartSettings , a continuación, todos los pesos son empezado-caliente, y se supone que los vocabularios y nombres de tensor no se han modificado.
loss_reduction Uno de tf.losses.Reduction excepto NONE . Describe la forma de reducir la pérdida de la formación sobre lote. Por defecto es SUM_OVER_BATCH_SIZE .
batch_norm Si desea utilizar la normalización de lotes después de cada capa oculta.
linear_sparse_combiner Una cadena que especifica cómo reducir el modelo lineal si una columna categórico es multivalente. Uno de "sqrtn" "media" y "suma" - estos son efectivamente diferentes maneras de hacer la normalización ejemplo de nivel, que puede ser útil para las características de la bolsa-de-palabras. Para más detalles, véase tf.feature_column.linear_model .

ValueError Si ambos linear_feature_columns y dnn_features_columns están vacías, al mismo tiempo.

Compatibilidad ansiosos

Estimadores se pueden utilizar mientras que la ejecución ansiosa está activado. Tenga en cuenta que input_fn y todos los ganchos se ejecutan dentro de un contexto gráfico, así que tienen que ser escrito para ser compatible con el modo gráfico. Tenga en cuenta que input_fn código usando tf.data general funciona tanto en el modo gráfico y ansiosos.

config

export_savedmodel

model_dir

model_fn Devuelve el model_fn que está obligado a self.params .
params

Métodos

eval_dir

Ver fuente

Muestra el nombre del directorio en el que se vierten métricas de evaluación.

args
name Nombre de la evaluación si las necesidades del usuario para ejecutar múltiples evaluaciones en diferentes conjuntos de datos, como en el entrenamiento de los datos frente a los datos de prueba. Métricas para diferentes evaluaciones se guardan en carpetas separadas, y aparecen por separado en tensorboard.

Devoluciones
Una cadena que es la ruta de directorio contiene métricas de evaluación.

evaluate

Ver fuente

Evalúa la modelo dado datos de la evaluación input_fn .

Para cada paso, las llamadas input_fn , que devuelve un lote de datos. Evalúa hasta que:

args
input_fn Una función que construye los datos de entrada para la evaluación. Ver preparado de antemano estimadores para más información. La función debe construir y devolver uno de los siguientes:

  • A tf.data.Dataset objeto: Salidas de Dataset de objeto debe ser una tupla (features, labels) con mismas restricciones que a continuación.
  • Una tupla (features, labels) : ¿Dónde features es un tf.Tensor o un diccionario de nombre de elemento de cadena para Tensor y labels es una Tensor o un diccionario de nombre de etiqueta cadena a Tensor . Ambas features y <