Compartir a través de


TensorFlowEstimator Clase

Definición

TensorFlowTransformer se usa en dos escenarios siguientes.

  1. Puntuación con el modelo tensorFlow previamente entrenado: en este modo, la transformación extrae los valores de las capas ocultas de un modelo tensorflow previamente entrenado y usa salidas como características en ML.Net canalización.
  2. Reentrenamiento del modelo de TensorFlow : en este modo, la transformación vuelve a entrenar un modelo de TensorFlow mediante los datos de usuario pasados a través de ML.Net canalización. Una vez entrenado el modelo, se pueden usar salidas como características para la puntuación.
public sealed class TensorFlowEstimator : Microsoft.ML.IEstimator<Microsoft.ML.Transforms.TensorFlowTransformer>
type TensorFlowEstimator = class
    interface IEstimator<TensorFlowTransformer>
Public NotInheritable Class TensorFlowEstimator
Implements IEstimator(Of TensorFlowTransformer)
Herencia
TensorFlowEstimator
Implementaciones

Comentarios

TensorFlowTransform extrae las salidas especificadas mediante un modelo de Tensorflow previamente entrenado. Opcionalmente, puede volver a entrenar el modelo de TensorFlow en los datos de usuario para ajustar los parámetros del modelo en los datos de usuario (también conocido como "Aprendizaje de transferencia").

Para la puntuación, la transformación toma como entradas el modelo tensorflow previamente entrenado, los nombres de los nodos de entrada y los nombres de los nodos de salida cuyos valores queremos extraer. Para el reentrenamiento, la transformación también requiere parámetros relacionados con el entrenamiento, como los nombres de la operación de optimización en el gráfico de TensorFlow, el nombre de la operación de velocidad de aprendizaje en el gráfico y su valor, el nombre de las operaciones del grafo para calcular la pérdida y la métrica de rendimiento, etc.

Esta transformación requiere que se instale el nuget Microsoft.ML.TensorFlow . TensorFlowTransform tiene las siguientes suposiciones sobre la entrada, salida, procesamiento de datos y reentrenamiento.

  1. Para el modelo de entrada, actualmente TensorFlowTransform admite el formato del modelo congelado y también el formato SavedModel . Sin embargo, el nuevo entrenamiento del modelo solo es posible para el formato SavedModel . El formato de punto de comprobación no se admite actualmente para la puntuación ni para el reentrenamiento debido a la falta de compatibilidad con C-API de TensorFlow para cargarlo.
  2. La transformación solo admite la puntuación de un ejemplo a la vez. Sin embargo, el reentrenamiento se puede realizar en lotes.
  3. Los escenarios de aprendizaje y ajuste avanzado de transferencia (por ejemplo, agregar más capas a la red, cambiar la forma de las entradas, inmovilizar las capas que no necesitan actualizarse durante el proceso de reentrenamiento, etc.) no son posibles actualmente debido a la falta de compatibilidad con la manipulación de red o grafos dentro del modelo mediante TensorFlow C-API.
  4. El nombre de las columnas de entrada debe coincidir con el nombre de las entradas en el modelo de TensorFlow.
  5. El nombre de cada columna de salida debe coincidir con una de las operaciones del gráfico tensorFlow.
  6. Actualmente, double, float, long, int, short, sbyte, ulong, uint, ushort, byte y bool son los tipos de datos aceptables para la entrada y salida.
  7. Una vez realizada correctamente, la transformación introducirá una nueva columna en IDataView correspondiente a cada columna de salida especificada.

Las entradas y salidas de un modelo de TensorFlow se pueden obtener mediante las GetModelSchema() herramientas o summarize_graph .

Métodos

Fit(IDataView)

Entrena y devuelve un TensorFlowTransformer.

GetOutputSchema(SchemaShape)

Devuelve el SchemaShape valor del esquema que generará el transformador. Se usa para la propagación y comprobación de esquemas en una canalización.

Métodos de extensión

AppendCacheCheckpoint<TTrans>(IEstimator<TTrans>, IHostEnvironment)

Anexe un "punto de control de almacenamiento en caché" a la cadena del estimador. Esto garantizará que los estimadores de nivel inferior se entrenarán con los datos almacenados en caché. Resulta útil tener un punto de control de almacenamiento en caché antes de que los instructores tomen varios pases de datos.

WithOnFitDelegate<TTransformer>(IEstimator<TTransformer>, Action<TTransformer>)

Dado un estimador, devuelva un objeto de ajuste que llamará a un delegado una vez Fit(IDataView) que se llame. A menudo, es importante que un estimador devuelva información sobre lo que cabe, por lo que el Fit(IDataView) método devuelve un objeto con tipo específico, en lugar de simplemente un general ITransformer. Sin embargo, al mismo tiempo, IEstimator<TTransformer> a menudo se forman en canalizaciones con muchos objetos, por lo que es posible que tengamos que crear una cadena de estimadores a través EstimatorChain<TLastTransformer> de donde el estimador para el que queremos obtener el transformador está enterrado en algún lugar de esta cadena. En ese escenario, podemos a través de este método adjuntar un delegado al que se llamará una vez que se llame a fit.

Se aplica a