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.
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
- Use um dispositivo de aceleração de hardware DirectX, especificamente o primeiro adaptador enumerado por IDXGIFactory1::EnumAdapters1.
-
DirectXHighPerformance
- O mesmo que o DirectX, mas usará DXGI_GPU_PREFERENCE_HIGH_PERFORMANCE ao enumerar adaptadores.
-
DirectXMinPower
- O mesmo que o DirectX, mas usará DXGI_GPU_PREFERENCE_MINIMUM_POWER ao enumerar adaptadores.
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.