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.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
- 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
- AbstractAzureStorageDatastore nebo AzureDataLakeDatastore
Ú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
Název výstupu, pokud je použit žádný název. Může obsahovat pouze písmena, číslice a podtržítka.
- output_mode
- str
Určuje, jestli krok vytváření použije pro přístup k datům metodu "upload" nebo "mount".
- output_path_on_compute
- str
Pro output_mode
= "upload" představuje tento parametr cestu, do které modul zapisuje výstup.
- output_overwrite
- bool
Pro output_mode
= "upload" tento parametr určuje, jestli se mají přepsat existující data.
- 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.
- is_directory
- bool
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
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
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
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
Ú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
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
Určuje, jestli krok vytváření použije pro přístup k datům metodu "upload" nebo "mount".
- output_path_on_compute
- str
Pro output_mode
= "upload" představuje tento parametr cestu, do které modul zapisuje výstup.
- output_overwrite
- bool
Pro output_mode
= "upload" tento parametr určuje, jestli se mají přepsat existující data.
- 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.
- is_directory
- bool
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
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
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
arguments
PythonScriptStep, 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_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
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
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
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
- 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í.
- overwrite
- bool
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
Atributy
data_type
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
Váš názor
https://aka.ms/ContentUserFeedback.
Připravujeme: V průběhu roku 2024 budeme postupně vyřazovat problémy z GitHub coby mechanismus zpětné vazby pro obsah a nahrazovat ho novým systémem zpětné vazby. Další informace naleznete v tématu:Odeslat a zobrazit názory pro