教程:使用 Azure Machine Learning Visual Studio Code 擴充功能進行影像分類模型的訓練(預覽)

適用於:Azure CLI ml 擴充套件 v2 (目前)

本文說明如何利用 TensorFlow 及 Azure Machine Learning Visual Studio Code 擴充功能訓練影像分類模型來辨識手寫數字。

重要

此功能目前處於公開預覽。 此預覽版本沒有服務等級協定,不建議用於處理生產工作負載。 可能不支援特定功能,或可能已經限制功能。

如需詳細資訊,請參閱 Microsoft Azure 預覽版增補使用條款

在本教學課程中,您會了解下列工作:

  • 了解程式碼
  • 建立工作區
  • 訓練模型

必要條件

了解程式碼

本教學課程的程式碼會使用 TensorFlow 來定型影像分類機器學習模型,以將 0-9 的手寫數字分類。 其方式是建立神經網路,以接受28x28像素影像的圖元值做為輸入,然後輸出10個機率的清單,每個要分類的數位各一個。 下列範例顯示數據的外觀。

顯示 MNIST 數位範例的螢幕快照。

建立工作區

若要在 Azure Machine Learning 中建置應用程式,您必須先建立工作區。 工作區包含用來定型模型的資源,以及定型的模型本身。 如需詳細資訊,請參閱 什麼是 Azure Machine Learning 工作區?

  1. 在 Visual Studio Code 中,從範例存放庫開啟 azureml-examples/cli/jobs/single-step/tensorflow/mnist 目錄。

  2. 在 Visual Studio Code 活動列上,選取 Azure 圖示,以開啟 Azure Machine Learning 視圖。

  3. [機器學習] 底下,以滑鼠右鍵按兩下您的訂用帳戶節點,然後選取 [ 建立工作區]。

    顯示建立工作區選項的螢幕快照。

  4. 規格檔案隨即出現。 使用下列選項設定規格檔案,然後加以儲存。

    $schema: https://azuremlschemas.azureedge.net/latest/workspace.schema.json
    name: TeamWorkspace
    location: WestUS2
    display_name: team-ml-workspace
    description: A workspace for training machine learning models
    tags:
      purpose: training
      team: ml-team
    

    規則檔案會在 TeamWorkspace 區域中建立名為 WestUS2 的工作區。 規格檔案中定義的其餘選項,可為工作區提供易記名稱、描述和標籤。

  5. 以滑鼠右鍵按一下規格檔案,然後選取 [AzureML:執行 YAML]。 建立資源時,使用YAML規格檔中定義的設定選項,並透過CLI(v2)提交工作。 此時,擴充功能會向 Azure 請求在你的帳號中建立新的工作區和相關資源。 幾分鐘後,新的工作區就會出現在您的訂用帳戶節點中。

  6. TeamWorkspace 設為您的預設工作區。 將此工作區設為預設,你預設會將建立的資源和工作放進工作區。 請在 Visual Studio Code 狀態列上選取 [設定 Azure Machine Learning 工作區] 按鈕,並依照提示,將 TeamWorkspace 設為您的預設工作區。

如需工作區的詳細資訊,請參閱 使用 VS Code 擴充功能管理 Azure Machine Learning 資源

訓練模型

在定型過程中,TensorFlow 模型的定型方式是針對每個要分類的數字,處理內嵌在其中的定型資料和學習模式。

如同工作區和計算目標一樣,訓練作業是以資源範本來定義。 在此範例中,規格定義於 job.yml 檔案中,該檔案位於範例存放庫中 的 azureml-examples/cli/jobs/single-step/tensorflow/mnist 資料夾中。

$schema: https://azuremlschemas.azureedge.net/latest/commandJob.schema.json
code: src
command: >
    python train.py
environment: azureml:AzureML-tensorflow-2.12-cuda11@latest
compute: azureml:gpu-cluster
experiment_name: tensorflow-mnist-example
description: Train a basic neural network with TensorFlow on the MNIST dataset.

此規格檔會將名為 tensorflow-mnist-example 的訓練任務提交至 gpu-cluster 計算目標,該目標執行 train.py Python 腳本中的程式碼。 使用的環境是 Azure Machine Learning 所提供的其中一個精選環境,其中包含執行訓練腳本所需的 TensorFlow 和其他軟體相依性。 如需策展環境的詳細資訊,請參閱 Azure Machine Learning 策展環境

若要提交訓練作業:

  1. 開啟 job.yml 檔案。
  2. 以滑鼠右鍵按一下文字編輯器中的檔案,然後選取 [AzureML:執行 YAML]

此時,要求會傳送至 Azure,以在工作區中所選的計算目標上執行您的實驗。 這個程序需要幾分鐘的時間。 執行訓練作業的時間量會受到數個因素的影響,例如計算類型和定型資料大小。 若要追蹤實驗的進度,請以滑鼠右鍵按一下目前的執行節點,然後選取 [View Job in Azure portal] \(在 Azure 入口網站中檢視作業\)

當要求開啟外部網站的對話方塊出現時,請選取 [開啟]

顯示作業進度的螢幕快照。

當模型完成定型時,執行節點旁邊的狀態卷標會更新為 [已完成]。