Creación de una sesión de
Después de cargar una instancia de LearningModel, se crea una instancia de LearningModelSession, que enlaza el modelo a un dispositivo que ejecuta y evalúa el modelo.
Elección de un dispositivo
Puedes seleccionar un dispositivo al crear una sesión. Debes elegir un dispositivo de tipo LearningModelDeviceKind:
- Valor predeterminado
- Permite que el sistema decida el dispositivo que se va a usar. Actualmente, el dispositivo predeterminado es la CPU.
- CPU
- Usa la CPU, aunque haya otros dispositivos disponibles.
- DirectX
- Usa un dispositivo de aceleración de hardware DirectX, específicamente el primer adaptador enumerado por IDXGIFactory1::EnumAdapters1.
- DirectXHighPerformance
- Igual que DirectX, pero usará DXGI_GPU_PREFERENCE_HIGH_PERFORMANCE al enumerar adaptadores.
- DirectXMinPower
- Igual que DirectX, pero usará DXGI_GPU_PREFERENCE_MINIMUM_POWER al enumerar adaptadores.
Si no especificas un dispositivo, el sistema usa la opción Predeterminado. Se recomienda usar Predeterminado para obtener la flexibilidad de permitir que el sistema elija en el futuro.
El vídeo siguiente incluye más detalles sobre cada uno de los tipos de dispositivos.
Creación de dispositivos avanzada
IA de Windows admite el uso de un dispositivo creado previamente por el autor de la llamada. Al hacerlo, hay varias opciones y consideraciones:
- CreateFromDirect3D11Device. Úsala si ya tiene una interfaz IDirect3DDevice existente. IA de Windows usará ese mismo adaptador para crear un dispositivo d3d12 para sus cargas de trabajo de ML. Resulta útil si tienes una cámara que usa un dispositivo d3d11 para las clases VideoFrame y quieres usar el mismo dispositivo para LearningModelSession. En muchos casos puede evitar una copia de memoria. Nota: La tensorización de VideoFrame es la única carga de trabajo d3d11 que tiene la IA de Windows. Si no utilizas esa característica, compartir o crear un dispositivo d3d11 no presenta ninguna ventaja.
- CreateFromD3D12CommandQueue (nativa). Úsalo si tienes un dispositivo d3d12 que quieres volver a usar. IA de Windows usará esa cola de comandos para sus cargas de trabajo de ML. También creará un dispositivo d3d11 con D3D11On12CreateDevice. Esto solo se lleva a cabo cuando es necesario y se usará para todas las cargas de trabajo d3d11, como la tensorización de VideoFrame. Puedes acceder a este nuevo dispositivo a través de la propiedad LearningModelDevice.Direct3D11Device.
Ejemplo
En el ejemplo siguiente se muestra cómo crear una sesión a partir de un modelo y un 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 también
- Anterior: Carga de un modelo
- Siguiente: Enlazado de un modelo
Nota:
Use los siguientes recursos para obtener ayuda con Windows ML:
- Para formular o responder a preguntas técnicas sobre Windows Machine Learning, utilice la etiqueta windows-machine-learning en Stack Overflow.
- Para notificar un error, registre un problema en GitHub.