共用方式為


建立工作階段

載入 LearningModel之後,您會建立 LearningModelSession,將模型系結至執行並評估模型的裝置。

選擇裝置

您可以在建立會話時選取裝置。 您可以選擇 LearningModelDeviceKind類型的裝置:

如果您未指定裝置,系統會使用 [預設]。 建議您使用 Default 來彈性地讓系統在未來為您選擇。

下列影片會更詳細地說明每個裝置類型。


進階裝置建立

Windows AI 支援使用呼叫端已建立的裝置。 執行此動作時,有幾個選項和考慮:

  • CreateFromDirect3D11Device。 當您已經有現有的 IDirect3DDevice 時,請使用此專案。 Windows AI 會使用相同的配接器來為其 ML 工作負載建立 d3d12 裝置。 當您有一部相機使用適用于 VideoFrames 的 d3d11 裝置,而且您想要針對 LearningModelSession 使用相同的裝置時,這非常有用。 在許多情況下,它可以避免記憶體複製。 注意:VideoFrame 張量化是 Windows AI 唯一的 d3d11 工作負載。 如果您未使用該功能,則無法共用或建立 d3d11 裝置。
  • CreateFromD3D12CommandQueue (原生) 。 當您有想要重複使用的 d3d12 裝置時,請使用此選項。 Windows AI 會將該命令佇列用於其 ML 工作負載。 它也會使用 D3D11On12CreateDevice 建立 d3d11 裝置。 這只有在需要時才完成,而且將用於所有 d3d11 工作負載,例如 VideoFrame 張量化。 您可以透過 LearningModelDevice.Direct3D11Device 屬性存取這個新裝置。

範例

下列範例示範如何從模型和裝置建立會話:

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

另請參閱

注意

使用下列資源取得 Windows ML 的說明:

  • 如需詢問或回答有關 Windows ML 的技術問題,請使用 Stack Overflow 上的 windows-machine-learning 標籤。
  • 如需回報錯誤 (bug),請在 GitHub 上提出問題。