Share via


CommandStep 類別

建立執行命令的 Azure ML 管線步驟。

建立執行命令的 Azure ML 管線步驟。

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

建構函式

CommandStep(command=None, name=None, compute_target=None, runconfig=None, runconfig_pipeline_params=None, inputs=None, outputs=None, params=None, source_directory=None, allow_reuse=True, version=None)

參數

名稱 Description
command
liststr

要執行的命令,或相對於 的可執行檔/腳本 source_directory 路徑。 除非提供 runconfig,否則為必要專案。 它可以使用單一字串中的字串引數或清單中的 input/output/PipelineParameter 來指定。

預設值: None
name
str

步驟的名稱。 如果未指定,則會使用 中的 command 第一個字。

預設值: None
compute_target

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

預設值: None
runconfig

選擇性組態物件,其封裝在實驗中提交定型回合所需的資訊。

預設值: None
runconfig_pipeline_params
<xref:<xref:{str: PipelineParameter}>>

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

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

預設值: None
inputs
list[InputPortBindingDataReferencePortDataReferencePipelineData 或 <xref:azureml.pipeline.core.pipeline_output_dataset.PipelineOutputDataset> 或 DatasetConsumptionConfig]

輸入埠系結的清單。

預設值: None
outputs

輸出埠系結的清單。

預設值: None
params

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

預設值: None
source_directory
str

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

預設值: None
allow_reuse

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

預設值: True
version
str

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

預設值: None
command
必要
liststr

要執行的命令,或相對於 的可執行檔/腳本 source_directory 路徑。 除非提供 runconfig,否則為必要專案。 它可以使用單一字串中的字串引數或清單中的 input/output/PipelineParameter 來指定。

name
必要
str

步驟的名稱。 如果未指定,則會使用 中的 command 第一個字。

compute_target
必要

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

runconfig
必要

選擇性組態物件,其封裝在實驗中提交定型回合所需的資訊。

runconfig_pipeline_params
必要
<xref:<xref:{str: PipelineParameter}>>

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

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

inputs
必要
list[InputPortBindingDataReferencePortDataReferencePipelineData 或 <xref:azureml.pipeline.core.pipeline_output_dataset.PipelineOutputDataset> 或 DatasetConsumptionConfig]

輸入埠系結的清單。

outputs
必要

輸出埠系結的清單。

params
必要

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

source_directory
必要
str

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

allow_reuse
必要

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

version
必要
str

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

備註

CommandStep 是一個基本、內建的步驟,可用來在指定的計算目標上執行命令。 它會使用命令作為參數,或從 runconfig 等其他參數中取得。 它也會採用其他選擇性參數,例如計算目標、輸入和輸出。 您應該使用 ScriptRunConfigRunConfiguration 來指定 CommandStep 的需求,例如自訂 Docker 映射。

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

對於系統已知的命令並非必要命令 source_directory ,但您仍然可以提供與步驟相關聯的任何相依檔案。

下列程式碼範例示範如何在機器學習訓練案例中使用 CommandStep。 若要列出 linux 中的檔案:


   from azureml.pipeline.steps import CommandStep

   trainStep = CommandStep(name='list step',
                           command='ls -lrt',
                           compute_target=compute_target)

若要執行 Python 腳本:


   from azureml.pipeline.steps import CommandStep

   trainStep = CommandStep(name='train step',
                           command='python train.py arg1 arg2',
                           source_directory=project_folder,
                           compute_target=compute_target)

若要透過 ScriptRunConfig 執行 Python 腳本:


   from azureml.core import ScriptRunConfig
   from azureml.pipeline.steps import CommandStep

   train_src = ScriptRunConfig(source_directory=script_folder,
                               command='python train.py arg1 arg2',
                               environment=my_env)
   trainStep = CommandStep(name='train step',
                           runconfig=train_src)

如需一般建立管線的詳細資訊,請參閱 https://aka.ms/pl-first-pipeline

方法

create_node

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

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

create_node

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

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

create_node(graph, default_datastore, context)

參數

名稱 Description
graph
必要

要加入節點的繪圖物件。

default_datastore
必要

預設資料存放區。

context
必要
<xref:_GraphContext>

圖形內容。

傳回

類型 Description

已建立的節點。