PipelineData Třída

Představuje průběžná data v kanálu Služby Azure Machine Learning.

Data použitá v kanálu lze vytvořit v jednom kroku a využívat v jiném kroku poskytnutím objektu PipelineData jako výstupu jednoho kroku a vstupu jednoho nebo několika následných kroků.

Pokud používáte data kanálu, ujistěte se, že použitý adresář existoval.

Příklad Pythonu, který zajistí existenci adresáře, předpokládejme, že máte výstupní port s názvem output_folder v jednom kroku kanálu chcete zapsat 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žívají podkladová dataReference , což už není doporučený přístup pro přístup k datům a jejich doručování. Místo toho použijte OutputFileDatasetConfig . Ukázku najdete tady: Pipeline using OutputFileDatasetConfig.

Inicializujte PipelineData.

Dědičnost
builtins.object
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
str
Vyžadováno

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 ke konkrétní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
AbstractAzureStorageDatastore nebo AzureDataLakeDatastore
výchozí hodnota: None

Úložiště dat, ve kterém se budou data kanálu nacházet. Pokud není zadáno, použije se výchozí úložiště dat.

output_name
str
výchozí hodnota: None

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

output_mode
str
výchozí hodnota: mount

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

output_path_on_compute
str
výchozí hodnota: None

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

output_overwrite
bool
výchozí hodnota: None

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

data_type
str
výchozí hodnota: None

Nepovinný parametr. Datový typ lze použít k určení očekávaného typu výstupu a k podrobnostem o tom, jak náročné kroky mají data používat. Může to být libovolný řetězec definovaný uživatelem.

is_directory
bool
výchozí hodnota: None

Určuje, jestli se jedná o 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 Nepravda.

pipeline_output_name
výchozí hodnota: None

Pokud je tento výstup zadaný, 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
TrainingOutput
výchozí hodnota: None

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

name
str
Vyžadováno

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 ke konkrétní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
AbstractAzureStorageDatastore nebo AzureDataLakeDatastore
Vyžadováno

Úložiště dat, ve kterém se budou data kanálu nacházet. Pokud není zadáno, použije se výchozí úložiště dat.

output_name
str
Vyžadováno

Název výstupu, pokud je použit žádný název. který může obsahovat pouze písmena, číslice a podtržítka.

output_mode
str
Vyžadováno

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

output_path_on_compute
str
Vyžadováno

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

output_overwrite
bool
Vyžadováno

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

data_type
str
Vyžadováno

Nepovinný parametr. Datový typ lze použít k určení očekávaného typu výstupu a k podrobnostem o tom, jak náročné kroky mají data používat. Může to být libovolný řetězec definovaný uživatelem.

is_directory
bool
Vyžadováno

Určuje, jestli se jedná o 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 Nepravda.

pipeline_output_name
str
Vyžadováno

Pokud je tento výstup zadaný, 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
TrainingOutput
Vyžadováno

Definuje výstup pro trénovací výsledek. To je potřeba jenom pro konkrétní trénování, která mají za následek různé druhy výstupů, jako jsou metriky a model. Výsledkem jsou AutoMLStep například metriky a model. Můžete také definovat konkrétní iteraci trénování nebo metriku používanou k získání nejlepšího modelu. Pro 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ů k popisu souborů nebo adresářů, které se vygenerují v kroku, použijte PipelineData. Tyto datové výstupy se přidají do zadaného úložiště dat a později je můžete načíst a zobrazit.

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 zapíše model, který vytvoří, do umístění, které je skriptu poskytnuto prostřednictvím argumentu –model.

Objekty PipelineData se také používají při vytváření pipelines k popisu závislostí kroků. Pokud chcete určit, že krok vyžaduje výstup jiného kroku jako vstup, použijte objekt PipelineData v konstruktoru obou kroků.

Například krok trénování kanálu závisí na výstupu process_step_output 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 provede krok procesu a po jeho dokončení se provede krok trénovaného procesu. Azure ML poskytne výstup vygenerovaný krokem procesu do kroku trénováním.

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ů je také možné 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řipojí k místnímu úložišti na výpočetním uzlu a nastaví se proměnná prostředí, která odkazuje na cestu k datům ($AZUREML_DATAREFERENCE_name). Pro usnadnění práce můžete do skriptu předat objekt PipelineData jako jeden z argumentů, například pomocí parametru argumentsPythonScriptStep, a objekt se přeloží na cestu k datům. Pro výstupy by váš výpočetní skript měl vytvořit soubor nebo adresář v této výstupní cestě. Pokud chcete zobrazit hodnotu proměnné prostředí, která se používá při předávání objektu pipeline jako argumentu, použijte metodu get_env_variable_name .

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

Metody

as_dataset

Povýšení zprostředkujícího výstupu na datovou sadu

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ý vstup mohl využívat jako datová sada. Pokud as_dataset není volána ve výstupu, ale 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

Ke stažení použijte PipelineData.

as_input

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

as_mount

Spotřebujte 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

Povýšení zprostředkujícího výstupu na datovou sadu

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ý vstup mohl využívat jako datová sada. Pokud as_dataset není volána ve výstupu, ale 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

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

Návratový typ

as_download

Ke stažení použijte PipelineData.

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

Parametry

input_name
str
výchozí hodnota: None

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

path_on_compute
str
výchozí hodnota: None

Cesta na výpočetním prostředí, do které se má stáhnout.

overwrite
bool
výchozí hodnota: None

Slouží k označení, jestli se mají přepsat existující data.

Návraty

InputPortBinding s tímto PipelineData jako zdrojem.

Návratový typ

as_input

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

as_input(input_name)

Parametry

input_name
str
Vyžadováno

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

Návraty

InputPortBinding s tímto PipelineData jako zdrojem.

Návratový typ

as_mount

Spotřebujte PipelineData jako připojení.

as_mount(input_name=None)

Parametry

input_name
str
výchozí hodnota: None

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

Návraty

InputPortBinding s tímto PipelineData jako zdrojem.

Návratový typ

create_input_binding

Vytvořte vstupní vazbu.

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

Parametry

input_name
str
výchozí hodnota: None

Název vstupu.

mode
str
výchozí hodnota: None

Režim pro přístup k Datům kanálu (připojit nebo stáhnout).

path_on_compute
str
výchozí hodnota: None

V režimu stahování se bude nacházet cesta ve výpočetním prostředí, ve kterém se data nacházejí.

overwrite
bool
výchozí hodnota: None

V režimu stahování určuje, jestli se mají přepsat existující data.

Návraty

InputPortBinding s tímto PipelineData jako zdrojem.

Návratový typ

get_env_variable_name

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

get_env_variable_name()

Návraty

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

Návratový typ

str

Atributy

data_type

Typ dat, která budou vytvořena.

Návraty

Název datového typu.

Návratový typ

str

datastore

Úložiště dat, ve kterém se budou data kanálu nacházet.

Návraty

Objekt Úložiště dat.

Návratový typ

name

Název objektu PipelineData.

Návraty

Název.

Návratový typ

str