Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
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:
- APIs de ML do Windows. APIs de ML do Windows no namespace Microsoft.Windows.AI.MachineLearning , como a classe ExecutionProviderCatalog e seus métodos (que são APIs do Tempo de Execução do Windows).
- APIs de tempo de execução ONNX. Implementações do Windows ML (no pacote NuGet Microsoft.WindowsAppSDK.ML ) de determinadas APIs do ONNX Runtime (ORT). Para obter documentação, consulte a documentação da API do ONNX Runtime. Por exemplo, o struct OrtCompileApi. Para obter exemplos de código que usam essas APIs e mais links para a documentação, consulte o tutorial Usar o Windows ML para executar o modelo ResNet-50 .
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.MLeMicrosoft.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