Compartir a través de


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
  • DirectXHighPerformance
  • DirectXMinPower

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

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.