TensorFlowEstimator Klasse

Definition

Dies TensorFlowTransformer wird in den folgenden zwei Szenarien verwendet.

  1. Bewertung mit vortrainiertem TensorFlow-Modell : In diesem Modus extrahiert die Transformation ausgeblendete Layerwerte aus einem vortrainierten Tensorflow-Modell und verwendet Ausgaben als Features in ML.Net Pipeline.
  2. Umschulung des TensorFlow-Modells : In diesem Modus trainiert die Transformation ein TensorFlow-Modell mithilfe der Benutzerdaten, die über ML.Net Pipeline übergeben werden. Sobald das Modell trainiert wurde, kann es als Features für die Bewertung verwendet werden.
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)
Vererbung
TensorFlowEstimator
Implementiert

Hinweise

Der TensorFlowTransform extrahiert die angegebenen Ausgaben mit einem vortrainierten Tensorflow-Modell . Optional kann es das TensorFlow-Modell für Benutzerdaten weiter neu trainieren, um Modellparameter für die Benutzerdaten anzupassen ( auch bekannt als "Transfer Learning").

Bei der Bewertung übernimmt die Transformation als Eingaben das vortrainierte Tensorflow-Modell, die Namen der Eingabeknoten und die Namen der Ausgabeknoten, deren Werte extrahiert werden sollen. Zur Umschulung erfordert die Transformation auch schulungsbezogene Parameter wie die Namen des Optimierungsvorgangs im TensorFlow-Diagramm, den Namen des Lernrate-Vorgangs im Diagramm und seinen Wert, den Namen der Vorgänge im Diagramm zum Berechnen von Verlust und Leistungsmetrik usw.

Für diese Transformation muss das nuget Microsoft.ML.TensorFlow installiert werden. Der TensorFlowTransform hat die folgenden Annahmen hinsichtlich Eingabe, Ausgabe, Verarbeitung von Daten und Umschulung.

  1. Für das Eingabemodell unterstützt tensorFlowTransform derzeit sowohl das Frozen-Modellformat als auch das SavedModel-Format . Eine Umschulung des Modells ist jedoch nur für das SavedModel-Format möglich. Das Prüfpunktformat wird derzeit weder für die Bewertung noch für die Umschulung aufgrund fehlender TensorFlow-C-API-Unterstützung zum Laden unterstützt.
  2. Die Transformation unterstützt die Bewertung nur jeweils eines Beispiels. Eine Umschulung kann jedoch in Batches durchgeführt werden.
  3. Erweiterte Lern-/Feinabstimmungsszenarien (z. B. Hinzufügen weiterer Ebenen in das Netzwerk, Ändern der Form der Eingaben, Einfrieren der Schichten, die während des Umschulungsprozesses nicht aktualisiert werden müssen usw.) sind derzeit aufgrund fehlender Unterstützung für netzwerk-/graph-Manipulation innerhalb des Modells mit TensorFlow C-API nicht möglich.
  4. Der Name der Eingabespalten sollte mit dem Namen der Eingabe(n) im TensorFlow-Modell übereinstimmen.
  5. Der Name jeder Ausgabespalte sollte mit einem der Vorgänge im TensorFlow-Diagramm übereinstimmen.
  6. Derzeit sind double, float, long, int, short, sbyte, ulong, uint, ushort, byte und bool die zulässigen Datentypen für Eingabe/Ausgabe.
  7. Bei Erfolg führt die Transformation eine neue Spalte entsprechend IDataView jeder angegebenen Ausgabespalte ein.

Die Eingaben und Ausgaben eines TensorFlow-Modells können mit den GetModelSchema() Tools oder summarize_graph abgerufen werden.

Methoden

Name Beschreibung
Fit(IDataView)

Züge und Gibt einen TensorFlowTransformer.

GetOutputSchema(SchemaShape)

Gibt das SchemaShape Schema zurück, das vom Transformator erzeugt wird. Wird für die Schemaverteilung und Überprüfung in einer Pipeline verwendet.

Erweiterungsmethoden

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

Fügen Sie einen "Zwischenspeicherungsprüfpunkt" an die Schätzkette an. Dadurch wird sichergestellt, dass die nachgeschalteten Schätzer anhand zwischengespeicherter Daten trainiert werden. Es ist hilfreich, einen Zwischenspeicherprüfpunkt vor Trainern zu haben, die mehrere Datendurchläufe übernehmen.

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

Geben Sie bei einer Schätzung ein Wrapping-Objekt zurück, das eine Stellvertretung aufruft, sobald Fit(IDataView) sie aufgerufen wird. Es ist häufig wichtig, dass ein Schätzer Informationen zu dem, was passt, zurückgeben, weshalb die Fit(IDataView) Methode ein speziell typiertes Objekt und nicht nur ein allgemeines ITransformerObjekt zurückgibt. IEstimator<TTransformer> Gleichzeitig werden jedoch oft in Pipelines mit vielen Objekten gebildet, daher müssen wir möglicherweise eine Kette von Schätzern bauen, über EstimatorChain<TLastTransformer> die der Schätzer, für den wir den Transformator erhalten wollen, irgendwo in dieser Kette begraben wird. Für dieses Szenario können wir über diese Methode einen Delegat anfügen, der aufgerufen wird, sobald "Fit" aufgerufen wird.

Gilt für: