Condividi tramite


TensorFlowEstimator Classe

Definizione

Viene TensorFlowTransformer usato nei due scenari seguenti.

  1. Assegnazione dei punteggi con il modello TensorFlow con training preliminare: in questa modalità, la trasformazione estrae i valori dei livelli nascosti da un modello Tensorflow con training preliminare e usa gli output come funzionalità nella pipeline ML.Net.
  2. Ripetizione del training del modello TensorFlow : in questa modalità, la trasformazione ripete il training di un modello TensorFlow usando i dati utente passati attraverso ML.Net pipeline. Dopo aver eseguito il training del modello, gli output possono essere usati come funzionalità per l'assegnazione dei punteggi.
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)
Ereditarietà
TensorFlowEstimator
Implementazioni

Commenti

TensorFlowTransform estrae gli output specificati usando un modello Tensorflow con training preliminare. Facoltativamente, può ripetere il training del modello TensorFlow sui dati utente per modificare i parametri del modello sui dati utente ( noto anche come "Transfer Learning").

Per l'assegnazione dei punteggi, la trasformazione accetta come input il modello Tensorflow con training preliminare, i nomi dei nodi di input e i nomi dei nodi di output i cui valori si desidera estrarre. Per la ripetizione del training, la trasformazione richiede anche parametri correlati al training, ad esempio i nomi dell'operazione di ottimizzazione nel grafico TensorFlow, il nome dell'operazione di frequenza di apprendimento nel grafico e il relativo valore, il nome delle operazioni nel grafico per calcolare la perdita di calcolo e la metrica delle prestazioni e così via.

Questa trasformazione richiede l'installazione del nuget Microsoft.ML.TensorFlow . TensorFlowTransform prevede i presupposti seguenti relativi all'input, all'output, all'elaborazione dei dati e alla ripetizione del training.

  1. Per il modello di input, attualmente TensorFlowTransform supporta sia il formato del modello Frozen che il formato SavedModel . Tuttavia, la ripetizione del training del modello è possibile solo per il formato SavedModel . Il formato del checkpoint non è attualmente supportato per l'assegnazione dei punteggi né per la ripetizione del training a causa della mancanza del supporto dell'API C-TensorFlow per il caricamento.
  2. La trasformazione supporta l'assegnazione di punteggi a un solo esempio alla volta. Tuttavia, la ripetizione del training può essere eseguita in batch.
  3. Gli scenari avanzati di apprendimento/ottimizzazione del trasferimento (ad esempio, l'aggiunta di più livelli nella rete, la modifica della forma degli input, il congelamento dei livelli che non devono essere aggiornati durante il processo di ripetizione del training e così via) non sono attualmente possibili a causa della mancanza di supporto per la manipolazione di rete/grafo all'interno del modello usando TensorFlow C-API.
  4. Il nome delle colonne di input deve corrispondere al nome degli input nel modello TensorFlow.
  5. Il nome di ogni colonna di output deve corrispondere a una delle operazioni nel grafico TensorFlow.
  6. Attualmente, double, float, long, int, short, sbyte, ulong, uint, ushort, byte e bool sono i tipi di dati accettabili per input/output.
  7. Al termine, la trasformazione introduce una nuova colonna in IDataView corrispondente a ogni colonna di output specificata.

Gli input e gli output di un modello TensorFlow possono essere ottenuti usando gli GetModelSchema() strumenti o summarize_graph .

Metodi

Fit(IDataView)

Esegue il training e restituisce un oggetto TensorFlowTransformer.

GetOutputSchema(SchemaShape)

Restituisce l'oggetto SchemaShape dello schema che verrà prodotto dal trasformatore. Usato per la propagazione e la verifica dello schema in una pipeline.

Metodi di estensione

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

Aggiungere un "checkpoint di memorizzazione nella cache" alla catena di stima. Ciò garantisce che gli estimatori downstream vengano sottoposti a training in base ai dati memorizzati nella cache. È utile avere un checkpoint di memorizzazione nella cache prima che i formatori eseseguono più passaggi di dati.

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

Dato un estimator, restituire un oggetto wrapping che chiamerà un delegato una volta Fit(IDataView) chiamato. È spesso importante che uno strumento di stima restituisca informazioni sull'adattamento, motivo per cui il Fit(IDataView) metodo restituisce un oggetto tipizzato in modo specifico, anziché solo un oggetto generale ITransformer. Tuttavia, allo stesso tempo, IEstimator<TTransformer> vengono spesso formati in pipeline con molti oggetti, quindi potrebbe essere necessario creare una catena di estimatori tramite EstimatorChain<TLastTransformer> dove lo strumento di stima per il quale si vuole ottenere il trasformatore è sepolto in una posizione in questa catena. Per questo scenario, è possibile collegare un delegato che verrà chiamato una volta chiamato fit.

Si applica a