InputPortBinding 類別
定義從來源到管線步驟輸入的系結。
InputPortBinding 可作為步驟的輸入。 來源可以是 PipelineData 、 PortDataReference 、 DataReference 、 PipelineDataset 或 OutputPortBinding 。
InputPortBinding 對於指定步驟輸入的名稱很有用,如果它應該與系結物件的名稱不同, (亦即,為了避免重複的輸入/輸出名稱,或因為步驟腳本需要輸入具有特定名稱) 。 它也可以用來指定輸入的bind_mode PythonScriptStep 。
初始化 InputPortBinding。
- 繼承
-
builtins.objectInputPortBinding
建構函式
InputPortBinding(name, bind_object=None, bind_mode='mount', path_on_compute=None, overwrite=None, is_resource=False, additional_transformations=None, **kwargs)
參數
名稱 | Description |
---|---|
name
必要
|
要系結的輸入埠名稱,只能包含字母、數位和底線。 |
bind_object
|
要系結至輸入埠的物件。 預設值: None
|
bind_mode
|
指定取用步驟會使用「下載」或「掛接」方法來存取資料。 預設值: mount
|
path_on_compute
|
針對「下載」模式,步驟會從中讀取資料的本機路徑。 預設值: None
|
overwrite
|
針對 「下載」模式,指出是否要覆寫現有的資料。 預設值: None
|
is_resource
|
指出輸入是否為資源。 資源會下載到腳本資料夾,並提供在執行時間變更腳本行為的方法。 預設值: False
|
additional_transformations
|
<xref:azureml.dataprep.Dataflow>
要套用至輸入的其他轉換。 只有在上一個步驟的輸出是 Azure Machine Learning 資料集時,才會套用此功能。 預設值: None
|
name
必要
|
要系結的輸入埠名稱,只能包含字母、數位和底線。 |
bind_object
必要
|
要系結至輸入埠的物件。 |
bind_mode
必要
|
指定取用步驟會使用「下載」或「掛接」或「直接」方法來存取資料。 |
path_on_compute
必要
|
針對「下載」模式,步驟會從中讀取資料的本機路徑。 |
overwrite
必要
|
針對 「下載」模式,指出是否要覆寫現有的資料。 |
is_resource
必要
|
指出輸入是否為資源。 資源會下載到腳本資料夾,並提供在執行時間變更腳本行為的方法。 |
additional_transformations
必要
|
<xref:azureml.dataprep.Dataflow>
要套用至輸入的其他轉換。 只有在上一個步驟的輸出是 Azure Machine Learning 資料集時,才會套用此功能。 |
備註
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])
在此範例中,「train」 步驟需要 DataReference 所指定的 「sample_data.txt」 檔案作為輸入。
方法
as_resource |
取得可做為資源的重複輸入埠系結。 |
get_bind_object_data_type |
取得系結物件的資料類型。 |
get_bind_object_name |
取得系結物件的名稱。 |
as_resource
取得可做為資源的重複輸入埠系結。
as_resource()
傳回
類型 | Description |
---|---|
具有 is_resource 屬性的 InputPortBinding 會設定 True。 |
get_bind_object_data_type
get_bind_object_name
屬性
additional_transformations
取得要套用至輸入資料的其他轉換。
傳回
類型 | Description |
---|---|
<xref:azureml.dataprep.Dataflow>
|
要套用至輸入資料的其他轉換。 |
bind_mode
bind_object
取得 InputPort 將系結至的物件。
傳回
類型 | Description |
---|---|
bind 物件。 |