TensorFlowEstimator Klasse
Definition
Wichtig
Einige Informationen beziehen sich auf Vorabversionen, die vor dem Release ggf. grundlegend überarbeitet werden. Microsoft übernimmt hinsichtlich der hier bereitgestellten Informationen keine Gewährleistungen, seien sie ausdrücklich oder konkludent.
Dies TensorFlowTransformer wird in folgenden zwei Szenarien verwendet.
- Bewertung mit vortrainierten TensorFlow-Modell : In diesem Modus extrahiert die Transformation ausgeblendete Ebenenwerte aus einem vorab trainierten Tensorflow-Modell und verwendet Ausgabe als Features in ML.Net Pipeline.
- Neuschulung des TensorFlow-Modells : In diesem Modus retrainiert die Transformation ein TensorFlow-Modell mithilfe der Benutzerdaten, die über ML.Net Pipeline übergeben wurden. 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
Die TensorFlowTransform extrahiert angegebene Ausgabe mithilfe eines vorab trainierten Tensorflow-Modells . Optional kann es das TensorFlow-Modell auf Benutzerdaten weiter retrainieren, um Modellparameter für die Benutzerdaten anzupassen ( auch als "Transfer Learning" bekannt).
Bei der Bewertung nimmt die Transformation als Eingaben das vorab trainierte Tensorflow-Modell, die Namen der Eingabeknoten und namen der Ausgabeknoten, deren Werte wir extrahieren möchten. Bei der Neuschulung erfordert die Transformation auch schulungsbezogene Parameter wie die Namen des Optimierungsvorgangs im TensorFlow-Diagramm, den Namen des Lernratenvorgangs im Diagramm und seinen Wert, den Namen der Vorgänge im Diagramm, um Verlust und Leistungsmetrik zu berechnen usw.
Diese Transformation erfordert die Installation des Microsoft.ML.TensorFlow-Nugets . Die TensorFlowTransform hat die folgenden Annahmen bezüglich Eingabe, Ausgabe, Verarbeitung von Daten und Weiterbildung.
- Für das Eingabemodell unterstützt derzeit die TensorFlowTransform sowohl das Frozen-Modellformat als auch das SavedModel-Format . Die Erneute Schulung des Modells ist jedoch nur für das SavedModel-Format möglich. Das Prüfpunktformat wird derzeit weder für bewertungen noch für die Erneute Schulung aufgrund des Mangels an TensorFlow C-API-Unterstützung für das Laden unterstützt.
- Die Transformation unterstützt die Bewertung nur eines Beispiels zu einem Zeitpunkt. Die Neuschulung kann jedoch in Batches durchgeführt werden.
- Erweiterte Transfer-Lern-/Feinoptimierungsszenarien (z. B. Das Hinzufügen weiterer Ebenen in das Netzwerk, das Ändern der Form der Eingaben, das Einfrieren der Ebenen, die während des Neuschulungsprozesses nicht aktualisiert werden müssen usw.) sind derzeit aufgrund fehlender Unterstützung für Netzwerk-/Graph-Manipulation im Modell mit TensorFlow C-API nicht möglich.
- Der Name der Eingabespalten sollte mit dem Namen der Eingabe(n) im TensorFlow-Modell übereinstimmen.
- Der Name jeder Ausgabespalte sollte einer der Vorgänge im TensorFlow-Diagramm entsprechen.
- Derzeit sind double, float, long, int, short, sbyte, ulong, uint, ushort, byte, byte und bool die zulässigen Datentypen für Eingabe/Ausgabe.
- Nach Erfolg führt die Transformation eine neue Spalte ein, die IDataView jeder angegebenen Ausgabespalte entspricht.
Die Eingaben und Ausgabe eines TensorFlow-Modells können mithilfe der GetModelSchema() tools oder summarize_graph abgerufen werden.
Methoden
Fit(IDataView) |
Züge und zurückgeben eine TensorFlowTransformer. |
GetOutputSchema(SchemaShape) |
Gibt das SchemaShape Schema zurück, das vom Transformator erzeugt wird. Wird für die Schemavermehrung und Überprüfung in einer Pipeline verwendet. |
Erweiterungsmethoden
AppendCacheCheckpoint<TTrans>(IEstimator<TTrans>, IHostEnvironment) |
Fügen Sie einen "Zwischenspeicherpunkt" an die Stimatorkette an. Dadurch wird sichergestellt, dass die nachgelagerten Stimatoren gegen zwischengespeicherte Daten trainiert werden. Es ist hilfreich, einen Cache-Prüfpunkt zu haben, bevor Trainer, die mehrere Daten übergeben. |
WithOnFitDelegate<TTransformer>(IEstimator<TTransformer>, Action<TTransformer>) |
Geben Sie aufgrund einer Schätzung ein Umbruchobjekt zurück, das einen Stellvertretung aufruft, sobald Fit(IDataView) er aufgerufen wird. Es ist oft wichtig, dass eine Schätzung Informationen zu dem zurückgibt, was passt, weshalb die Fit(IDataView) Methode ein spezifisches typiertes Objekt zurückgibt, anstatt nur ein allgemeines ITransformer. Gleichzeitig IEstimator<TTransformer> werden jedoch oft Pipelines mit vielen Objekten gebildet, sodass wir möglicherweise eine Kette von EstimatorChain<TLastTransformer> Schätzern erstellen müssen, über die der Schätzer, für den wir den Transformator erhalten möchten, irgendwo in dieser Kette begraben wird. Für dieses Szenario können wir über diese Methode eine Stellvertretung anfügen, die einmal aufgerufen wird, wenn die Anpassung aufgerufen wird. |