Compartilhar via


Introdução ao Windows ML

Este tópico mostra como instalar e usar o Windows ML para descobrir, baixar e registrar EPs (provedores de execução) para uso com o ONNX Runtime 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 dispositivo.

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

Pré-requisitos

  • .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 do Windows

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

Veja como usar o SDK do Aplicativo do Windows em um projeto existente para adicionar o SDK do Aplicativo do Windows ao seu projeto ou, se você já estiver usando o SDK do Aplicativo do Windows, atualize seus pacotes.

Etapa 2: Baixar e registrar EPs

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 com o ONNX Runtime dentro do Windows ML antes que você possa usá-los. E se eles ainda não foram baixados, eles precisam ser baixados primeiro. A chamada EnsureAndRegisterCertifiedAsync() fará ambas em uma 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();

Dica

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

Próximas etapas

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

  1. Selecionar provedores de execução – informe ao runtime quais provedores de execução você deseja usar
  2. Obter seus modelos – Usar o Catálogo de Modelos para baixar dinamicamente os modelos ou incluí-los localmente
  3. Executar inferência de modelo – Compilar, carregar e inferência do modelo

Importante

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

Consulte também