Sdílet prostřednictvím


PipelineData Třída

Představuje zprostředkující data v kanálu Služby Azure Machine Learning.

Data používaná v kanálu je možné vytvořit jedním krokem a využívat je v jiném kroku poskytnutím objektu PipelineData jako výstupu jednoho kroku a vstupem jednoho nebo více následných kroků.

Poznámka: Pokud používáte data kanálu, ujistěte se, že adresář, který jste použili, existoval.

Příklad Pythonu pro zajištění existence adresáře, předpokládejme, že máte výstupní port s názvem output_folder v jednom kroku kanálu, chcete napsat nějaká data do relativní cesty v této složce.


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

PipelineData používá podkladová dataReference , která už není doporučeným přístupem k datům a jejich doručováním. Místo toho použijte OutputFileDatasetConfig ukázku: Kanál využívající OutputFileDatasetConfig.

Inicializace PipelineData

Konstruktor

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)

Parametry

Name Description
name
Vyžadováno
str

Název objektu PipelineData, který může obsahovat pouze písmena, číslice a podtržítka.

Názvy PipelineData slouží k identifikaci výstupů kroku. Po dokončení spuštění kanálu můžete pro přístup k určitému výstupu použít název kroku s názvem výstupu. Názvy by měly být jedinečné v rámci jednoho kroku v kanálu.

datastore

Úložiště dat, na kterém se bude data data nacházet. Pokud není zadané, použije se výchozí úložiště dat.

Default value: None
output_name
str

Název výstupu, pokud se použije žádný název. Může obsahovat pouze písmena, číslice a podtržítka.

Default value: None
output_mode
str

Určuje, jestli pro přístup k datům použije produkční krok metodu "upload" nebo "mount".

Default value: mount
output_path_on_compute
str

Pro output_mode = "upload" představuje tento parametr cestu, do které modul zapíše výstup.

Default value: None
output_overwrite

Pro output_mode = "upload" určuje tento parametr, zda se mají přepsat existující data.

Default value: None
data_type
str

Volitelný. Datový typ lze použít k určení očekávaného typu výstupu a k podrobnostem o tom, jak by měly kroky využívání dat používat. Může to být libovolný řetězec definovaný uživatelem.

Default value: None
is_directory

Určuje, jestli jsou data adresář nebo jeden soubor. Používá se pouze k určení datového typu používaného back-endem Azure ML, pokud data_type není zadaný parametr. Výchozí hodnota je False.

Default value: None
pipeline_output_name

Pokud tento výstup zadáte, bude k dispozici pomocí příkazu PipelineRun.get_pipeline_output(). Názvy výstupů kanálu musí být v kanálu jedinečné.

Default value: None
training_output

Definuje výstup pro trénovací výsledek. To je potřeba jenom pro konkrétní trénování, které vedou k různým druhům výstupů, jako jsou metriky a model. Výsledkem jsou například AutoMLStep metriky a model. Můžete také definovat konkrétní iteraci trénování nebo metriku použitou k získání nejlepšího modelu. V případě HyperDriveStepmůžete také definovat konkrétní soubory modelu, které se mají zahrnout do výstupu.

Default value: None
name
Vyžadováno
str

Název objektu PipelineData, který může obsahovat pouze písmena, číslice a podtržítka.

Názvy PipelineData slouží k identifikaci výstupů kroku. Po dokončení spuštění kanálu můžete pro přístup k určitému výstupu použít název kroku s názvem výstupu. Názvy by měly být jedinečné v rámci jednoho kroku v kanálu.

datastore
Vyžadováno

Úložiště dat, na kterém se bude data data nacházet. Pokud není zadané, použije se výchozí úložiště dat.

output_name
Vyžadováno
str

Název výstupu, pokud se použije žádný název. které mohou obsahovat pouze písmena, číslice a podtržítka.

output_mode
Vyžadováno
str

Určuje, jestli pro přístup k datům použije produkční krok metodu "upload" nebo "mount".

output_path_on_compute
Vyžadováno
str

Pro output_mode = "upload" představuje tento parametr cestu, do které modul zapíše výstup.

output_overwrite
Vyžadováno

Pro output_mode = "upload" určuje tento parametr, zda se mají přepsat existující data.

data_type
Vyžadováno
str

Volitelný. Datový typ lze použít k určení očekávaného typu výstupu a k podrobnostem o tom, jak by měly kroky využívání dat používat. Může to být libovolný řetězec definovaný uživatelem.

is_directory
Vyžadováno

Určuje, jestli jsou data adresář nebo jeden soubor. Používá se pouze k určení datového typu používaného back-endem Azure ML, pokud data_type není zadaný parametr. Výchozí hodnota je False.

pipeline_output_name
Vyžadováno
str

Pokud tento výstup zadáte, bude k dispozici pomocí příkazu PipelineRun.get_pipeline_output(). Názvy výstupů kanálu musí být v kanálu jedinečné.

training_output
Vyžadováno

Definuje výstup pro trénovací výsledek. To je potřeba jenom pro konkrétní trénování, které vedou k různým druhům výstupů, jako jsou metriky a model. Výsledkem jsou například AutoMLStep metriky a model. Můžete také definovat konkrétní iteraci trénování nebo metriku použitou k získání nejlepšího modelu. V případě HyperDriveStepmůžete také definovat konkrétní soubory modelu, které se mají zahrnout do výstupu.

Poznámky

