使用 ML.NET 定型模型
在本教學課程的上一個階段 中,我們已討論建立您自己的 Windows 機器學習模型和應用程式的必要條件,並下載要使用的映射集。 在此階段中,我們將瞭解如何使用 ML.NET 模型產生器,將影像集轉換成影像分類模型。
建立專案
- 開啟 Visual Studio,然後選擇 [建立新專案]。
- 在搜尋列中,輸入 .NET,選取 C# 作為您的語言和主控台作為您的平臺,然後選擇 C# 主控台應用程式 (.NET Core) 專案範本。
- 在組態視窗中:
- 命名專案。 在這裡,我們稱之為 MLNETTraining 。
- 選擇專案的位置。
- 請確定
Place solution and project in the same directory
未核取。 - 按
create
以建立您的專案。
設定模型產生器
現在,您會將模型產生器新增至我們的專案。
- 以滑鼠右鍵按一下 方案總管 中的 MLNETTraining 專案,然後選取
Add > Machine Learning
。
如此一來,您會在 Visual Studio 的新固定工具視窗中開啟 ML.NET 模型產生器。 模型產生器將引導您完成建置機器學習模型的程式。
第一個步驟是選擇相關的案例。 並非所有案例都支援 ONNX 格式。
如果定型環境是 Azure 雲端,產生的模型會採用 ONNX 格式,而且 Windows ML 應用程式不需要轉換即可輕鬆取用。 不過,如果您決定在本機電腦上定型機器學習模型,產生的模型會以 ML.NET 格式。
- 除了物件偵測之外,所有案例都支援本機 CPU 定型。
- 影像分類支援本機 GPU 定型。
- 影像分類和物件偵測支援 Azure 訓練。
在本教學課程中,您會在 Azure 訓練環境中定型影像分類模型。 輸出模型會是 ONNX 格式。 需要 Azure 帳戶才能完成訓練。
選擇影像分類案例。
選取 [設定工作區] 以設定您的 Azure 訓練環境。
在右上角,登入與您的 Azure 訂用帳戶相關聯的帳戶。 在下列功能表中:
- 選擇相關的訂用帳戶。
- 選取並建立新的機器學習工作區。
- 選取或建立新的計算資源。
- 為您的工作區命名 – ImageClassificationMLNET。
重要
如果您無法從模型建立器建立機器學習工作區,請遵循下列步驟,從 Azure 入口網站手動建立工作區。 否則,您可以跳至步驟 4。
在 Azure 帳戶中,選取 [建立資源]:
在搜尋列中,尋找機器學習。
按 [建立] 以建立新的機器學習工作區。
若要建立新的工作區,您必須提供訂用帳戶名稱、選取或建立新的資源群組、為工作區指定名稱,以及定義所有必要的參數,例如區域、儲存體帳戶等。
建立工作區並在 ML.NET 中建立新的訓練環境之後,您就可以移至下一個步驟。
等到部署機器學習服務完成為止。
下一個步驟是將資料新增至模型產生器。
- 流覽至影像資料集的位置,然後選取具有相關食物類別的訓練資料夾。 在本教學課程中,您將訓練模型來辨識沙漠、湯和水果,因此您只需要資料集資料夾中的這些類別。
現在,您已準備好移至訓練部分!
將模型定型
模型產生器會評估許多具有不同演算法和設定的模型,以提供最佳效能的模型。
- 選取 [下一步],然後選取 [開始訓練] 以開始定型程式。 ML.Net 模型產生器會先將資料上傳至 Azure、準備工作區,然後起始定型程式。
完成訓練之後,您會看到訓練結果的摘要。
最佳精確度 - 顯示模型產生器找到的最佳模型精確度。 正確性越高,表示模型針對測試資料的預測越正確。 在我們的案例中,模型可以使用 95.42% 的信賴度預測正確的結果。
評估結果
移動下一個步驟來評估定型結果。
從資料集的評估資料夾中選取影像,並探索預測。
將模型新增至解決方案
ML.NET 模型產生器可以自動將機器學習模型和專案新增至您的解決方案,以定型和取用模型。
- 流覽至定型程式的取用部分,並銷售 [新增至解決方案]。 這會將產生的模型新增至您的方案資料夾。
在方案總管中,您應該會看到模型產生器所產生的程式碼檔案,包括 ONNX 格式的 model – bestModel.onnx。
在 Azure 雲端環境中定型的模型,因此產生的模型採用 ONNX 格式。
探索您的模型
以滑鼠右鍵按一下 bestModel.onnx,然後選取 [開啟包含資料夾]。
使用 Netron 程式開啟您的模型檔案。
按下 input1 節點以開啟模型屬性。
如您所見,模型需要 32 位浮點數(多維度陣列)物件做為輸入,並傳回 Tensor float 做為輸出。 建立模型的方式,它不會傳回預測標籤的字串值,而是三個數字的陣列,分別代表食物類型的相關標籤。 您必須擷取這些值,才能使用 Windows ML 應用程式顯示正確的預測。
標籤 1 | 標籤 2 | 標籤 3 |
---|---|---|
0 | 1 | 2 |
dessert | 湯 | 蔬菜-水果 |
後續步驟
既然您已將機器學習模型定型,就可以使用 Windows 機器學習 在 UWP 應用程式中部署模型