Partager via


Prise en main de Windows ML

Cette rubrique vous montre comment installer et utiliser Windows ML pour découvrir, télécharger et inscrire des fournisseurs d’exécution (EPs) à utiliser avec ONNX Runtime fourni avec Windows ML. Windows ML gère la complexité de la gestion des packages et de la sélection matérielle, en téléchargeant automatiquement les derniers fournisseurs d’exécution compatibles avec le matériel de votre appareil.

Si vous n’êtes pas déjà familiarisé avec le runtime ONNX, nous vous suggérons de lire les documents ONNX Runtime. En bref, Windows ML fournit une copie partagée à l’échelle windows du runtime ONNX, ainsi que la possibilité de télécharger dynamiquement des fournisseurs d’exécution (EPs).

Prerequisites

  • .NET 6 ou version ultérieure
  • Ciblage d’un TFM spécifique à Windows 10 comme net6.0-windows10.0.19041.0 ou version ultérieure

Étape 1 : Installer ou mettre à jour le Kit de développement logiciel (SDK) d’application Windows

Les API du catalogue de modèles sont incluses dans la version expérimentale du Kit de développement logiciel (SDK) d’application Windows 2.0.0 ou ultérieure.

Consultez utiliser le Kit de développement logiciel (SDK) d’application Windows dans un projet existant pour savoir comment ajouter le Kit de développement logiciel (SDK) d’application Windows à votre projet, ou si vous utilisez déjà le Kit de développement logiciel (SDK) d’application Windows, mettez à jour vos packages.

Étape 2 : Télécharger et inscrire des adresses IP

La façon la plus simple de commencer consiste à permettre à Windows ML de découvrir, télécharger et inscrire automatiquement la dernière version de tous les fournisseurs d’exécution compatibles. Les fournisseurs d’exécution doivent être inscrits auprès du runtime ONNX à l’intérieur de Windows ML avant de pouvoir les utiliser. Et s’ils n’ont pas encore été téléchargés, ils doivent d’abord être téléchargés. L’appel EnsureAndRegisterCertifiedAsync() effectue ces deux étapes en une seule étape.

using Microsoft.ML.OnnxRuntime;
using Microsoft.Windows.AI.MachineLearning;

// First we create a new instance of EnvironmentCreationOptions
EnvironmentCreationOptions envOptions = new()
{
    logId = "WinMLDemo", // Use an ID of your own choice
    logLevel = OrtLoggingLevel.ORT_LOGGING_LEVEL_ERROR
};

// And then use that to create the ORT environment
using var ortEnv = OrtEnv.CreateInstanceWithOptions(ref envOptions);

// Get the default ExecutionProviderCatalog
var catalog = ExecutionProviderCatalog.GetDefault();

// Ensure and register all compatible execution providers with ONNX Runtime
// This downloads any necessary components and registers them
await catalog.EnsureAndRegisterCertifiedAsync();

Conseil / Astuce

Dans les applications de production, habillage de l’appel EnsureAndRegisterCertifiedAsync() dans un bloc try-catch pour gérer les échecs potentiels de réseau ou de téléchargement correctement.

Étapes suivantes

Après avoir inscrit des fournisseurs d’exécution, vous êtes prêt à utiliser les API ONNX Runtime dans Windows ML ! Vous voudrez...

  1. Sélectionner des fournisseurs d’exécution : indiquez au runtime les fournisseurs d’exécution que vous souhaitez utiliser
  2. Obtenir vos modèles - Utiliser le catalogue de modèles pour télécharger dynamiquement des modèles ou les inclure localement
  3. Exécuter l’inférence de modèle - Compiler, charger et inférencer votre modèle

Important

Les projets C# qui utilisent les Microsoft.ML.OnnxRuntime.Tensors API doivent référencer manuellement le package NuGet System.Numerics.Tensors , version 9.0.0 ou ultérieure. Sans cette référence de package NuGet, votre code rencontrera l’erreur d’exécution suivante : Could not load file or assembly 'System.Numerics.Tensors, Version=9.0.0.0.

Voir aussi