Partager via


Créer une session

Une fois que vous avez chargé un LearningModel, vous créez un LearningModelSession, qui lie le modèle à un appareil qui exécute et évalue ce dernier.

Choisir un appareil

Vous pouvez sélectionner un appareil quand vous créez une session. Vous choisissez un appareil de type LearningModelDeviceKind :

  • Par défaut
    • Laissez le système décider quel appareil utiliser. L’appareil par défaut est le processeur.
  • UC
    • Utilisez le processeur, même si d’autres appareils sont disponibles.
  • DirectX
    • Utilisez un appareil à accélération matérielle DirectX, en particulier le premier adaptateur énuméré par IDXGIFactory1::EnumAdapters1.
  • DirectXHighPerformance
  • DirectXMinPower

Si vous ne spécifiez pas d’appareil, le système utilise Default. Nous vous recommandons d’utiliser Default pour laisser au système la possibilité de choisir à votre place à l’avenir.

La vidéo suivante décrit plus en détail chaque type d’appareil.


Création avancée d’appareil

Windows AI prend en charge l’utilisation d’un appareil déjà créé par l’appelant. À cet effet, il existe plusieurs options et considérations :

  • CreateFromDirect3D11Device. Utilisez cette option si vous avez déjà à disposition un appareil IDirect3DDevice. Windows AI utilise ce même adaptateur pour créer un appareil d3d12 pour ses charges de travail ML. Cela s’avère utile quand vous avez une caméra qui utilise un appareil d3d11 pour VideoFrames et que vous voulez utiliser ce même appareil pour votre LearningModelSession. Dans de nombreux cas, cela peut éviter une copie de mémoire. Note : la tenseurisation VideoFrame est la seule charge de travail d3d11 dont dispose Windows AI. Si vous n’utilisez pas cette fonctionnalité, il n’y a aucun intérêt à partager ou créer un appareil d3d11.
  • CreateFromD3D12CommandQueue (natif). Utilisez cette option si vous voulez réutiliser un appareil d3d12. Windows AI utilise cette file d’attente de commandes pour sa charge de travail ML. Un appareil d3d11 est également créé à l’aide de D3D11On12CreateDevice. Cela ne se produit qu’en cas de nécessité et sert à toutes les charges de travail d3d11 comme la tenseurisation VideoFrame. Vous pouvez accéder à ce nouvel appareil via la propriété LearningModelDevice.Direct3D11Device.

Exemple

L’exemple suivant montre comment créer une session à partir d’un modèle et d’un appareil :

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

Voir aussi

Remarque

Utilisez les ressources suivantes pour obtenir de l’aide sur Windows ML :

  • Pour poser des questions techniques ou apporter des réponses à des questions techniques sur Windows ML, veuillez utiliser le mot clé windows-machine-learning sur Stack Overflow.
  • Pour signaler un bogue, veuillez signaler un problème dans notre plateforme GitHub.