PythonScriptStep 類別

建立執行 Python 腳本的 Azure ML 管線步驟。

如需使用 PythonScriptStep 的範例,請參閱筆記本 https://aka.ms/pl-get-started

建立執行 Python 腳本的 Azure ML 管線步驟。

繼承
azureml.pipeline.core._python_script_step_base._PythonScriptStepBase
PythonScriptStep

建構函式

PythonScriptStep(script_name, name=None, arguments=None, compute_target=None, runconfig=None, runconfig_pipeline_params=None, inputs=None, outputs=None, params=None, source_directory=None, allow_reuse=True, version=None, hash_paths=None)

參數

script_name
str
必要

[必要]相對於 的 Python 腳本 source_directory 名稱。

name
str
預設值: None

步驟的名稱。 如果未指定, script_name 則會使用 。

arguments
list
預設值: None

Python 腳本檔案的命令列引數。 引數會透過 arguments RunConfiguration 中的 參數傳遞至計算。 如需如何處理特殊符號等引數的詳細資訊,請參閱 RunConfiguration

compute_target
Union[DsvmCompute, AmlCompute, RemoteCompute, HDInsightCompute, str, tuple]
預設值: None

[必要]要使用的計算目標。 如果未指定,將會使用 Runconfig 中的目標。 此參數可以指定為計算目標物件,或工作區上計算目標的字串名稱。 您可以選擇性地在管線建立期間無法使用計算目標,您可以指定 ('compute target name'、'compute target type') 的 Tuple,以避免擷取計算目標物件 (AmlCompute 類型為 'AmlCompute',而 RemoteCompute 類型為 'VirtualMachine') 。

runconfig
RunConfiguration
預設值: None

要使用的選擇性 RunConfiguration。 RunConfiguration 可用來指定執行的其他需求,例如 conda 相依性和 Docker 映射。 如果未指定,將會建立預設 Runconfig。

runconfig_pipeline_params
dict[str, PipelineParameter]
預設值: None

使用機碼/值組覆寫執行時間的 Runconfig 屬性,每組都有 Runconfig 屬性的名稱,以及該屬性的 PipelineParameter。

支援的值:'NodeCount'、'MpiProcessCountPerNode'、'TensorflowWorkerCount'、'TensorflowParameterServerCount'

params
dict
預設值: None

以 「AML_PARAMETER_」 註冊為環境變數的名稱/值組字典。

source_directory
str
預設值: None

資料夾,其中包含步驟中使用的 Python 腳本、conda env 和其他資源。

allow_reuse
bool
預設值: True

指出當使用相同的設定重新執行時,步驟是否應該重複使用先前的結果。 預設會啟用重複使用。 如果步驟內容 (腳本/相依性) ,以及輸入和參數保持不變,則會重複使用此步驟上一次執行的輸出。 重複使用步驟時,不會提交要計算的作業,則會立即讓任何後續步驟使用上一次執行的結果。 如果您使用 Azure Machine Learning 資料集做為輸入,則重複使用取決於資料集的定義是否已變更,而非基礎資料是否已變更。

version
str
預設值: None

選擇性版本標籤,表示步驟的功能變更。

hash_paths
list
預設值: None

已淘汰:不再需要。

檢查步驟內容的變更時,雜湊的路徑清單。 如果沒有偵測到任何變更,管線將會重複使用先前執行的步驟內容。 根據預設,的內容 source_directory 會雜湊,但 .amlignore 或 .gitignore 中列出的檔案除外。

script_name
str
必要

[必要]相對於 的 Python 腳本 source_directory 名稱。

name
str
必要

步驟的名稱。 如果未指定, script_name 則會使用 。

arguments
[str]
必要

Python 腳本檔案的命令列引數。 引數會透過 arguments RunConfiguration 中的 參數傳遞至計算。 如需如何處理特殊符號等引數的詳細資訊,請參閱 RunConfiguration

compute_target
Union[DsvmCompute, AmlCompute, RemoteCompute, HDInsightCompute, str, tuple]
必要

[必要]要使用的計算目標。 如果未指定,將會使用 Runconfig 中的目標。 此參數可以指定為計算目標物件,或工作區上計算目標的字串名稱。 您可以選擇性地在管線建立期間無法使用計算目標,您可以指定 ('compute target name'、'compute target type') 的 Tuple,以避免擷取計算目標物件 (AmlCompute 類型為 'AmlCompute',而 RemoteCompute 類型為 'VirtualMachine') 。

runconfig
RunConfiguration
必要

要使用的選擇性 RunConfiguration。 RunConfiguration 可用來指定執行的其他需求,例如 conda 相依性和 Docker 映射。 如果未指定,將會建立預設 Runconfig。

runconfig_pipeline_params
dict[str, PipelineParameter]
必要

