Freigeben über


Erstellen einer -Sitzung

Nachdem Sie ein LearningModel geladen haben, erstellen Sie eine LearningModelSession, die das Modell an ein Gerät bindet, das ausgeführt wird und das Modell auswertet.

Wählen Sie ein Gerät

Sie können ein Gerät auswählen, wenn Sie eine Sitzung erstellen. Sie wählen ein Gerät vom Typ LearningModelDeviceKind aus:

  • Standard
    • Überlässt dem System die Entscheidung, welches Gerät verwendet werden soll. Derzeit ist die CPU das Standardgerät.
  • CPU
    • Verwendet die CPU, auch wenn andere Geräte verfügbar sind.
  • DirectX
    • Verwendet ein DirectX-Hardwarebeschleunigungsgerät, insbesondere den ersten Adapter, der durch IDXGIFactory1:: EnumAdapters1 aufgezählt wird.
  • DirectXHighPerformance
  • DirectXMinPower

Wenn Sie kein Gerät angeben, verwendet das System Default (Standard). Es wird empfohlen, Default (Standard) zu verwenden, um die Flexibilität zu erhalten, das System in Zukunft für Sie entscheiden zu lassen.

Im folgenden Video werden die einzelnen Gerätearten ausführlicher erläutert.


Erweiterte Geräteerstellung

Windows KI unterstützt die Verwendung eines Geräts, das der Aufrufer bereits erstellt hat. Hierfür gibt es mehrere Optionen und Überlegungen:

  • CreateFromDirect3D11Device. Verwenden Sie diese Methode, wenn Sie bereits über ein vorhandenes IDirect3DDevice verfügen. Windows KI verwendet denselben Adapter, um ein d3d12-Gerät für seine ML-Workloads zu erstellen. Dies ist hilfreich, wenn Sie über eine Kamera verfügen, die ein d3d11-Gerät für VideoFrames verwendet, und Sie dasselbe Gerät für Ihre LearningModelSession verwenden möchten. In vielen Fällen kann eine Speicherkopie vermieden werden. Hinweis: Die VideoFrame-Tensorisierung ist die einzige d3d11-Workload von Windows KI. Wenn Sie dieses Feature nicht verwenden, haben Sie keinen Vorteil, wenn Sie ein d3d11-Gerät freigeben oder erstellen.
  • CreateFromD3D12CommandQueue (nativ). Verwenden Sie diese Methode, wenn Sie über ein d3d12-Gerät verfügen, das Sie wiederverwenden möchten. Windows KI verwendet diese Befehlswarteschlange für seine ML-Workload. Außerdem wird mit D3D11On12CreateDevice ein d3d11-Gerät erstellt. Dies erfolgt nur bei Bedarf und wird für alle d3d11-Workloads wie VideoFrame-Tensorisierung verwendet. Sie können über die LearningModelDevice.Direct3D11Device-Eigenschaft auf dieses neue Gerät zugreifen.

Beispiel

Im folgenden Beispiel wird gezeigt, wie eine Sitzung aus einem Modell und einem Gerät erstellt wird:

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

Weitere Informationen

Hinweis

Verwende die folgenden Ressourcen, wenn du Hilfe mit Windows ML benötigst:

  • Wenn du technische Fragen zu Windows ML stellen oder beantworten möchtest, verwende das Tag windows-machine-learning auf Stack Overflow.
  • Wenn du einen Fehler melden möchtest, erstelle eine Anfrage auf GitHub.