InputPortBinding 类
定义从源到管道步骤输入的绑定。
InputPortBinding 可用作步骤的输入。 源可以是一个PipelineData、PortDataReference、DataReference或PipelineDatasetOutputPortBinding。
InputPortBinding 可用于指定步骤输入的名称(如果它应不同于绑定对象的名称(即避免重复输入/输出名称,或者因为步骤脚本需要输入具有特定名称)。 它还可用于指定输入的bind_mode PythonScriptStep 。
初始化 InputPortBinding。
构造函数
InputPortBinding(name, bind_object=None, bind_mode='mount', path_on_compute=None, overwrite=None, is_resource=False, additional_transformations=None, **kwargs)
参数
名称 | 说明 |
---|---|
name
必需
|
要绑定的输入端口的名称,该端口只能包含字母、数字和下划线。 |
bind_object
|
要绑定到输入端口的对象。 默认值: None
|
bind_mode
|
指定使用步骤是使用“download”还是“mount”方法来访问数据。 默认值: mount
|
path_on_compute
|
对于“下载”模式,步骤将从中读取数据的本地路径。 默认值: None
|
overwrite
|
对于“下载”模式,指示是否覆盖现有数据。 默认值: None
|
is_resource
|
指示输入是否为资源。 资源将下载到脚本文件夹,并提供一种方法来更改运行时脚本的行为。 默认值: False
|
additional_transformations
|
<xref:azureml.dataprep.Dataflow>
要应用于输入的其他转换。 仅当上一步的输出是 Azure 机器学习数据集时,才会应用此作。 默认值: None
|
name
必需
|
要绑定的输入端口的名称,该端口只能包含字母、数字和下划线。 |
bind_object
必需
|
要绑定到输入端口的对象。 |
bind_mode
必需
|
指定使用步骤是使用“download”还是“mount”或“direct”方法来访问数据。 |
path_on_compute
必需
|
对于“下载”模式,步骤将从中读取数据的本地路径。 |
overwrite
必需
|
对于“下载”模式,指示是否覆盖现有数据。 |
is_resource
必需
|
指示输入是否为资源。 资源将下载到脚本文件夹,并提供一种方法来更改运行时脚本的行为。 |
additional_transformations
必需
|
<xref:azureml.dataprep.Dataflow>
要应用于输入的其他转换。 仅当上一步的输出是 Azure 机器学习数据集时,才会应用此作。 |
注解
InputPortBinding 用于在管道中指定数据依赖项,它表示执行步骤所需的输入。 InputPortBindings 具有一个名为 bind_object 的源,该源指定如何生成输入数据。
PipelineData 并 OutputPortBinding 可用作 InputPortBinding 的bind_object,以指定步骤的输入将由管道中的另一个步骤生成。
使用 InputPortBinding 和 PipelineData 生成管道的示例如下所示:
from azureml.pipeline.core import PipelineData, InputPortBinding, Pipeline
from azureml.pipeline.steps import PythonScriptStep
step_1_output = PipelineData("output", datastore=datastore, output_mode="mount")
step_1 = PythonScriptStep(
name='prepare data',
script_name="prepare_data.py",
compute_target=compute,
arguments=["--output", step_1_output],
outputs=[step_1_output]
)
step_2_input = InputPortBinding("input", bind_object=step_1_output)
step_2 = PythonScriptStep(
name='train',
script_name="train.py",
compute_target=compute,
arguments=["--input", step_2_input],
inputs=[step_2_input]
)
pipeline = Pipeline(workspace=workspace, steps=[step_1, step_2])
在此示例中,“训练”步骤需要“准备数据”步骤的输出作为输入。
PortDataReference, DataReference或 PipelineDataset 可用作 InputPortBinding 的bind_object,以指定步骤的输入已存在于指定位置。
使用 InputPortBinding 和 DataReference 生成管道的示例如下所示:
from azureml.data.data_reference import DataReference
from azureml.pipeline.core import InputPortBinding, Pipeline
from azureml.pipeline.steps import PythonScriptStep
data_reference = DataReference(datastore=datastore, path_on_datastore='sample_data.txt', mode="mount")
step_1_input = InputPortBinding("input", bind_object=data_reference)
step_1 = PythonScriptStep(
name='train',
script_name="train.py",
compute_target=compute,
arguments=["--input", step_1_input],
inputs=[step_1_input]
)
pipeline = Pipeline(workspace=workspace, steps=[step_1])
在此示例中,“训练”步骤需要 DataReference 指定的“sample_data.txt”文件作为输入。
方法
as_resource |
获取可用作资源的重复输入端口绑定。 |
get_bind_object_data_type |
获取绑定对象的数据类型。 |
get_bind_object_name |
获取绑定对象的名称。 |
as_resource
获取可用作资源的重复输入端口绑定。
as_resource()
返回
类型 | 说明 |
---|---|
具有 is_resource 属性的 InputPortBinding 设置 True。 |
get_bind_object_data_type
get_bind_object_name
属性
additional_transformations
获取要应用于输入数据的其他转换。
返回
类型 | 说明 |
---|---|
<xref:azureml.dataprep.Dataflow>
|
要应用于输入数据的其他转换。 |
bind_mode
获取使用步骤用于访问数据的模式(“download”或“mount”或“direct”、“hdfs”。
返回
类型 | 说明 |
---|---|
绑定模式(“download”或“mount”或“direct”或“hdfs”)。 |
bind_object
获取 InputPort 将绑定到的对象。
返回
类型 | 说明 |
---|---|
绑定对象。 |