PipelineData představuje výstup dat, který krok vytvoří při spuštění. Při vytváření kroků použijte PipelineData k popisu souborů nebo adresářů, které se vygenerují v kroku. Tyto výstupy dat se přidají do zadaného úložiště dat a dají se načíst a zobrazit později.

Například následující krok kanálu vytvoří jeden výstup s názvem "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)

V tomto případě skript train.py napíše model, který vytvoří do umístění, které je k dispozici skriptu prostřednictvím argumentu –model.

Objekty PipelineData se také používají při vytváření kanálů k popisu závislostí kroku. Chcete-li určit, že krok vyžaduje výstup dalšího kroku jako vstup, použijte objekt PipelineData v konstruktoru obou kroků.

Například krok trénování kanálu závisí na process_step_output výstupu kroku procesu kanálu:


   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])

Tím se vytvoří kanál se dvěma kroky. Nejprve se spustí krok procesu a potom po jeho dokončení se spustí krok trénování. Azure ML poskytne výstup vytvořený krokem procesu do kroku trénování.

Další příklady použití PipelineData k vytvoření kanálu najdete na této stránce: https://aka.ms/pl-data-dep

U podporovaných typů výpočetních prostředků lze také použít PipelineData k určení způsobu vytváření a využívání dat spuštěním. Existují dvě podporované metody:

  • Připojení (výchozí): Vstupní nebo výstupní data se připojují k místnímu úložišti na výpočetním uzlu a proměnná prostředí je nastavená tak, aby odkazovala na cestu k tomuto datu ($AZUREML_DATAREFERENCE_name). Pro usnadnění práce můžete předat PipelineData objekt jako jeden z argumentů skriptu, například pomocí arguments parametru PythonScriptStepa objekt se přeloží na cestu k datům. Pro výstupy by měl výpočetní skript vytvořit soubor nebo adresář na této výstupní cestě. Pokud chcete zobrazit hodnotu proměnné prostředí použité při předání objektu Pipeline jako argument, použijte metodu get_env_variable_name .

  • Nahrání: Zadejte output_path_on_compute odpovídající název souboru nebo adresáře, který váš skript vygeneruje. (Proměnné prostředí se v tomto případě nepoužívají.)

Metody

as_dataset

Zvýšení úrovně zprostředkujícího výstupu do datové sady

Tato datová sada bude existovat po provedení kroku. Upozorňujeme, že výstup musí být povýšený na datovou sadu, aby se následné vstupy spotřebovaly jako datová sada. Pokud as_dataset není ve výstupu volána, ale volána pouze na vstupu, bude to noop a vstup se nebude využívat jako datová sada. Následující příklad kódu ukazuje správné použití 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

Využití PipelineData při stahování

as_input

Vytvořte InputPortBinding a zadejte název vstupu (ale použijte výchozí režim).

as_mount

Využití PipelineData jako připojení

create_input_binding

Vytvořte vstupní vazbu.

get_env_variable_name

Vrátí název proměnné prostředí pro tuto hodnotu PipelineData.

as_dataset

Zvýšení úrovně zprostředkujícího výstupu do datové sady

Tato datová sada bude existovat po provedení kroku. Upozorňujeme, že výstup musí být povýšený na datovou sadu, aby se následné vstupy spotřebovaly jako datová sada. Pokud as_dataset není ve výstupu volána, ale volána pouze na vstupu, bude to noop a vstup se nebude využívat jako datová sada. Následující příklad kódu ukazuje správné použití 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()

Návraty

Typ Description

Zprostředkující výstup jako datová sada

as_download

Využití PipelineData při stahování

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

Parametry

Name Description
input_name
str

Slouží k zadání názvu pro tento vstup.

Default value: None
path_on_compute
str

Cesta k výpočetním prostředkům, do které se má stáhnout.

Default value: None
overwrite

Slouží k označení, zda chcete přepsat existující data.

Default value: None

Návraty

Typ Description

InputPortBinding s tímto PipelineData jako zdrojem.

as_input

Vytvořte InputPortBinding a zadejte název vstupu (ale použijte výchozí režim).

as_input(input_name)

Parametry

Name Description
input_name
Vyžadováno
str

Slouží k zadání názvu pro tento vstup.

Návraty

Typ Description

InputPortBinding s tímto PipelineData jako zdrojem.

as_mount

Využití PipelineData jako připojení

as_mount(input_name=None)

Parametry

Name Description
input_name
str

Slouží k zadání názvu pro tento vstup.

Default value: None

Návraty

Typ Description

InputPortBinding s tímto PipelineData jako zdrojem.

create_input_binding

Vytvořte vstupní vazbu.

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

Parametry

Name Description
input_name
str

Název vstupu.

Default value: None
mode
str

Režim pro přístup ke službě PipelineData ("mount" nebo "download").

Default value: None
path_on_compute
str

V případě režimu stahování se bude cesta na výpočetních prostředcích nacházet.

Default value: None
overwrite

V případě režimu "download" určuje, zda chcete přepsat existující data.

Default value: None

Návraty

Typ Description

InputPortBinding s tímto PipelineData jako zdrojem.

get_env_variable_name

Vrátí název proměnné prostředí pro tuto hodnotu PipelineData.

get_env_variable_name()

Návraty

Typ Description
str

Název proměnné prostředí.

Atributy

data_type

Typ dat, která budou vytvořena.

Návraty

Typ Description
str

Název datového typu.

datastore

Úložiště dat se bude nacházet ve službě PipelineData.

Návraty

Typ Description

Objekt Datastore.

name

Název objektu PipelineData.

Návraty

Typ Description
str

Název.