共用方式為


開始使用 Windows ML

本主題說明如何安裝和使用 Windows ML 來探索、下載和註冊執行提供者 (EP),以搭配 Windows ML 隨附的 ONNX 執行階段使用。 Windows ML 處理套件管理和硬體選擇的複雜性,自動下載與裝置硬體相容的最新執行提供者。

如果您還不熟悉 ONNX 執行階段,建議您閱讀 ONNX 執行階段文件。簡而言之,Windows ML 提供 ONNX 執行階段的共用 Windows 範圍複本,以及動態下載執行提供者 (EP) 的能力。

先決條件

  • .NET 6 或更新版本
  • 以 Windows 10 特定 TFM 為目標,類似 net6.0-windows10.0.19041.0 或更新版本

步驟 1:安裝或更新 Windows 應用程式 SDK

模型目錄 API 包含在 Windows 應用程式 SDK 2.0.0 或更新版本實驗版本中。

如需如何在 現有專案中使用 Windows 應用程式 SDK ,了解如何將 Windows 應用程式 SDK 新增至您的專案,或者如果您已經在使用 Windows 應用程式 SDK,請更新您的套件。

第 2 步:下載並註冊 EP

最簡單的入門方式是讓 Windows ML 自動探索、下載和註冊所有相容執行提供者的最新版本。 執行提供者必須先向 Windows ML 內的 ONNX 執行階段註冊,才能使用它們。 如果它們還沒有被下載,則需要先下載它們。 調用 EnsureAndRegisterCertifiedAsync() 將一步完成這兩項操作。

using Microsoft.ML.OnnxRuntime;
using Microsoft.Windows.AI.MachineLearning;

// First we create a new instance of EnvironmentCreationOptions
EnvironmentCreationOptions envOptions = new()
{
    logId = "WinMLDemo", // Use an ID of your own choice
    logLevel = OrtLoggingLevel.ORT_LOGGING_LEVEL_ERROR
};

// And then use that to create the ORT environment
using var ortEnv = OrtEnv.CreateInstanceWithOptions(ref envOptions);

// Get the default ExecutionProviderCatalog
var catalog = ExecutionProviderCatalog.GetDefault();

// Ensure and register all compatible execution providers with ONNX Runtime
// This downloads any necessary components and registers them
await catalog.EnsureAndRegisterCertifiedAsync();

小提示

在生產應用程式中,將 `EnsureAndRegisterCertifiedAsync()` 呼叫包裝在 try-catch 區塊中,以妥善處理潛在的網路或下載失敗。

後續步驟

註冊執行提供者之後,您就可以在 Windows ML 中使用 ONNX 執行階段 API! 你會想要...

  1. 選取執行提供者 - 告訴執行階段您要使用哪些執行提供者
  2. 取得您的模型 - 使用模型目錄動態下載模型,或將其包含在本機
  3. 執行模型推斷 - 編譯、載入和推斷您的模型

這很重要

使用 Microsoft.ML.OnnxRuntime.Tensors API 的 C# 專案必須手動參考 System.Numerics.Tensors NuGet 套件 9.0.0 版或更新版本。 如果沒有此 NuGet 套件參考,您的程式碼將會發生下列執行階段錯誤: Could not load file or assembly 'System.Numerics.Tensors, Version=9.0.0.0

另請參閱