Skapa en session

När du har läst in en LearningModel skapar du en LearningModelSession som binder modellen till en enhet som kör och utvärderar modellen.

Välj en enhet

Du kan välja en enhet när du skapar en session. Du väljer en enhet av typen LearningModelDeviceKind:

  • Standard
    • Låt systemet bestämma vilken enhet som ska användas. För närvarande är standardenheten processorn.
  • PROCESSOR
    • Använd processorn, även om andra enheter är tillgängliga.
  • DirectX (på engelska)
  • DirectXHighPerformance (på engelska)
  • DirectXMinPower (på engelska)

Om du inte anger en enhet använder systemet Standard. Vi rekommenderar att du använder Standard för att få flexibiliteten att låta systemet välja åt dig i framtiden.

Följande video går in mer detaljerat om var och en av enhetstyperna.


Avancerat enhetsskapande

Windows AI stöder användning av en enhet som anroparen redan har skapat. Det finns flera alternativ och överväganden när du gör detta:

  • CreateFromDirect3D11Device. Använd detta när du redan har en befintlig IDirect3DDevice. Windows AI använder samma adapter för att skapa en d3d12-enhet för sina ML-uppgifter. Detta är användbart när du har en kamera som använder en d3d11-enhet för VideoFrames och du vill använda samma enhet för din LearningModelSession. I många fall kan det undvika en minneskopia. Obs! VideoFrame-tensorisering är den enda d3d11-uppgiften som Windows AI har. Om du inte använder den funktionen finns det ingen fördel med att dela eller skapa en d3d11-enhet.
  • CreateFromD3D12CommandQueue (inbyggd). Använd detta när du har en d3d12-enhet som du vill återanvända. Windows AI använder den kommandokön för sina arbetsuppgifter inom maskininlärning. Den skapar också en d3d11-enhet med D3D11On12CreateDevice. Detta görs endast när det behövs och kommer att användas för alla d3d11-arbetsbelastningar, till exempel VideoFrame-tensorization. Du kan komma åt den här nya enheten via egenskapen LearningModelDevice.Direct3D11Enhet.

Exempel

I följande exempel visas hur du skapar en session från en modell och en enhet:

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

Se även

Anmärkning

Använd följande resurser för hjälp med Windows ML:

  • Om du vill ställa eller besvara tekniska frågor om Windows ML använder du taggen windows-machine-learningStack Overflow.
  • Om du vill rapportera en bugg, skicka in en felrapport på vår GitHub-sida .