InputPortBinding 類別
定義從來源到管線步驟輸入的系結。
InputPortBinding 可作為步驟的輸入。 來源可以是 PipelineData、 PortDataReference、 DataReference、 PipelineDataset或 OutputPortBinding。
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)
參數
| 名稱 | 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
取得取用步驟將用來存取數據的模式 (“download” 或 “mount” 或 “direct”、“hdfs”。
傳回
| 類型 | Description |
|---|---|
|
系結模式 (“download” 或 “mount” 或 “direct” 或 “hdfs” )。 |
bind_object
取得 InputPort 將系結至的物件。
傳回
| 類型 | Description |
|---|---|
|
系結物件。 |