Editar

Compartilhar via


Perguntas frequentes (perguntas frequentes)

Esta página contém respostas para as perguntas mais populares da comunidade sobre o Windows ML.

Como saber se o modelo ONNX que tenho será executado com o Windows ML?

A maneira mais fácil de verificar se o modelo será executado com o Windows ML é usando a ferramenta WinML Model Runner. Como alternativa, você pode verificar versões onnx e builds do Windows para obter mais informações sobre todas as versões ONNX com suporte para uma determinada versão do Windows.

Como converter um modelo de um formato diferente em ONNX?

Você pode usar WinMLTools para converter modelos de vários formatos diferentes, como Apple CoreML e scikit-learn, em ONNX.

Estou recebendo erros ao tentar exportar e/ou converter meu modelo em ONNX que dizem que meu modelo tem "operadores sem suporte". O que devo fazer?

Alguns operadores na estrutura de treinamento nativa podem não ter suporte atualmente por uma versão do ONNX. Primeiro, recomendamos que você verifique as versões do ONNX com suporte para ode build do Windows de destino e tente converter seu modelo na versão máxima com suporte. Versões posteriores do ONNX incluem suporte para um conjunto maior de operadores em comparação com as versões anteriores.

Se você continuar tendo problemas, recomendamos trabalhar com sua equipe de ciência de dados para tentar evitar os operadores sem suporte. Uma das abordagens recomendadas é alterar a arquitetura do modelo na estrutura de origem e tentar converter/exportar o modelo para a versão ONNX de destino. Observe que você ainda não precisa treinar novamente o modelo– você pode tentar converter a arquitetura e, se bem-sucedido, poderá passar para o treinamento completo do modelo.

Por que não consigo carregar um modelo?

Há vários motivos pelos quais você pode ter problemas para carregar um modelo, mas um dos mais comuns ao desenvolver na UWP é devido a restrições de acesso a arquivos. Por padrão, os aplicativos UWP só podem acessar determinadas partes do sistema de arquivos e exigir a permissão do usuário ou recursos extras para acessar outros locais. Consulte Permissões de acesso a arquivos para obter mais informações.

Qual versão do WinMLTools devo usar?

Sempre recomendamos que você baixe e instale a versão mais recente do pacote winmltools. Isso garantirá que você possa criar modelos ONNX destinados às versões mais recentes do Windows.

Posso usar onnxmltools em vez de winmltools?

Sim, você pode, mas precisará ter certeza de instalar a versão correta do onnxmltools para direcionar o ONNX v1.2.2, que é a versão mínima do ONNX compatível com o Windows ML. Se você não tiver certeza de qual versão instalar, recomendamos instalar a versão mais recente do winmltools. Isso garantirá que você poderá direcionar a versão ONNX com suporte do Windows.

Qual versão do Visual Studio devo usar para obter a geração automática de código (mlgen)?

A versão mínima recomendada do Visual Studio com suporte para mlgen é 15.8.7. No Windows 10, versão 1903 e posterior, mlgen não está mais incluído no SDK, portanto, você precisará baixar e instalar a extensão. Há um para do Visual Studio 2017 e um para Visual Studio 2019.

Recebo uma mensagem de erro ao tentar executar o mlgen e nenhum código é gerado. O que poderia estar acontecendo?

Os dois erros mais comuns ao tentar executar mlgen são:

  • atributo necessário 'consumed_inputs' está ausente: se você encontrar essa mensagem de erro, provavelmente você está tentando executar um modelo ONNX v1.2 com uma versão do SDK do Windows 10 anterior a 17763; Recomendamos que você verifique sua versão do SDK e atualize-a para a versão 17763 ou posterior.
  • Erro de Tipo: Tipo (map(string,tensor(float))) do arg de saída (perda) do nó (ZipMap) não corresponde ao tipo esperado...: se você encontrar esse erro, provavelmente o modelo ONNX é uma versão mais antiga do que a aceita pelo WinML a partir do build 17763. Recomendamos que você atualize o pacote de conversor para a versão mais recente disponível e reconverta seu modelo para a versão 1.2 do ONNX.

O que o WinML executa por padrão?

Se você não especificar um dispositivo para executar com LearningModelDeviceKindou se você usar LearningModelDeviceKind.Default, o sistema decidirá qual dispositivo avaliará o modelo. Geralmente, essa é a CPU. Para fazer o WinML ser executado na GPU, especifique um dos seguintes valores ao criar o LearningModelDevice:

  • LearningModelDeviceKind.DirectX
  • LearningModelDeviceKind.DirectXHighPerformance
  • LearningModelDeviceKind.DirectXMinPower

Nota

Use os seguintes recursos para obter ajuda com o Windows ML:

  • Para fazer ou responder perguntas técnicas sobre o Windows ML, use a marca windows-machine-learning no Stack Overflow.
  • Para relatar um bug, registre um problema em nosso github.