PipelineData Třída

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

Data používaná v kanálu mohou být vytvořena jedním krokem a využívána v jiném kroku poskytnutím objektu PipelineData jako výstupu jednoho kroku a vstupu jednoho nebo více následných kroků.

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

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í základní 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: Kanál pomocí OutputFileDatasetConfig.

Inicializace 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 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 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

Ú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.

výchozí hodnota: None
output_name
str

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

výchozí hodnota: None
output_mode
str

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

výchozí hodnota: mount
output_path_on_compute
str

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

výchozí hodnota: None
output_overwrite

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

výchozí hodnota: None
data_type
str

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.

výchozí hodnota: None
is_directory

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.

výchozí hodnota: None
pipeline_output_name

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é.

výchozí hodnota: None
training_output

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.

výchozí hodnota: 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 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
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
Vyžadováno
str

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

output_mode
Vyžadováno
str

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

output_path_on_compute
Vyžadováno
str

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

output_overwrite
Vyžadováno

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

data_type
Vyžadováno
str

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
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
Vyžadováno
str

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
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ů použijte PipelineData k popisu souborů nebo adresářů, které bude krok generovat. Tyto výstupy dat 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í kanálů k popisu závislostí kroků. Chcete-li 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 spustí 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í, jak se budou data vygenerovat a využívat při spuštění. Existují dvě podporované metody:

  • Připojit (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 tomuto datu ($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ýpočetní skript měl vytvořit soubor nebo adresář v této výstupní cestě. Pokud chcete zobrazit hodnotu proměnné prostředí použité při předání objektu Pipeline jako argumentu, použijte metodu get_env_variable_name .

  • Nahrání: 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

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

as_mount

Spotřebujte PipelineData jako připojení.

create_input_binding

Create 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

Typ Description

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

as_download

Ke stažení použijte PipelineData.

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.

výchozí hodnota: None
path_on_compute
str

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

výchozí hodnota: None
overwrite

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

výchozí hodnota: None

Návraty

Typ Description

InputPortBinding s tímto PipelineData jako zdrojem.

as_input

Create 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

Spotřebujte PipelineData jako připojení.

as_mount(input_name=None)

Parametry

Name Description
input_name
str

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

výchozí hodnota: None

Návraty

Typ Description

InputPortBinding s tímto PipelineData jako zdrojem.

create_input_binding

Create 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.

výchozí hodnota: None
mode
str

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

výchozí hodnota: None
path_on_compute
str

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

výchozí hodnota: None
overwrite

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

výchozí hodnota: 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, ve kterém se budou data kanálu nacházet.

Návraty

Typ Description

Objekt Úložiště dat.

name

Název objektu PipelineData.

Návraty

Typ Description
str

Název.