適用於:
IoT Edge 1.1
這很重要
IoT Edge 1.1 終止支援日期為 2022 年 12 月 13 日。 如需此產品、服務、技術或 API 的支援資訊,請參閱 Microsoft 產品生命週期。 如需更新至最新版 IoT Edge 的詳細資訊,請參閱 更新 IoT Edge。
在本文中,我們會執行下列工作:
- 使用 Azure Machine Learning Studio 來定型機器學習模型。
- 將定型的模型封裝為容器映像。
- 將容器映像部署為 Azure IoT Edge 模組。
Machine Learning Studio 是用來實驗、定型及部署機器學習模型的基礎區塊。
本文中的步驟通常是由數據科學家執行。
在本教學課程的本節中,您將瞭解如何:
- 在 Azure Machine Learning 工作區中建立 Jupyter Notebook,以定型機器學習模型。
- 將定型的機器學習模型容器化。
- 從容器化機器學習模型建立IoT Edge模組。
先決條件
本文是一系列關於在IoT Edge上使用Machine Learning的教學課程的一部分。 本系列中的每個文章都是以上一篇文章中的工作為基礎。 如果您直接抵達本文,請查看本系列的第一篇文章。
設定 Azure Machine Learning
我們使用 Machine Learning Studio 來裝載這兩個 Jupyter Notebook 和支援的檔案。 在這裡,我們會建立及設定Machine Learning專案。 如果您尚未使用 Jupyter 或 Machine Learning Studio,以下是兩個簡介檔:
- Jupyter Notebook: 在 Visual Studio Code 中使用 Jupyter Notebook
- Azure Machine Learning: 開始使用 Jupyter Notebook 中的 Azure Machine Learning
備註
設定服務之後,可以從任何計算機存取 Machine Learning。 在安裝期間,您應該使用開發 VM,其中包含您需要的所有檔案。
安裝 Azure Machine Learning Visual Studio Code 擴充功能
開發 VM 上的 Visual Studio Code 應該已安裝此擴充功能。 如果您在不同的實例上執行,請重新安裝延伸模組,如 設定Visual Studio Code擴充功能中所述。
建立 Azure Machine Learning 帳戶
若要在 Azure 上佈建資源並執行工作負載,請使用您的 Azure 帳戶認證登入。
在 Visual Studio Code 中,從功能表欄選取 [ 檢視>命令選擇區 ],以開啟命令選擇區。
在命令選擇區中輸入 命令
Azure: Sign In,以啟動登入程式。 請依照指示完成登入。建立 Machine Learning 計算實例以執行您的工作負載。 在命令選擇區上,輸入 命令
Azure ML: Create Compute。選取您的 Azure 訂用帳戶。
選取 [+ 建立新的 Azure ML 工作區],然後輸入 turbofandemo 名稱。
選取您用於此示範的資源群組。
您應該會在 Visual Studio Code 視窗右下角看到工作區建立進度 :建立工作區:turobofandemo。 此步驟可能需要一兩分鐘的時間。
等候工作區被成功建立。 它應該顯示 Azure ML 工作區 turbofandemo 已建立。
上傳 Jupyter Notebook 檔案
我們會將範例筆記本檔案上傳至新的 Machine Learning 工作區。
移至 ml.azure.com 並登入。
選取您的Microsoft目錄、Azure 訂用帳戶,以及新建立的Machine Learning工作區。
登入 Machine Learning 工作區之後,請使用左側的功能表,移至 [筆記本] 區段。
選取 [我的檔案] 索引標籤 。
選取 [上傳 ] (向上箭號圖示)。
移至 C:\source\IoTEdgeAndMlSample\AzureNotebooks。 選取清單中的所有檔案,然後選取 [ 開啟]。
選取 [ 我信任這些檔案的內容 ] 複選框。
選取 [上傳 ] 開始上傳。 然後在程式完成之後選取 [ 完成 ]。
Jupyter Notebook 檔案
讓我們檢閱您上傳至 Machine Learning 工作區的檔案。 本教學課程這部分的活動橫跨兩個筆記本檔案,這些檔案使用一些支持檔案。
01-turbofan_regression.ipynb:此筆記本會使用Machine Learning工作區來建立和執行機器學習實驗。 大致上,筆記本會執行下列步驟:
- 從裝置測試工具所產生的 Azure 儲存帳戶下載資料。
- 探索並準備數據,然後使用數據來定型分類器模型。
- 使用測試數據集來評估實驗中的模型(Test_FD003.txt)。
- 將最佳分類器模型發佈至 Machine Learning 工作區。
02-turbofan_deploy_model.ipynb:此筆記本會採用在上一個筆記本中建立的模型,並用它來建立準備好部署至 IoT Edge 裝置的容器映射。 筆記本會執行下列步驟:
- 建立模型的評分腳本。
- 使用儲存在Machine Learning工作區中的分類器模型來產生容器映像。
- 將映像部署為 Azure Container Instances 上的 web 服務。
- 使用 Web 服務來驗證模型,且映像如預期般運作。 驗證的映像將會部署至本教學課程的 建立和部署自定義IoT Edge模組部分的IoT Edge 裝置。
Test_FD003.txt:此檔案包含當我們驗證已定型分類器時,我們將用來作為測試集的數據。 我們選擇使用原始競賽提供的測試數據作為我們的測試集,因為這樣比較簡單。
RUL_FD003.txt:此檔案包含 Test_FD003.txt 檔案中每個裝置最後一個周期的剩餘使用時間 (RUL)。 如需數據的詳細說明,請參閱 C:\source\IoTEdgeAndMlSample\data\Turbofan 中的 readme.txt 和損毀傳播 Modeling.pdf 檔案。
Utils.py:此檔案包含一組 Python 公用程式函式,可用於處理數據。 第一個筆記本包含函式的詳細說明。
README.md:此自述檔描述筆記本的使用。
執行 Jupyter 筆記本
現在已建立工作區,您可以執行 "Notebook"。
從 [ 我的檔案] 頁面中,選取 [01-turbofan_regression.ipynb]。
如果筆記本被列為不受信任,請選取筆記本右上角的不受信任小工具。 當對話框出現時,請選取 [信任]。
如需最佳結果,請閱讀每個數據格的檔,並個別執行。 選取工具列上的 [ 執行 ]。 稍後,您會發現執行多個單元格是方便的。 您可以忽略升級和取代警告。
當儲存格執行時,它會在方括弧 ([*] 之間顯示星號。 當儲存格的作業完成時,星號會被替換為數字,相關的輸出可能會出現。 筆記本中的儲存格會循序建置,而且一次只能執行一個數據格。
您也可以從 儲存格 選單中使用執行選項。 選取 Ctrl+Enter 以執行儲存格,然後選取 Shift+Enter 以執行單元格,然後前進到下一個單元格。
小提示
為了穩定的儲存格操作,請避免從瀏覽器中的多個索引標籤執行相同的筆記本檔案。
在遵循 設定全域屬性 指示的儲存格中,輸入 Azure 訂用帳戶、設定和資源的值。 然後執行儲存格。
在 工作區詳細資訊的上一個儲存格中,執行完畢後,尋找指示您登入以進行驗證的連結。
開啟連結,然後輸入指定的程序代碼。 此登入程式會使用 Microsoft Azure 跨平臺命令行介面來驗證 Jupyter Notebook 以存取 Azure 資源。
在探索結果之前的儲存格中,複製執行標識碼的值,然後將它貼到重新組成執行之後的儲存格中。
在筆記本中執行剩下的程式碼區塊。
儲存筆記本,然後返回您的項目頁面。
開啟 02-turbofan_deploy_model.ipynb,然後執行每個儲存格。 您必須登入,才能在 [設定 工作區] 之後的儲存格中驗證。
儲存筆記本,然後返回您的項目頁面。
確認是否成功
若要確認筆記本程序已成功執行,請確認已建立一些項目。
在您的 Machine Learning 筆記本 [ 我的檔案 ] 索引標籤上,選取 [重新整理]。
確認已建立下列檔案。
檔案 說明 ./aml_config/.azureml/config.json 用來建立Machine Learning工作區的組態檔。 ./aml_config/model_config.json 我們需要在 Azure 的 turbofanDemo Machine Learning 工作區中部署模型的組態檔。 myenv.yml 提供已部署機器學習模型依賴性的相關資訊。 確認已建立下列 Azure 資源。 某些資源名稱會附加隨機字元。
Azure 資源 名稱 Azure Machine Learning 工作區 turborfanDemo Azure 容器登錄資料庫 (Azure Container Registry) turbofandemoxxxxxxxx Application Insights turbofaninsightxxxxxxxx Azure Key Vault turbofankeyvaultbxxxxxxxx Azure 儲存服務 渦扇引擎儲存xxxxxxxxx
偵錯 / 除錯
您可以將 Python 語句插入筆記本以進行偵錯,例如 print() 用來顯示值的命令。 如果您看到未定義的變數或物件,請執行其第一次宣告或實例化的儲存格。
如果您需要重做筆記本,您可能需要刪除先前建立的檔案和 Azure 資源。
清理資源
本教學課程是一組的一部分,其中每個文章都是以先前文章中完成的工作為基礎。 請等待清理資源,直到您完成最後一個教學課程為止。
後續步驟
在本文中,我們利用在 Machine Learning Studio 中執行的兩個 Jupyter Notebook,使用 turbofan 裝置的數據進行分析:
- 訓練 RUL 分類器。
- 將分類器儲存為模型。
- 建立容器映像。
- 將映像部署及測試為 Web 服務。
繼續閱讀下一篇文章,以建立IoT Edge裝置。