使用機碼/值組覆寫執行時間的 Runconfig 屬性,每組都有 Runconfig 屬性的名稱,以及該屬性的 PipelineParameter。

支援的值:'NodeCount'、'MpiProcessCountPerNode'、'TensorflowWorkerCount'、'TensorflowParameterServerCount'

params
<xref:<xref:{str: str}>>
必要

名稱/值組的字典。 使用 「 >> AML_PARAMETER_ << 」 註冊為環境變數。

source_directory
str
必要

資料夾,其中包含步驟中使用的 Python 腳本、conda env 和其他資源。

allow_reuse
bool
必要

指出當使用相同的設定重新執行時,步驟是否應該重複使用先前的結果。 預設會啟用重複使用。 如果步驟內容 (腳本/相依性) ,以及輸入和參數保持不變,則會重複使用此步驟上一次執行的輸出。 重複使用步驟時,不會提交要計算的作業,則會立即讓任何後續步驟使用上一次執行的結果。 如果您使用 Azure Machine Learning 資料集做為輸入,則重複使用取決於資料集的定義是否已變更,而非基礎資料是否已變更。

version
str
必要

選擇性版本標籤,表示步驟的功能變更。

hash_paths
list
必要

已淘汰:不再需要。

檢查步驟內容的變更時,雜湊的路徑清單。 如果沒有偵測到任何變更,管線將會重複使用先前執行的步驟內容。 根據預設,的內容 source_directory 會雜湊,但 .amlignore 或 .gitignore 中列出的檔案除外。

備註

PythonScriptStep 是在計算目標上執行 Python 腳本的基本內建步驟。 它會將指令碼名稱和其他選用參數 (例如引數) 用於指令碼、計算目標、輸入和輸出。 如果未指定任何計算目標,則會使用工作區的預設計算目標。 您也可以使用 RunConfiguration 來指定 PythonScriptStep 的需求,例如 conda 相依性和 Docker 映射。

使用 PythonScriptStep 的最佳做法是針對腳本和與步驟相關聯的任何相依檔案使用不同的資料夾,並使用 參數指定該資料夾 source_directory 。 遵循此最佳做法有兩個優點。 首先,它有助於減少為步驟建立的快照集大小,因為只會快照集步驟所需的專案。 其次,如果對 觸發重新上傳快照集的 沒有變更 source_directory ,則可以重複使用上一次執行的步驟輸出。

下列程式碼範例示範如何在機器學習訓練案例中使用 PythonScriptStep。 如需此範例的詳細資訊,請參閱 https://aka.ms/pl-first-pipeline


   from azureml.pipeline.steps import PythonScriptStep

   trainStep = PythonScriptStep(
       script_name="train.py",
       arguments=["--input", blob_input_data, "--output", output_data1],
       inputs=[blob_input_data],
       outputs=[output_data1],
       compute_target=compute_target,
       source_directory=project_folder
   )

PythonScriptSteps 支援許多輸入和輸出類型。 這些包括 DatasetConsumptionConfig 輸入和 OutputDatasetConfigPipelineOutputAbstractDatasetPipelineData 的輸入和輸出。

以下是使用 Dataset 作為步驟輸入和輸出的範例:


   from azureml.core import Dataset
   from azureml.pipeline.steps import PythonScriptStep
   from azureml.pipeline.core import Pipeline, PipelineData

   # get input dataset
   input_ds = Dataset.get_by_name(workspace, 'weather_ds')

   # register pipeline output as dataset
   output_ds = PipelineData('prepared_weather_ds', datastore=datastore).as_dataset()
   output_ds = output_ds.register(name='prepared_weather_ds', create_new_version=True)

   # configure pipeline step to use dataset as the input and output
   prep_step = PythonScriptStep(script_name="prepare.py",
                                inputs=[input_ds.as_named_input('weather_ds')],
                                outputs=[output_ds],
                                compute_target=compute_target,
                                source_directory=project_folder)

如需使用其他輸入/輸出類型的範例,請參閱對應的檔頁面。

方法

create_node

建立 PythonScriptStep 的節點,並將它新增至指定的圖形。

這個方法不適合直接使用。 使用此步驟具現化管線時,Azure ML 會自動傳遞透過此方法所需的參數,以便將步驟新增至代表工作流程的管線圖形。

create_node

建立 PythonScriptStep 的節點,並將它新增至指定的圖形。

這個方法不適合直接使用。 使用此步驟具現化管線時,Azure ML 會自動傳遞透過此方法所需的參數,以便將步驟新增至代表工作流程的管線圖形。

create_node(graph, default_datastore, context)

參數

graph
Graph
必要

要加入節點的繪圖物件。

default_datastore
Union[AbstractAzureStorageDatastore, AzureDataLakeDatastore]
必要

預設資料存放區。

context
<xref:azureml.pipeline.core._GraphContext>
必要

圖形內容。

傳回

已建立的節點。

傳回類型