Partilhar via


Criar uma sessão

Depois de carregar um LearningModel, você cria um LearningModelSession, que vincula o modelo a um dispositivo que executa e avalia o modelo.

Escolha um dispositivo

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

  • Padrão
    • Deixe o sistema decidir qual dispositivo usar. Atualmente, o dispositivo padrão é a CPU.
  • Processador
    • Use a CPU, mesmo que outros dispositivos estejam disponíveis.
  • DirectX
  • DirectXHighPerformance
  • DirectXMinPower

Se você não especificar um dispositivo, o sistema usará Padrão. Recomendamos o uso do Default para obter a flexibilidade de permitir que o sistema escolha por você no futuro.

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


Criação avançada de dispositivos

A IA do Windows suporta o 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 seu LearningModelSession. Em muitos casos, pode evitar uma cópia de memória. Nota: A tensorização do VideoFrame é a única carga de trabalho d3d11 que o Windows AI tem. Se você não estiver usando esse recurso, não há vantagem em compartilhar ou criar um dispositivo d3d11.
  • CreateFromD3D12CommandQueue (nativo). Utilize esta opção quando tiver um dispositivo d3d12 que pretende reutilizar. A IA do Windows usará essa fila de comandos para suas cargas de trabalho de ML. Também irá criar um dispositivo d3d11 usando D3D11On12CreateDevice. Isso é feito apenas quando necessário e será utilizado para todas as cargas de trabalho do D3D11, como a tensorização de VideoFrame. Você pode acessar esse novo dispositivo por meio da propriedade LearningModelDevice.Direct3D11Device.

Exemplo

O exemplo a seguir mostra como criar uma sessão a partir de 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));
}

Ver 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 Windows ML, use a tag windows-machine-learning no Stack Overflow.
  • Para relatar um bug, registre um problema em nosso GitHub.