Freigeben über


Erstellen Sie eine 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.

Auswählen eines Geräts

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

  • Vorgabe
    • Lassen Sie das System entscheiden, welches Gerät verwendet werden soll. Derzeit ist das Standardgerät die CPU.
  • CPU
    • Verwenden Sie die CPU, auch wenn andere Geräte verfügbar sind.
  • DirectX (Englisch)
    • Verwenden Sie ein DirectX-Hardwarebeschleunigungsgerät, insbesondere den ersten Adapter, der von IDXGIFactory1::EnumAdapters1 aufgezählt wird.
  • DirectXHighLeistung
  • DirectXMinPower

Wenn Sie kein Gerät angeben, verwendet das System "Default". Wir empfehlen, Standard zu verwenden, damit das System in Zukunft für Sie auswählen kann und Sie flexibel bleiben.

Das folgende Video enthält ausführlichere Informationen zu den einzelnen Gerätetypen.


Erweiterte Geräteerstellung

Windows AI unterstützt die Verwendung eines Geräts, das der Aufrufer bereits erstellt hat. Bei dieser Vorgehensweise gibt es mehrere Optionen und Überlegungen:

  • CreateFromDirect3D11Device. Verwenden Sie dies, wenn Sie bereits über ein IDirect3DDevice verfügen. Windows AI verwendet diesen Adapter, um ein d3d12-Gerät für seine ML-Workloads zu erstellen. Dies ist nützlich, 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, die Windows AI hat. Wenn Sie dieses Feature nicht verwenden, gibt es keinen Vorteil beim Teilen oder Erstellen eines d3d11-Geräts.
  • CreateFromD3D12CommandQueue (nativ). Verwenden Sie diese Vorgehensweise, wenn Sie über ein d3d12-Gerät verfügen, das Sie wiederverwenden möchten. Windows AI verwendet diese Befehlswarteschlange für ihre ML-Workloads. Außerdem wird mit D3D11On12CreateDevice ein d3d11-Gerät erstellt. Dies erfolgt nur bei Bedarf und wird für alle d3d11-Workloads wie die VideoFrame-Tensorisierung verwendet. Sie können über die LearningModelDevice.Direct3D11Device-Eigenschaft auf dieses neue Gerät zugreifen.

Beispiel

Das folgende Beispiel zeigt, wie Sie eine Sitzung aus einem Modell und einem Gerät erstellen:

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

Siehe auch

Hinweis

Verwenden Sie die folgenden Ressourcen, wenn Sie Hilfe mit Windows ML benötigen:

  • Wenn Sie technische Fragen zu Windows ML stellen oder beantworten möchten, verwenden Sie das Tag windows-machine-learning auf Stack Overflow.
  • Um einen Fehler zu melden, erstellen Sie bitte eine Meldung auf unserem GitHub.