Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
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
- Versão do Windows compatível com o SDK de Aplicativo do Windows
- 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.0ou 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...
- Selecionar provedores de execução – informe ao runtime quais provedores de execução você deseja usar
- Obter seus modelos – Usar o Catálogo de Modelos para baixar dinamicamente os modelos ou incluí-los localmente
- 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
- Catálogo de Modelos – Baixar dinamicamente modelos de catálogos online
- Inicializar provedores de execução – maneiras adicionais de lidar com o download de EPs
- Distribuir seu aplicativo – Informações sobre como distribuir um aplicativo usando o Windows ML
- Versões do ONNX no Windows ML – Informações sobre quais versões do ONNX Runtime são fornecidas com o Windows ML
- Tutorial – Tutorial completo de ponta a ponta usando o Windows ML com o modelo ResNet-50
- Exemplos de código – Nossos exemplos de código usando o Windows ML