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

tf.estimator.LinearClassifier

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

modelo clasificador lineal.

Hereda de: Estimator

Se utiliza en los cuadernos

Se utiliza en la guía Se utiliza en los tutoriales

Entrenar a un modelo lineal para casos Clasificar en una de varias clases posibles. Cuando el número de posibles clases es 2, esto es la clasificación binaria.

Ejemplo:

 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(...)

# Estimator using the default optimizer.
estimator = tf.estimator.LinearClassifier(
    feature_columns=[categorical_column_a,
                     categorical_feature_a_x_categorical_feature_b])

# Or estimator using the FTRL optimizer with regularization.
estimator = tf.estimator.LinearClassifier(
    feature_columns=[categorical_column_a,
                     categorical_feature_a_x_categorical_feature_b],
    optimizer=tf.keras.optimizers.Ftrl(
      learning_rate=0.1,
      l1_regularization_strength=0.001
    ))

# Or estimator using an optimizer with a learning rate decay.
estimator = tf.estimator.LinearClassifier(
    feature_columns=[categorical_column_a,
                     categorical_feature_a_x_categorical_feature_b],
    optimizer=lambda: tf.keras.optimizers.Ftrl(
        learning_rate=tf.exponential_decay(
            learning_rate=0.1,
            global_step=tf.get_global_step(),
            decay_steps=10000,
            decay_rate=0.96))

# Or estimator with warm-starting from a previous checkpoint.
estimator = tf.estimator.LinearClassifier(
    feature_columns=[categorical_column_a,
                     categorical_feature_a_x_categorical_feature_b],
    warm_start_from="/path/to/checkpoint/dir")


# 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)
metrics = estimator.evaluate(input_fn=input_fn_eval)
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 :

  • Si weight_column no es None , una característica con key=weight_column cuyo valor es un Tensor .
  • para cada column en feature_columns :
    • Si column es una SparseColumn , una característica con key=column.name cuyo value es un SparseTensor .
    • Si column es una WeightedSparseColumn , 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 RealValuedColumn , una característica con key=column.name cuyo value es un Tensor .

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

feature_columns Un iterable que contiene todas las columnas de función utilizado por el modelo. Todos los elementos del conjunto deben ser instancias de clases derivadas de FeatureColumn .
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.
n_classes número de clases de etiquetas. Por defecto es la clasificación binaria. Tenga en cuenta que las etiquetas de clase son números enteros que representan el índice de clase (es decir, valores de 0 a n_classes-1). Para valores de etiqueta arbitrarias (por ejemplo, etiquetas de cuerda), convertir a índices de primera clase.
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.
optimizer Una instancia de tf.keras.optimizers.* O tf.estimator.experimental.LinearSDCA utilizado para entrenar el modelo. También puede ser una cadena (uno de 'Adagrad', 'Adán', 'Ftrl', 'RMSProp', 'SGD'), o exigible. Por defecto es FTRL optimizador.
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 y sesgos 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 .
sparse_combiner Una cadena que especifica cómo reducir 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 n_classes <2.

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 labels son consumidos por model_fn . Deben satisfacer las expectativas de model_fn de entradas.
steps Número de pasos para la cual evaluar modelo. Si None , evalúa hasta input_fn genera una excepción al fina