Compartilhar via


Criar uma sessão

Depois de carregar um LearningModel, você criará um LearningModelSession, que associa o modelo a um dispositivo que é executado e avalia o modelo.

Escolher um dispositivo

Você pode selecionar um dispositivo ao criar uma sessão. Você escolhe um dispositivo do tipo LearningModelDeviceKind:

  • Padrão
    • Permita que o sistema decida qual dispositivo usar. Atualmente, o dispositivo padrão é a CPU.
  • CPU
    • Use a CPU, mesmo se outros dispositivos estiverem disponíveis.
  • DirectX
  • Desempenho direto do XHigh
  • DirectXMinPower

Se você não especificar um dispositivo, o sistema usará Default. É recomendável usar Padrão para obter a flexibilidade de deixar o sistema escolher para você no futuro.

O vídeo a seguir entra em mais detalhes sobre cada um dos tipos de dispositivo.


Criação avançada de dispositivo

A IA do Windows dá suporte ao uso de um dispositivo que o chamador já criou. Há várias opções e considerações ao fazer isso:

  • CreateFromDirect3D11Device. Use isso quando você já tiver um IDirect3DDevice existente. A IA do Windows usará esse mesmo adaptador para criar um dispositivo d3d12 para suas cargas de trabalho de ML. Isso é útil quando você tem uma câmera que está usando um dispositivo d3d11 para VideoFrames e deseja usar esse mesmo dispositivo para o LearningModelSession. Em muitos casos, o sistema pode evitar uma cópia de memória. Observação: a tensorização do VideoFrame é a única carga de trabalho d3d11 que a IA do Windows tem. Se você não estiver usando esse recurso, não haverá nenhuma vantagem em compartilhar ou criar um dispositivo d3d11.
  • CreateFromD3D12CommandQueue (nativo). Use isso quando você tiver um dispositivo d3d12 que deseja reutilizar. A IA do Windows usará essa fila de comandos para suas cargas de trabalho de ML. Ele também criará um dispositivo d3d11 usando o D3D11On12CreateDevice. Isso é feito somente quando necessário e será usado para todas as tarefas de trabalho d3d11, como tensorização de quadros de vídeo. Você pode acessar esse novo dispositivo por meio da propriedade LearningModelDevice.Direct3D11Device.

Exemplo

O exemplo a seguir mostra como criar uma sessão com base em um modelo e um dispositivo:

private void CreateSession(LearningModel model, LearningModelDeviceKind kind)
{
    // Create the evaluation session with the model and device
    LearningModelSession session =
        new LearningModelSession(model, new LearningModelDevice(kind));
}

Consulte também

Observação

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

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