共用方式為


教學課程:在 Azure Machine Learning 中開始使用 Python 指令碼 (SDK v1,第 1 個部分,共 3 個部分)

適用於:Python SDK azureml v1

在此教學課程中,您會使用 Azure Machine Learning 在雲端中執行您的第一個 Python 指令碼。 本教學課程是 兩部分教學課程系列的第 1 部分。

此教學課程可避免定型機器學習模型的複雜性。 您將在雲端中執行 「Hello World」 Python 腳本。 您將瞭解如何使用控件腳本在 Azure 機器學習 中設定及建立執行。

在此教學課程中,您需要:

  • 本機建立並執行 "Hello world!"Python 指令碼。
  • 建立 Python 控制指令碼,將 "Hello world!" 提交至 Azure Machine Learning。
  • 了解控制指令碼中的 Azure Machine Learning 概念。
  • 提交並執行 "Hello world!" 指令碼。
  • 在雲端中檢視程式碼輸出。

必要條件

建立和執行 Python 指令碼

本教學課程使用計算實例作為您的開發計算機。 首先,建立一些資料夾和指令碼:

  1. 如果出現提示,請登入 Azure Machine Learning 工作室,然後選取您的工作區。
  2. 選取左側的 [筆記本]
  3. 在 [檔案] 工具列中,選取 +,然後選取 [建立新的資料夾]顯示工具列中建立新資料夾工具的螢幕快照。
  4. 將資料夾命名為 get-started
  5. 在資料夾名稱的右邊,使用 ...get-started 底下建立另一個資料夾。 顯示建立子資料夾功能表的螢幕快照。
  6. 將新資料夾命名為 src。 如果檔案位置不正確,請使用 [ 編輯位置 ] 連結。
  7. src 資料夾的右邊,使用 ...src 資料夾中建立新檔案。
  8. 將檔案命名為 hello.py。 將 [檔案類型] 切換至 Python (.py)*。

將此程式碼複製到您的檔案中:

# src/hello.py
print("Hello world!")

您的專案資料夾結構現在將看起來像這樣:

資料夾結構會顯示 src 子資料夾中 hello.py。

測試指令碼

您可以在本機執行程式碼,在此案例中是指計算執行個體。 在本機執行程式碼具有互動式程式碼偵錯的優點。

如果您先前已停止計算執行個體,請立即使用 [計算] 下拉式清單右邊的 [開始計算] 工具啟動它。 等候約一分鐘,讓狀態變更為執行中

顯示停止計算實例時啟動的螢幕快照

選取 [儲存並在終端機中執行指令碼] 以執行指令碼。

顯示工具列中終端機工具中儲存和執行腳本的螢幕快照

您會在開啟的終端機視窗中看到文稿的輸出。 關閉索引標籤,然後選取 [終止] 關閉工作階段。

建立控制指令碼

控制指令碼可讓您在不同的計算資源上執行 hello.py 指令碼。 您可以使用控制指令碼來控制機器學習程式碼的執行方式和位置。

選取 get-started 資料夾結尾的 ...,以建立新的檔案。 建立名為 run-hello.py 的 Python 檔案,並將下列程式碼複製/貼上到該檔案中:

# get-started/run-hello.py
from azureml.core import Workspace, Experiment, Environment, ScriptRunConfig

ws = Workspace.from_config()
experiment = Experiment(workspace=ws, name='day1-experiment-hello')

config = ScriptRunConfig(source_directory='./src', script='hello.py', compute_target='cpu-cluster')

run = experiment.submit(config)
aml_url = run.get_portal_url()
print(aml_url)

提示

如果您在建立計算叢集時使用不同的名稱,請務必同時調整程式碼 compute_target='cpu-cluster' 中的名稱。

了解程式碼

以下說明控制指令碼的運作方式:

ws = Workspace.from_config()

工作區會連線到您的 Azure Machine Learning 工作區,讓您可以與 Azure Machine Learning 資源進行通訊。

experiment = Experiment( ... )

實驗會提供在單一名稱下組織多個作業的簡單方式。 稍後您將瞭解實驗如何讓數十個作業之間的計量比較變得簡單。

config = ScriptRunConfig( ... )

ScriptRunConfig 會包裝您的 hello.py 程式碼,並將其傳遞至您的工作區。 如其名所示,您可以使用此類別來「設定」指令碼在 Azure Machine Learning 中的「執行」方式。 它也會指定文稿執行的目標計算目標。 在此程式碼中,目標是您在設定教學課程中建立的計算叢集。

run = experiment.submit(config)

提交您的指令碼。 此提交行為稱為回合 (Run)。 在 v2 中,其已重新命名為作業。 執行/作業會封裝程式碼的單次執行。 使用作業來監視指令碼進度、擷取輸出、分析結果、將計量視覺化等等。

aml_url = run.get_portal_url()

run 物件會提供程式碼執行的控制代碼。 使用從 Python 腳本列印的 URL,從 Azure Machine Learning 工作室 監視其進度。

在雲端中提交並執行您的程式碼

  1. 選取 [儲存並在終端機中執行指令碼] 來執行控制指令碼,該程式碼會在您於設定教學課程中建立的計算叢集上執行 hello.py

  2. 在終端機中,系統可能會要求您登入以進行驗證。 複製程式碼,並遵循連結來完成此步驟。

  3. 驗證之後,您會在終端機中看到連結。 選取連結以檢視作業。

在工作室的雲端中監視您的程式碼

腳本的輸出包含與 Studio 連結,看起來像這樣: https://ml.azure.com/experiments/hello-world/runs/<run-id>?wsid=/subscriptions/<subscription-id>/resourcegroups/<resource-group>/workspaces/<workspace-name>

依照連結指示進行。 一開始,您會看到 [已排入佇列] 或 [準備] 的狀態。 第一次執行需要 5-10 分鐘才能完成。 這是因為會發生下列情形:

  • Docker 映像建置於雲端
  • 計算叢集的大小從 0 調整為 1 個節點
  • Docker 映像會下載至計算。

後續作業較快(~15 秒),因為 Docker 映射會在計算上快取。 您可以在第一次作業完成之後重新提交下列程式碼來進行測試。

等候約 10 分鐘。 您會看到作業已完成的訊息。 然後使用 [重新整理] 來查看狀態變更為 [已完成]。 作業完成後,請移至 [輸出 + 記錄] 索引標籤。您可以在該處看到資料夾中的std_log.txtuser_logs檔案。 腳本的輸出在此檔案中。

azureml-logssystem-logs 資料夾包含檔案,當您偵錯雲端中的遠端作業時,這些檔案會很有用。

後續步驟

在本教學課程中,您已建立簡單的 "Hello world!" 指令碼,並在 Azure 上執行該指令碼。 您已了解如何連線到您的 Azure Machine Learning 工作區、建立實驗,以及將您的 hello.py 程式碼提交至雲端。

在下一個教學課程中,您會以這些學習成果為基礎,執行比 print("Hello world!") 更有趣的內容。

注意

如果您想要在此完成教學課程系列,而不是前往下一個步驟,請記得清除您的資源