Compartilhar via


APIs do Windows ML

Para obter diretrizes conceituais, consulte Executar modelos ONNX com o Windows ML).

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

O pacote NuGet do Microsoft.WindowsAppSDK.ML

O runtime do Microsoft Windows ML fornece APIs para machine learning e operações de IA em aplicativos do Windows. Microsoft.WindowsAppSDK.ML pacote NuGet fornece os arquivos de runtime .winmd do Windows ML para uso em projetos C# e C++.

As engrenagens pywinrt Python

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

APIs do Windows ML

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

Notas de implementação

O runtime do Windows ML é integrado ao SDK de Aplicativos do 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 do pacote e as atualizações
  • Garante o registro e a ativação do pacote
  • Dá suporte a diferentes versões de provedores de execução

Implantação dependente da estrutura

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

  • Recomenda-se referenciar o pacote principal NuGet do SDK de Aplicativo do Windows, adicionando uma referência a Microsoft.WindowsAppSDK.
  • Ou referenciar ambos Microsoft.WindowsAppSDK.ML e Microsoft.WindowsAppSDK.Runtime

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

Usando o ONNX Runtime com o Windows ML

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

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

Para aplicativos Python, use a engrenagem ONNX Runtime separada (onnxruntime) para inferência. Para a versão experimental, use o pacote onnxruntime-winml==1.22.0.post2 do índice https://aiinfra.pkgs.visualstudio.com/PublicPackages/_packaging/ORT-Nightly/pypi/simple.

Anotações do Python

Inicializar o SDK do Aplicativo do Windows

Todas as chamadas do Windows ML devem ocorrer depois que o Windows App SDK 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 ocorre fora do Windows ML

O runtime do ONNX foi projetado de uma maneira em que os ambientes python e nativos são separados. E as chamadas de registro nativas no mesmo processo não funcionarão para o ambiente do Python. Portanto, o registro de provedores de execução deve ser feito diretamente com a API do Python.

Remover o vcruntime empacotado do pywinrt

O projeto pywinrt inclui um msvcp140.dll no pacote winrt-runtime. Isso pode entrar em conflito com outros pacotes. Remova esta dll para evitar esse problema e instale as bibliotecas vcruntime ausentes usando o Microsoft Visual C++ Redistributable

Consulte também