InputPortBinding 类
定义从源到管道步骤输入的绑定。
InputPortBinding 可用作步骤的输入。 源可以是 PipelineData、PortDataReference、DataReference、PipelineDataset 或 OutputPortBinding。
如果步骤输入的名称应不同于绑定对象的名称(即避免输入/输出名称重复,或者步骤脚本需要输入具有特定名称),则 InputPortBinding 可用于指定步骤输入的名称。 它还可用于指定 PythonScriptStep 输入的 bind_mode。
初始化 InputPortBinding。
- 继承
-
builtins.objectInputPortBinding
构造函数
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
|
指定使用步骤是使用“下载”还是“装载”方法来访问数据。 默认值: 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 属性设置为 True 的 InputPortBinding。 |
get_bind_object_data_type
get_bind_object_name
属性
additional_transformations
获取要应用于输入数据的其他转换。
返回
类型 | 说明 |
---|---|
<xref:azureml.dataprep.Dataflow>
|
要应用于输入数据的其他转换。 |
bind_mode
bind_object
获取 InputPort 将绑定到的对象。
返回
类型 | 说明 |
---|---|
绑定对象。 |