PipelineData 類別

代表 Azure Machine Learning 管線中的中繼資料。

管線中使用的資料可由一個步驟產生,另一個步驟是提供 PipelineData 物件做為一個步驟的輸出,以及一或多個後續步驟的輸入。

請注意 ,如果您使用管線資料,請確定所使用的目錄已存在。

若要確保目錄存在,Python 範例假設您在一個管線步驟中有名為 output_folder 的輸出埠,您想要將此資料夾中的一些資料寫入相對路徑。


   import os
   os.makedirs(args.output_folder, exist_ok=True)
   f = open(args.output_folder + '/relative_path/file_name', 'w+')

PipelineData 會使用不再建議的資料存取和傳遞方法 DataReference 基礎,請改用 OutputFileDatasetConfig ,您可以在這裡找到範例: 使用 OutputFileDatasetConfig 的管線

初始化 PipelineData。

繼承
builtins.object
PipelineData

建構函式

PipelineData(name, datastore=None, output_name=None, output_mode='mount', output_path_on_compute=None, output_overwrite=None, data_type=None, is_directory=None, pipeline_output_name=None, training_output=None)

參數

name
str
必要

PipelineData 物件的名稱,只能包含字母、數位和底線。

PipelineData 名稱可用來識別步驟的輸出。 管線執行完成後,您可以使用步驟名稱搭配輸出名稱來存取特定輸出。 名稱在管線的單一步驟內應該是唯一的。

datastore
AbstractAzureStorageDatastoreAzureDataLakeDatastore
預設值: None

PipelineData 所在的資料存放區。 如果未指定,則會使用預設資料存放區。

output_name
str
預設值: None

如果使用 None 名稱,則為輸出的名稱。 只能包含字母、數位和底線。

output_mode
str
預設值: mount

指定產生步驟將使用「上傳」或「掛接」方法來存取資料。

output_path_on_compute
str
預設值: None

針對 output_mode = 「upload」,此參數代表模組寫入輸出的路徑。

output_overwrite
bool
預設值: None

針對 output_mode = 「upload」,此參數會指定是否要覆寫現有的資料。

data_type
str
預設值: None

選擇性。 資料類型可用來指定輸出的預期類型,並詳細說明取用步驟應該如何使用資料。 它可以是任何使用者定義的字串。

is_directory
bool
預設值: None

指定資料是目錄還是單一檔案。 這只會用來判斷未提供 參數時 data_type ,Azure ML 後端所使用的資料類型。 預設值是 False。

pipeline_output_name
預設值: None

如果提供此輸出,則會使用 來使用 PipelineRun.get_pipeline_output() 。 管線輸出名稱在管線中必須是唯一的。

training_output
TrainingOutput
預設值: None

定義定型結果的輸出。 這只適用于產生不同類型輸出的特定定型,例如計量和模型。 例如, AutoMLStep 產生計量和模型。 您也可以定義用來取得最佳模型的特定定型反復專案或計量。 針對 HyperDriveStep ,您也可以定義要包含在輸出中的特定模型檔案。

name
str
必要

PipelineData 物件的名稱,只能包含字母、數位和底線。

PipelineData 名稱可用來識別步驟的輸出。 管線執行完成後,您可以使用步驟名稱搭配輸出名稱來存取特定輸出。 名稱在管線的單一步驟內應該是唯一的。

datastore
AbstractAzureStorageDatastoreAzureDataLakeDatastore
必要

PipelineData 所在的資料存放區。 如果未指定,則會使用預設資料存放區。

output_name
str
必要

如果使用 None 名稱,則為輸出的名稱。 只能包含字母、數位和底線。

output_mode
str
必要

指定產生步驟將使用「上傳」或「掛接」方法來存取資料。

output_path_on_compute
str
必要

針對 output_mode = 「upload」,此參數代表模組寫入輸出的路徑。

output_overwrite
bool
必要

針對 output_mode = 「upload」,此參數會指定是否要覆寫現有的資料。

data_type
str
必要

選擇性。 資料類型可用來指定輸出的預期類型,並詳細說明取用步驟應該如何使用資料。 它可以是任何使用者定義的字串。

is_directory
bool
必要

指定資料是目錄還是單一檔案。 這只會用來判斷未提供 參數時 data_type ,Azure ML 後端所使用的資料類型。 預設值是 False。

pipeline_output_name
str
必要

如果提供此輸出,則會使用 來使用 PipelineRun.get_pipeline_output() 。 管線輸出名稱在管線中必須是唯一的。

training_output
TrainingOutput
必要

定義定型結果的輸出。 這只適用于產生不同類型輸出的特定定型,例如計量和模型。 例如, AutoMLStep 產生計量和模型。 您也可以定義用來取得最佳模型的特定定型反復專案或計量。 針對 HyperDriveStep ,您也可以定義要包含在輸出中的特定模型檔案。

備註

PipelineData 代表執行步驟時會產生的資料輸出。 建立步驟時,請使用 PipelineData 來描述步驟所產生的檔案或目錄。 這些資料輸出會新增至指定的資料存放區,稍後可以擷取和檢視。

例如,下列管線步驟會產生一個名為 「model」 的輸出:


   from azureml.pipeline.core import PipelineData
   from azureml.pipeline.steps import PythonScriptStep

   datastore = ws.get_default_datastore()
   step_output = PipelineData("model", datastore=datastore)
   step = PythonScriptStep(script_name="train.py",
                           arguments=["--model", step_output],
                           outputs=[step_output],
                           compute_target=aml_compute,
                           source_directory=source_directory)

在此情況下,train.py 腳本會將它產生的模型寫入至透過 –model 引數提供給腳本的位置。

