CommandStep 类

创建运行命令的 Azure ML Pipeline 步骤。

创建运行命令的 Azure ML Pipeline 步骤。

构造函数

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)

参数

名称 说明
command
liststr

要运行的命令或相对于 source_directory. 的可执行文件/脚本的路径。 除非它随 runconfig 一起提供,否则是必需的。 可以使用单个字符串中的字符串参数或列表中的输入/输出/PipelineParameter 指定它。

默认值: None
name
str

步骤的名称。 如果未指定,则使用第 command 一个单词。

默认值: None
compute_target

要使用的计算目标。 如果未指定,则使用目标 runconfig 。 此参数可以指定为计算目标对象或工作区上计算目标的字符串名称。 (可选)如果计算目标在创建管道时不可用,则可以指定元组(“计算目标名称”、“计算目标类型”)以避免提取计算目标对象(AmlCompute 类型为“AmlCompute”,RemoteCompute 类型为“VirtualMachine”。

默认值: None
runconfig

可选配置对象,该对象封装在试验中提交训练运行所需的信息。

默认值: None
runconfig_pipeline_params
<xref:<xref:{str: PipelineParameter}>>

在运行时使用键值对替代 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 机器学习数据集作为输入,则重复使用取决于数据集的定义是否已更改,而不是由基础数据是否已更改决定。

默认值: True
version
str

用于表示步骤功能更改的可选版本标记。

默认值: None
command
必需
liststr

要运行的命令或相对于 source_directory. 的可执行文件/脚本的路径。 除非它随 runconfig 一起提供,否则是必需的。 可以使用单个字符串中的字符串参数或列表中的输入/输出/PipelineParameter 指定它。

name
必需
str

步骤的名称。 如果未指定,则使用第 command 一个单词。

compute_target
必需

要使用的计算目标。 如果未指定,则使用目标 runconfig 。 此参数可以指定为计算目标对象或工作区上计算目标的字符串名称。 (可选)如果计算目标在创建管道时不可用,则可以指定元组(“计算目标名称”、“计算目标类型”)以避免提取计算目标对象(AmlCompute 类型为“AmlCompute”,RemoteCompute 类型为“VirtualMachine”。

runconfig
必需

可选配置对象,该对象封装在试验中提交训练运行所需的信息。

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

在运行时使用键值对替代 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 机器学习数据集作为输入,则重复使用取决于数据集的定义是否已更改,而不是由基础数据是否已更改决定。

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)

参数

名称 说明
graph
必需

要向其添加节点的图形对象。

default_datastore
必需

默认数据存储。

context
必需
<xref:_GraphContext>

图形上下文。

返回

类型 说明

创建的节点。