APIs de ML do Windows

Para obter orientação conceitual, consulte Executar modelos ONNX com o Windows ML).

Você pode pensar nas APIs no pacote NuGet Microsoft.WindowsAppSDK.ML como sendo o superconjunto desses dois conjuntos:

O Microsoft.WindowsAppSDK.ML pacote NuGet

O tempo de execução do Microsoft Windows ML fornece APIs para aprendizado de máquina e operações de IA em aplicativos do Windows. O pacote NuGet Microsoft.WindowsAppSDK.ML fornece os arquivos de tempo de execução .winmd do Windows ML para uso em projetos C# e C++.

As rodas Python pywinrt

O tempo de execução do Microsoft Windows ML aproveita o projeto pywinrt para fornecer acesso Python às mesmas APIs de ML do Windows. O nome do pacote é winui3-Microsoft.Windows.AI.MachineLearning. Pacotes adicionais são necessários para usar o SDK de aplicativos do Windows em python. Para obter detalhes, consulte o tópico Executar modelos ONNX com o Windows ML .

APIs de ML do Windows

Para obter documentação de referência de API e exemplos de código, consulte o namespace Microsoft.Windows.AI.MachineLearning .

Notas sobre a aplicação

O tempo de execução do Windows ML é integrado ao SDK do Aplicativo Windows e depende de seus mecanismos de implantação e inicialização:

  • Descobre automaticamente provedores de execução compatíveis com o hardware atual
  • Gerencia o tempo de vida e as atualizações do pacote
  • Lida com o registo e ativação de pacotes
  • Suporta diferentes versões de provedores de execução

Implantação dependente da estrutura

O Windows ML é fornecido como um componente dependente da estrutura . Isso significa que seu aplicativo deve:

  • Faça referência ao pacote NuGet principal do SDK de Aplicativo Windows adicionando uma referência a Microsoft.WindowsAppSDK (recomendado)
  • Ou, faça referência a ambos Microsoft.WindowsAppSDK.ML e Microsoft.WindowsAppSDK.Runtime

Para obter mais informações sobre como implantar aplicativos SDK de aplicativos do Windows, consulte a documentação Empacotar e implantar aplicativos do Windows .

Usando o Tempo de Execução ONNX com o Windows ML

Para aplicativos C++, depois de registrar provedores de execução, use a API ONNX Runtime C diretamente para criar sessões e executar inferência.

Para aplicativos C#, use o ONNX Runtime diretamente para inferência usando o Microsoft.ML.OnnxRuntime namespace.

Para aplicações em Python, use a roda onnxruntime-windowsml de runtime ONNX para inferência.

Notas em Python

Inicializar o SDK do Aplicativo Windows

Todas as chamadas de ML do Windows devem acontecer depois que o SDK do Aplicativo Windows for inicializado. Isso pode ser feito com o seguinte código:

from winui3.microsoft.windows.applicationmodel.dynamicdependency.bootstrap import (
    InitializeOptions,
    initialize
)
with initialize(options = InitializeOptions.ON_NO_MATCH_SHOW_UI):
    # Your Windows ML code here

O registro acontece fora do Windows ML

O tempo de execução do ONNX é projetado de uma forma em que os ambientes Python e nativo são separados. E chamadas de registro nativas no mesmo processo não funcionarão para o ambiente Python. Assim, o registro dos provedores de execução deve ser feito diretamente com a API Python.

Remova o vcruntime compactado do pywinrt

O projeto pywinrt inclui um msvcp140.dll no pacote winrt-runtime. Isso pode entrar em conflito com outros pacotes. Por favor, remova esta dll para evitar esse problema e instale as bibliotecas vcruntime ausentes com o vc redistribuível

Ver também