當建構 Pipelines 來描述步驟相依性時,也會使用 PipelineData 物件。 若要指定步驟需要另一個步驟的輸出做為輸入,請在這兩個步驟的建構函式中使用 PipelineData 物件。

例如,管線定型步驟取決於管線進程步驟的process_step_output輸出:


   from azureml.pipeline.core import Pipeline, PipelineData
   from azureml.pipeline.steps import PythonScriptStep

   datastore = ws.get_default_datastore()
   process_step_output = PipelineData("processed_data", datastore=datastore)
   process_step = PythonScriptStep(script_name="process.py",
                                   arguments=["--data_for_train", process_step_output],
                                   outputs=[process_step_output],
                                   compute_target=aml_compute,
                                   source_directory=process_directory)
   train_step = PythonScriptStep(script_name="train.py",
                                 arguments=["--data_for_train", process_step_output],
                                 inputs=[process_step_output],
                                 compute_target=aml_compute,
                                 source_directory=train_directory)

   pipeline = Pipeline(workspace=ws, steps=[process_step, train_step])

這會建立具有兩個步驟的管線。 程式步驟會先執行,然後在完成之後執行定型步驟。 Azure ML 會將程式步驟所產生的輸出提供給定型步驟。

如需使用 PipelineData 建構管線的進一步範例,請參閱此頁面: https://aka.ms/pl-data-dep

針對支援的計算類型,PipelineData 也可以用來指定執行將如何產生及取用資料。 支援的方法有兩種:

  • 掛接 (預設) :輸入或輸出資料會掛接至計算節點上的本機儲存體,並設定環境變數以指向此資料的路徑, ($AZUREML_DATAREFERENCE_name) 。 為了方便起見,您可以將 PipelineData 物件當作其中一個引數傳遞至腳本,例如使用 argumentsPythonScriptStep 參數,而 物件會解析為數據的路徑。 針對輸出,您的計算腳本應該在此輸出路徑建立檔案或目錄。 若要查看當您以引數的形式傳入 Pipeline 物件時所使用的環境變數值,請使用 get_env_variable_name 方法。

  • 上傳:指定 output_path_on_compute 對應至腳本將產生的檔案或目錄名稱。 在此案例中不會使用 (環境變數。)

方法

as_dataset

將中繼輸出升階至資料集。

執行步驟之後,將會存在此資料集。 請注意,輸出必須升階為資料集,才能將後續輸入當做資料集使用。 如果as_dataset未在輸出上呼叫,但只會在輸入上呼叫,則會是 noop,而且不會以資料集的形式取用輸入。 下列程式碼範例顯示正確的as_dataset用法:


   # as_dataset is called here and is passed to both the output and input of the next step.
   pipeline_data = PipelineData('output').as_dataset()

   step1 = PythonScriptStep(..., outputs=[pipeline_data])
   step2 = PythonScriptStep(..., inputs=[pipeline_data])
as_download

使用 PipelineData 作為下載。

as_input

建立 InputPortBinding 並指定輸入名稱 (,但使用預設模式) 。

as_mount

使用 PipelineData 作為掛接。

create_input_binding

建立輸入系結。

get_env_variable_name

傳回這個 PipelineData 的環境變數名稱。

as_dataset

將中繼輸出升階至資料集。

執行步驟之後,將會存在此資料集。 請注意,輸出必須升階為資料集,才能將後續輸入當做資料集使用。 如果as_dataset未在輸出上呼叫,但只會在輸入上呼叫,則會是 noop,而且不會以資料集的形式取用輸入。 下列程式碼範例顯示正確的as_dataset用法:


   # as_dataset is called here and is passed to both the output and input of the next step.
   pipeline_data = PipelineData('output').as_dataset()

   step1 = PythonScriptStep(..., outputs=[pipeline_data])
   step2 = PythonScriptStep(..., inputs=[pipeline_data])
as_dataset()

傳回

中繼輸出做為資料集。

傳回類型

as_download

使用 PipelineData 作為下載。

as_download(input_name=None, path_on_compute=None, overwrite=None)

參數

input_name
str
預設值: None

使用 來指定此輸入的名稱。

path_on_compute
str
預設值: None

要下載的計算路徑。

overwrite
bool
預設值: None

使用 來指出是否要覆寫現有的資料。

傳回

InputPortBinding,此 PipelineData 做為來源。

傳回類型

as_input

建立 InputPortBinding 並指定輸入名稱 (,但使用預設模式) 。

as_input(input_name)

參數

input_name
str
必要

使用 來指定此輸入的名稱。

傳回

InputPortBinding,此 PipelineData 做為來源。

傳回類型

as_mount

使用 PipelineData 作為掛接。

as_mount(input_name=None)

參數

input_name
str
預設值: None

使用 來指定此輸入的名稱。

傳回

InputPortBinding,此 PipelineData 做為來源。

傳回類型

create_input_binding

建立輸入系結。

create_input_binding(input_name=None, mode=None, path_on_compute=None, overwrite=None)

參數

input_name
str
預設值: None

輸入的名稱。

mode
str
預設值: None

存取 PipelineData (「mount」 或 「download」 ) 的模式。

path_on_compute
str
預設值: None

針對「下載」模式,資料將位於計算上的路徑。

overwrite
bool
預設值: None

針對「下載」模式,是否要覆寫現有的資料。

傳回

InputPortBinding,此 PipelineData 做為來源。

傳回類型

get_env_variable_name

傳回這個 PipelineData 的環境變數名稱。

get_env_variable_name()

傳回

環境變數名稱。

傳回類型

str

屬性

data_type

將產生的資料類型。

傳回

資料類型名稱。

傳回類型

str

datastore

PipelineData 所在的資料存放區。

傳回

Datastore 物件。

傳回類型

name

PipelineData 物件的名稱。

傳回

Name:

傳回類型

str