Partilhar via


Introdução ao Windows ML

Este tópico mostra como instalar e usar o Windows ML para descobrir, baixar e registrar provedores de execução (EPs) para uso com o Tempo de Execução ONNX fornecido com o Windows ML. O Windows ML lida com a complexidade do gerenciamento de pacotes e da seleção de hardware, baixando automaticamente os provedores de execução mais recentes compatíveis com o hardware do seu dispositivo.

Se você ainda não está familiarizado com o ONNX Runtime, sugerimos ler os documentos do ONNX Runtime. Em resumo, o Windows ML fornece uma cópia compartilhada em todo o Windows do Tempo de Execução ONNX, além da capacidade de baixar dinamicamente provedores de execução (EPs).

Pré-requisitos

  • Versão do Windows suportada pelo Windows App SDK
  • Pré-requisitos específicos do idioma vistos abaixo
  • .NET 6 ou superior
  • Direcionando um TFM específico do Windows 10 como net6.0-windows10.0.19041.0 ou superior

Etapa 1: Instalar ou atualizar o SDK do Aplicativo Windows

As APIs do Catálogo de Modelos estão incluídas na versão experimental do Windows App SDK 2.0.0 ou superior.

Consulte Usar o SDK de Aplicativo Windows em um projeto existente para saber como adicionar o SDK de Aplicativo Windows ao seu projeto ou, se você já estiver usando o SDK de Aplicativo Windows, atualizar seus pacotes.

Passo 2: Descarregue e registe os PEs

A maneira mais simples de começar é permitir que o Windows ML descubra, baixe e registre automaticamente a versão mais recente de todos os provedores de execução compatíveis. Os provedores de execução precisam ser registrados no Tempo de Execução ONNX dentro do Windows ML antes que você possa usá-los. E se eles ainda não foram baixados, eles precisam ser baixados primeiro. Ligar EnsureAndRegisterCertifiedAsync() fará as duas coisas em uma única etapa.

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();

Sugestão

Em aplicativos de produção, envolva a EnsureAndRegisterCertifiedAsync() chamada em um bloco try-catch para lidar com possíveis falhas de rede ou download normalmente.

Próximos passos

Depois de registrar provedores de execução, você estará pronto para usar as APIs de tempo de execução ONNX no Windows ML! Você vai querer...

  1. Selecionar provedores de execução - Informe ao tempo de execução quais provedores de execução você deseja usar
  2. Obtenha seus modelos - Use o Catálogo de modelos para baixar dinamicamente os modelos ou incluí-los localmente
  3. Executar inferência de modelo - Compile, carregue e infera seu modelo

Importante

Os projetos C# que usam as Microsoft.ML.OnnxRuntime.Tensors APIs devem fazer referência manual ao pacote NuGet System.Numerics.Tensors , versão 9.0.0 ou superior. Sem essa referência de pacote NuGet, seu código enfrentará o seguinte erro de tempo de execução: Could not load file or assembly 'System.Numerics.Tensors, Version=9.0.0.0.

Consulte também