Partager via


OnnxScoringEstimator Classe

Définition

IEstimator<TTransformer> pour le scoring des modèles ONNX dans l’infrastructure ML.NET.

public sealed class OnnxScoringEstimator : Microsoft.ML.Data.TrivialEstimator<Microsoft.ML.Transforms.Onnx.OnnxTransformer>
type OnnxScoringEstimator = class
    inherit TrivialEstimator<OnnxTransformer>
Public NotInheritable Class OnnxScoringEstimator
Inherits TrivialEstimator(Of OnnxTransformer)
Héritage
OnnxScoringEstimator

Remarques

Caractéristiques de l’estimateur

Cet estimateur doit-il examiner les données pour entraîner ses paramètres ? Non
Type de données de colonne d’entrée Vecteur de taille connue ou de SingleDouble types
Type de données de colonne de sortie Comme spécifié par le modèle ONNX
NuGet requis en plus de Microsoft.ML Microsoft.ML.OnnxTransformer (toujours), Microsoft.ML.OnnxRuntime 1.6.0 (pour le traitement du processeur) ou Microsoft.ML.OnnxRuntime.Gpu 1.6.0 (pour le traitement GPU si GPU est disponible)
Exportable vers ONNX Non

Pour créer cet estimateur, utilisez les API suivantes : ApplyOnnxModel

Prend en charge l’inférence des modèles au format ONNX 1.6 (opset 11), à l’aide de la bibliothèque Microsoft.ML.OnnxRuntime . Les modèles sont évalués sur le processeur si le projet fait référence à Microsoft.ML.OnnxRuntime et sur le GPU si le projet fait référence à Microsoft.ML.OnnxRuntime.Gpu. Chaque projet utilisant OnnxScoringEstimator doit référencer l’un des deux packages ci-dessus.

Pour exécuter sur un GPU, utilisez le package NuGet Microsoft.ML.OnnxRuntime.Gpu au lieu du nuget Microsoft.ML.OnnxRuntime (qui est destiné au traitement du processeur). Microsoft.ML.OnnxRuntime.Gpu nécessite un GPU pris en charge par CUDA, le kit de ressources CUDA 10.2 et cuDNN 8.0.3 (comme indiqué dans la documentation d’Onnxruntime). Lors de la création de l’estimateur via ApplyOnnxModel, définissez le paramètre « gpuDeviceId » sur un entier non négatif valide. Les valeurs d’ID d’appareil standard sont 0 ou 1. Si l’appareil GPU n’est pas trouvé, mais que « fallbackToCpu = true », l’estimateur s’exécute sur l’UC. Si l’appareil GPU n’est pas trouvé mais que « fallbackToCpu = false », l’estimateur lève une exception

Les entrées et sorties des modèles ONNX doivent être de type Tensor. Les séquences et cartes ne sont pas encore prises en charge.

En interne, OnnxTransformer (la valeur de retour d’OnnxScoringEstimator.Fit()) contient une référence à une session d’inférence qui pointe vers la mémoire non managée détenue par OnnxRuntime.dll. Chaque fois qu’il existe un appel à ApplyOnnxModel dans un pipeline, il est recommandé de convertir la valeur de retour de l’appel Fit() en IDisposable et d’appeler Dispose() pour vous assurer qu’il n’y a pas de fuites de mémoire.

OnnxRuntime fonctionne sur les plateformes Windows, MacOS et Ubuntu 16.04 Linux 64 bits. Visitez les modèles ONNX pour afficher la liste des modèles facilement disponibles pour commencer. Pour plus d’informations, consultez ONNX .

Méthodes

Fit(IDataView)

IEstimator<TTransformer> pour le scoring des modèles ONNX dans l’infrastructure ML.NET.

(Hérité de TrivialEstimator<TTransformer>)
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 à