Editar

Compartilhar via


Perguntas frequentes

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

Como fazer para saber se o modelo ONNX que tenho executará com o Windows ML?

A maneira mais fácil de verificar se o seu modelo executará com o Windows ML é usar a Ferramenta de Executor de Modelo do WinML. Como alternativa, você pode verificar versões do ONNX e builds do Windows para obter mais informações sobre todas as versões do ONNX compatíveis com uma determinada versão do Windows.

Como fazer para converter um modelo de um formato diferente em ONNX?

Você pode usar as 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 incompatíveis". O que devo fazer?

Alguns operadores na estrutura de treinamento nativo podem não ser atualmente compatíveis com uma versão do ONNX. Primeiro, recomendamos que você verifique quais são as versões do ONNX compatíveis com seu build de destino do Windows e tente converter seu modelo para a maior versão compatível. Versões mais recentes do ONNX incluem suporte para um conjunto maior de operadores, se comparadas às versões mais antigas.

Se você continuar a encontrar problemas, recomendamos trabalhar com sua equipe de ciência de dados para experimentar e evitar os operadores incompatíveis. Uma das abordagens que recomendamos é alterar a arquitetura do modelo na estrutura de origem e tentar converter/exportar o modelo para a versão de destino do ONNX. Observe que você ainda não precisa treinar o modelo – você pode tentar converter a arquitetura e, se for bem-sucedido, poderá prosseguir para o retreinamento completo do seu modelo.

Por que não consigo carregar um modelo?

Há várias razões pelas quais você pode ter problemas ao carregar um modelo, mas um dos mais comuns ao desenvolver em 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 permissão de usuário ou capacidades adicionais para acessar outros locais. Para obter mais informações, veja Permissões de acesso a arquivo.

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 será preciso instalar a versão correta do onnxmltools para que seja possível direcionar ao ONNX v 1.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 deve ser instalada, recomendamos instalar a versão mais recente do winmltools em vez disso. Isso garantirá que você será capaz de direcionar a versão ONNX compatível com o Windows.

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

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

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

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

  • O atributo necessário 'consumed_inputs' está ausente: quando essa mensagem de erro aparecer, provavelmente você estará tentando executar um modelo do ONNX v1.2 com uma versão do SDK do Windows 10 anterior à 17763. Recomendamos que você verifique a versão do SDK e atualize-a para a versão 17763 ou posterior.
  • Erro de tipo: o tipo (map(string,tensor(float))) do argumento de saída (loss) do nó (ZipMap) não corresponde ao tipo esperado...: se você encontrar esse erro, provavelmente o modelo do ONNX será de uma versão mais antiga do que a aceita pelo WinML do build 17763 em diante. Recomendamos que você atualize o pacote do conversor para a versão mais recente disponível e converta novamente o modelo para a versão 1.2 do ONNX.

No que o WinML é executado por padrão?

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

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

Observação

Use os recursos a seguir para obter ajuda com o Windows ML:

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