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.objectPipelineData
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
|
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. Default value: None
|
output_name
|
Název výstupu, pokud je použit žádný název. Může obsahovat pouze písmena, číslice a podtržítka. Default value: None
|
output_mode
|
Určuje, jestli krok vytváření použije pro přístup k datům metodu "upload" nebo "mount". Default value: mount
|
output_path_on_compute
|
Pro Default value: None
|
output_overwrite
|
Pro Default value: None
|
data_type
|
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. Default value: 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 Default value: None
|
pipeline_output_name
|
Pokud je tento výstup zadaný, bude k dispozici pomocí příkazu 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á 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. Default value: None
|
name
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
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
|
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
|
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
|
Pro |
output_overwrite
Vyžadováno
|
Pro |
data_type
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
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 |
pipeline_output_name
Vyžadováno
|
Pokud je tento výstup zadaný, bude k dispozici pomocí příkazu |
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
arguments
PythonScriptStep, 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_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
|
Slouží k zadání názvu pro tento vstup. Default value: None
|
path_on_compute
|
Cesta na výpočetním prostředí, do které se má stáhnout. Default value: None
|
overwrite
|
Slouží k označení, jestli se mají přepsat existující data. Default value: 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
|
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
|
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
Create vstupní vazbu.
create_input_binding(input_name=None, mode=None, path_on_compute=None, overwrite=None)
Parametry
Name | Description |
---|---|
input_name
|
Název vstupu. Default value: None
|
mode
|
Režim pro přístup k Datům kanálu (připojit nebo stáhnout). Default value: None
|
path_on_compute
|
V režimu stahování se bude nacházet cesta ve výpočetním prostředí, ve kterém se data nacházejí. Default value: None
|
overwrite
|
V režimu stahování určuje, jestli se mají 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 |
---|---|
Název proměnné prostředí. |
Atributy
data_type
datastore
Úložiště dat, ve kterém se budou data kanálu nacházet.
Návraty
Typ | Description |
---|---|
Objekt Úložiště dat. |