共用方式為


使用 ML.NET 定型模型

在本教學課程的上一個階段 中,我們已討論建立您自己的 Windows 機器學習模型和應用程式的必要條件,並下載要使用的映射集。 在此階段中,我們將瞭解如何使用 ML.NET 模型產生器,將影像集轉換成影像分類模型。

建立專案

  1. 開啟 Visual Studio,然後選擇 [建立新專案]。

Create a new project for the Model Builder

  1. 在搜尋列中,輸入 .NET,選取 C# 作為您的語言和主控台作為您的平臺,然後選擇 C# 主控台應用程式 (.NET Core) 專案範本。

Create a new .NET project

  1. 在組態視窗中:
  • 命名專案。 在這裡,我們稱之為 MLNETTraining
  • 選擇專案的位置。
  • 請確定 Place solution and project in the same directory 未核取。
  • create 以建立您的專案。

Configure your new project

設定模型產生器

現在,您會將模型產生器新增至我們的專案。

  1. 以滑鼠右鍵按一下 方案總管 中的 MLNETTraining 專案,然後選取 Add > Machine Learning

Add machine learning to your project

如此一來,您會在 Visual Studio 的新固定工具視窗中開啟 ML.NET 模型產生器。 模型產生器將引導您完成建置機器學習模型的程式。

List of model builder scenarios

第一個步驟是選擇相關的案例。 並非所有案例都支援 ONNX 格式。

如果定型環境是 Azure 雲端,產生的模型會採用 ONNX 格式,而且 Windows ML 應用程式不需要轉換即可輕鬆取用。 不過,如果您決定在本機電腦上定型機器學習模型,產生的模型會以 ML.NET 格式。

  • 除了物件偵測之外,所有案例都支援本機 CPU 定型。
  • 影像分類支援本機 GPU 定型。
  • 影像分類和物件偵測支援 Azure 訓練。

在本教學課程中,您會在 Azure 訓練環境中定型影像分類模型。 輸出模型會是 ONNX 格式。 需要 Azure 帳戶才能完成訓練。

  1. 選擇影像分類案例。

  2. 選取 [設定工作區] 以設定您的 Azure 訓練環境。

Set up your Azure workspace

在右上角,登入與您的 Azure 訂用帳戶相關聯的帳戶。 在下列功能表中:

  • 選擇相關的訂用帳戶。
  • 選取並建立新的機器學習工作區。
  • 選取或建立新的計算資源。
  • 為您的工作區命名 – ImageClassificationMLNET。

Configure your Azure workspace

重要

如果您無法從模型建立器建立機器學習工作區,請遵循下列步驟,從 Azure 入口網站手動建立工作區。 否則,您可以跳至步驟 4。

在 Azure 帳戶中,選取 [建立資源]:

Available Azure resources

在搜尋列中,尋找機器學習。

Search for Machine Learning in the Azure resource list

按 [建立] 以建立新的機器學習工作區。

The Azure Machine Learning resource

若要建立新的工作區,您必須提供訂用帳戶名稱、選取或建立新的資源群組、為工作區指定名稱,以及定義所有必要的參數,例如區域、儲存體帳戶等。

Set up your Azure ML workspace

建立工作區並在 ML.NET 中建立新的訓練環境之後,您就可以移至下一個步驟。

The ML.NET training environment

等到部署機器學習服務完成為止。

下一個步驟是將資料新增至模型產生器。

  1. 流覽至影像資料集的位置,然後選取具有相關食物類別的訓練資料夾。 在本教學課程中,您將訓練模型來辨識沙漠、湯和水果,因此您只需要資料集資料夾中的這些類別。

Add data to your ML model

現在,您已準備好移至訓練部分!

將模型定型

模型產生器會評估許多具有不同演算法和設定的模型,以提供最佳效能的模型。

  1. 選取 [下一步],然後選取 [開始訓練] 以開始定型程式。 ML.Net 模型產生器會先將資料上傳至 Azure、準備工作區,然後起始定型程式。

Train your Machine Learning model

完成訓練之後,您會看到訓練結果的摘要。

Successful model training

最佳精確度 - 顯示模型產生器找到的最佳模型精確度。 正確性越高,表示模型針對測試資料的預測越正確。 在我們的案例中,模型可以使用 95.42% 的信賴度預測正確的結果。

評估結果

  1. 移動下一個步驟來評估定型結果。

  2. 從資料集的評估資料夾中選取影像,並探索預測。

Model evaluation results

將模型新增至解決方案

ML.NET 模型產生器可以自動將機器學習模型和專案新增至您的解決方案,以定型和取用模型。

  1. 流覽至定型程式的取用部分,並銷售 [新增至解決方案]。 這會將產生的模型新增至您的方案資料夾。

Add your model to your solution

在方案總管中,您應該會看到模型產生器所產生的程式碼檔案,包括 ONNX 格式的 model – bestModel.onnx。

Your model displayed in the solution explorer

在 Azure 雲端環境中定型的模型,因此產生的模型採用 ONNX 格式。

探索您的模型

  1. 以滑鼠右鍵按一下 bestModel.onnx,然後選取 [開啟包含資料夾]。

  2. 使用 Netron 程式開啟您的模型檔案。

  3. 按下 input1 節點以開啟模型屬性。

Exploring the properties of your model

如您所見,模型需要 32 位浮點數(多維度陣列)物件做為輸入,並傳回 Tensor float 做為輸出。 建立模型的方式,它不會傳回預測標籤的字串值,而是三個數字的陣列,分別代表食物類型的相關標籤。 您必須擷取這些值,才能使用 Windows ML 應用程式顯示正確的預測。

標籤 1 標籤 2 標籤 3
0 1 2
dessert 蔬菜-水果

後續步驟

既然您已將機器學習模型定型,就可以使用 Windows 機器學習 在 UWP 應用程式中部署模型