Udostępnij za pośrednictwem


TensorFlowEstimator Klasa

Definicja

Element TensorFlowTransformer jest używany w następujących dwóch scenariuszach.

  1. Ocenianie przy użyciu wstępnie wytrenowanego modelu TensorFlow : w tym trybie transformacja wyodrębnia wartości ukrytych warstw z wstępnie wytrenowanego modelu Tensorflow i używa danych wyjściowych jako funkcji w potoku ML.Net.
  2. Ponowne trenowanie modelu TensorFlow : w tym trybie przekształcenie ponownie szkoli model TensorFlow przy użyciu danych użytkownika przekazywanych przez potok ML.Net. Po wytrenowanym modelu dane wyjściowe mogą być używane jako funkcje do oceniania.
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)
Dziedziczenie
TensorFlowEstimator
Implementuje

Uwagi

TensorFlowTransform wyodrębnia określone dane wyjściowe przy użyciu wstępnie wytrenowanego modelu Tensorflow . Opcjonalnie można dodatkowo ponownie wytrenować model TensorFlow na danych użytkownika, aby dostosować parametry modelu na danych użytkownika (znane również jako "Transfer Learning").

W przypadku oceniania przekształcenie przyjmuje jako dane wejściowe wstępnie wytrenowanego modelu Tensorflow, nazwy węzłów wejściowych i nazwy węzłów wyjściowych, których wartości chcemy wyodrębnić. W przypadku ponownego trenowania transformacja wymaga również parametrów związanych z trenowaniem, takich jak nazwy operacji optymalizacji na grafie TensorFlow, nazwa operacji uczenia w grafie i jej wartość, nazwa operacji na grafie, aby metryka utraty obliczeń i wydajności itp.

Ta transformacja wymaga zainstalowania nuget Microsoft.ML.TensorFlow . TensorFlowTransform ma następujące założenia dotyczące danych wejściowych, wyjściowych, przetwarzania danych i ponownego trenowania.

  1. Obecnie model wejściowy TensorFlowTransform obsługuje zarówno format modelu Frozen , jak i format SavedModel . Jednak ponowne trenowanie modelu jest możliwe tylko w przypadku formatu SavedModel . Format punktu kontrolnego nie jest obecnie obsługiwany w przypadku oceniania ani ponownego trenowania z powodu braku obsługi interfejsu C-API biblioteki TensorFlow do załadowania go.
  2. Przekształcenie obsługuje ocenianie tylko jednego przykładu naraz. Jednak ponowne trenowanie może być wykonywane w partiach.
  3. Zaawansowane scenariusze uczenia transferowego/dostrajania szczegółowego (np. dodawanie kolejnych warstw do sieci, zmienianie kształtu danych wejściowych, zamrażanie warstw, które nie muszą być aktualizowane podczas procesu ponownego trenowania itp.) nie są obecnie możliwe z powodu braku obsługi manipulowania siecią/grafem wewnątrz modelu przy użyciu interfejsu C-API tensorFlow.
  4. Nazwa kolumn wejściowych powinna być zgodna z nazwą danych wejściowych w modelu TensorFlow.
  5. Nazwa każdej kolumny wyjściowej powinna być zgodna z jedną z operacji na grafie TensorFlow.
  6. Obecnie podwójne, float, long, int, short, sbyte, ulong, uint, ushort, byte i bool to dopuszczalne typy danych dla danych wejściowych/wyjściowych.
  7. Po powodzeniu przekształcenie wprowadzi nową kolumnę odpowiadającą IDataView każdej określonej kolumnie wyjściowej.

Dane wejściowe i wyjściowe modelu TensorFlow można uzyskać przy użyciu GetModelSchema() narzędzi lub summarize_graph .

Metody

Fit(IDataView)

Trenuje i zwraca wartość TensorFlowTransformer.

GetOutputSchema(SchemaShape)

SchemaShape Zwraca schemat, który zostanie wygenerowany przez transformator. Służy do propagacji schematu i weryfikacji w potoku.

Metody rozszerzania

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

Dołącz "punkt kontrolny buforowania" do łańcucha narzędzia do szacowania. Zapewni to, że narzędzia do szacowania podrzędnego zostaną wytrenowane pod kątem buforowanych danych. Warto mieć punkt kontrolny buforowania, zanim trenerzy przejdą wiele danych.

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

Biorąc pod uwagę narzędzie do szacowania, zwróć obiekt opakowujący, który będzie wywoływać delegata po Fit(IDataView) wywołaniu. Często ważne jest, aby narzędzie do szacowania zwracało informacje o tym, co było odpowiednie, dlatego Fit(IDataView) metoda zwraca specjalnie wpisany obiekt, a nie tylko ogólny ITransformerelement . Jednak w tym samym czasie IEstimator<TTransformer> są często tworzone w potoki z wieloma obiektami, więc może być konieczne utworzenie łańcucha narzędzi do szacowania, za pośrednictwem EstimatorChain<TLastTransformer> którego narzędzie do szacowania, dla którego chcemy uzyskać transformator jest pochowany gdzieś w tym łańcuchu. W tym scenariuszu możemy za pomocą tej metody dołączyć delegata, który zostanie wywołany po wywołaniu dopasowania.

Dotyczy