Share via


TensorFlowEstimator Classe

Définition

Il TensorFlowTransformer est utilisé dans les deux scénarios suivants.

  1. Scoring avec un modèle TensorFlow préentraîné : dans ce mode, la transformation extrait les valeurs des couches masquées d’un modèle Tensorflow préentraîné et utilise des sorties en tant que fonctionnalités dans ML.Net pipeline.
  2. Reformation du modèle TensorFlow : dans ce mode, la transformation réentraîne un modèle TensorFlow à l’aide des données utilisateur transmises via ML.Net pipeline. Une fois le modèle entraîné, ses sorties peuvent être utilisées comme fonctionnalités pour le scoring.
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)
Héritage
TensorFlowEstimator
Implémente

Remarques

TensorFlowTransform extrait les sorties spécifiées à l’aide d’un modèle Tensorflow préentraîné. Si vous le souhaitez, il peut réentraîner le modèle TensorFlow sur les données utilisateur pour ajuster les paramètres du modèle sur les données utilisateur (également connu sous le nom de « Transfert d’apprentissage »).

Pour le scoring, la transformation prend comme entrées le modèle Tensorflow préentraîné, les noms des nœuds d’entrée et les noms des nœuds de sortie dont nous voulons extraire les valeurs. Pour la reformation, la transformation nécessite également des paramètres liés à l’entraînement, tels que les noms de l’opération d’optimisation dans le graphique TensorFlow, le nom de l’opération de taux d’apprentissage dans le graphique et sa valeur, le nom des opérations dans le graphique pour calculer la perte et la métrique de performances, etc.

Cette transformation nécessite l’installation du nuget Microsoft.ML.TensorFlow . TensorFlowTransform présente les hypothèses suivantes concernant l’entrée, la sortie, le traitement des données et la reformation.

  1. Pour le modèle d’entrée, actuellement, TensorFlowTransform prend en charge le format de modèle figé et également le format SavedModel . Toutefois, la reformation du modèle n’est possible que pour le format SavedModel . Le format de point de contrôle n’est actuellement pas pris en charge pour le scoring ni pour le réentraînement en raison d’un manque de prise en charge de L’API C-API TensorFlow pour le chargement.
  2. La transformation prend en charge le scoring d’un seul exemple à la fois. Toutefois, la réentraînation peut être effectuée par lots.
  3. Les scénarios avancés d’apprentissage/réglage des transferts (par exemple, l’ajout de couches supplémentaires dans le réseau, la modification de la forme des entrées, la congélation des couches qui n’ont pas besoin d’être mises à jour pendant le processus de reformation, etc.) ne sont actuellement pas possibles en raison d’un manque de prise en charge de la manipulation réseau/graphique à l’intérieur du modèle à l’aide de TensorFlow C-API.
  4. Le nom des colonnes d’entrée doit correspondre au nom des entrées dans le modèle TensorFlow.
  5. Le nom de chaque colonne de sortie doit correspondre à l’une des opérations du graphique TensorFlow.
  6. Actuellement, double, float, long, int, short, sbyte, ulong, uint, ushort, byte et bool sont les types de données acceptables pour l’entrée/sortie.
  7. En cas de réussite, la transformation introduit une nouvelle colonne correspondant IDataView à chaque colonne de sortie spécifiée.

Les entrées et sorties d’un modèle TensorFlow peuvent être obtenues à l’aide des GetModelSchema() outils ou summarize_graph .

Méthodes

Fit(IDataView)

Effectue l’apprentissage et retourne un TensorFlowTransformer.

GetOutputSchema(SchemaShape)

Retourne le SchemaShape schéma qui sera produit par le transformateur. Utilisé pour la propagation et la vérification du schéma dans un pipeline.

Méthodes d’extension

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

Ajoutez un « point de contrôle de mise en cache » à la chaîne d’estimateur. Cela garantit que les estimateurs en aval seront entraînés par rapport aux données mises en cache. Il est utile d’avoir un point de contrôle de mise en cache avant les formateurs qui prennent plusieurs passes de données.

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

Étant donné un estimateur, retournez un objet de création de package de restrictions qui appellera un délégué une fois Fit(IDataView) appelé. Il est souvent important qu’un estimateur retourne des informations sur ce qui était adapté, c’est pourquoi la Fit(IDataView) méthode retourne un objet spécifiquement typé, plutôt que simplement un général ITransformer. Toutefois, en même temps, IEstimator<TTransformer> sont souvent formés en pipelines avec de nombreux objets. Nous pouvons donc avoir besoin de créer une chaîne d’estimateurs par EstimatorChain<TLastTransformer> le biais de laquelle l’estimateur pour lequel nous voulons obtenir le transformateur est enterré quelque part dans cette chaîne. Pour ce scénario, nous pouvons par le biais de cette méthode attacher un délégué qui sera appelé une fois l’ajustement appelé.

S’applique à