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.
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:
- APIs do Windows ML. APIs do Windows ML no namespace Microsoft.Windows.AI.MachineLearning , como a classe ExecutionProviderCatalog e seus métodos (que são APIs do Windows Runtime).
- APIs de runtime do ONNX. Implementações do Windows ML de determinadas APIs do ONNX Runtime (ORT) no pacote NuGet Microsoft.WindowsAppSDK.ML. Para obter documentação, consulte os documentos da API de Runtime do ONNX. Por exemplo, o struct OrtCompileApi. Para obter exemplos de código que usam essas APIs e mais links para documentação, consulte o Windows ML para executar o tutorial do modelo ResNet-50 .
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.MLeMicrosoft.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