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
|
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
|
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
|
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
|
Pro Default value: None
|
|
output_overwrite
|
Pro Default value: None
|
|
data_type
|
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 Default value: None
|
|
pipeline_output_name
|
Pokud tento výstup zadáte, 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é 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
|
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
|
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
|
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
|
Pro |
|
output_overwrite
Vyžadováno
|
Pro |
|
data_type
Vyžadováno
|
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 |
|
pipeline_output_name
Vyžadováno
|
Pokud tento výstup zadáte, 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é 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í
argumentsparametru 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_computeodpoví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_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
|
Slouží k zadání názvu pro tento vstup. Default value: None
|
|
path_on_compute
|
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
|
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
|
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
|
Název vstupu. Default value: None
|
|
mode
|
Režim pro přístup ke službě PipelineData ("mount" nebo "download"). Default value: None
|
|
path_on_compute
|
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 |
|---|---|
|
Název proměnné prostředí. |
Atributy
data_type
datastore
Úložiště dat se bude nacházet ve službě PipelineData.
Návraty
| Typ | Description |
|---|---|
|
Objekt Datastore. |