PipelineData Klass
Representerar mellanliggande data i en Azure Machine Learning-pipeline.
Data som används i pipeline kan produceras i ett steg och förbrukas i ett annat steg genom att tillhandahålla ett PipelineData-objekt som utdata från ett steg och indata från ett eller flera efterföljande steg.
Observera att om du använder pipelinedata kontrollerar du att katalogen som användes fanns.
Ett python-exempel för att säkerställa att katalogen fanns, anta att du har en utdataport med namnet output_folder i ett pipelinesteg, du vill skriva data till en relativ sökväg i den här mappen.
import os
os.makedirs(args.output_folder, exist_ok=True)
f = open(args.output_folder + '/relative_path/file_name', 'w+')
PipelineData använder underliggande DataReference som inte längre är den rekommenderade metoden för dataåtkomst och leverans. Använd OutputFileDatasetConfig i stället. Du hittar exempel här: Pipeline med OutputFileDatasetConfig.
Initiera 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)
Parametrar
Name | Description |
---|---|
name
Obligatorisk
|
Namnet på PipelineData-objektet, som bara kan innehålla bokstäver, siffror och understreck. PipelineData-namn används för att identifiera utdata från ett steg. När en pipelinekörning har slutförts kan du använda stegnamnet med ett utdatanamn för att komma åt en viss utdata. Namn ska vara unika i ett enda steg i en pipeline. |
datastore
|
Datalager som PipelineData kommer att finnas på. Om det är ospecificerat används standarddataarkivet. Standardvärde: None
|
output_name
|
Namnet på utdata, om Inget namn används. Kan bara innehålla bokstäver, siffror och understreck. Standardvärde: None
|
output_mode
|
Anger om skapandesteget ska använda metoden "upload" eller "mount" för att komma åt data. Standardvärde: mount
|
output_path_on_compute
|
För Standardvärde: None
|
output_overwrite
|
För Standardvärde: None
|
data_type
|
Valfritt. Datatypen kan användas för att ange den förväntade typen av utdata och för att beskriva hur användningssteg ska använda data. Det kan vara vilken användardefinierad sträng som helst. Standardvärde: None
|
is_directory
|
Anger om data är en katalog eller en enskild fil. Detta används endast för att fastställa en datatyp som används av Azure ML-serverdelen när parametern Standardvärde: None
|
pipeline_output_name
|
Om detta anges kommer dessa utdata att vara tillgängliga med hjälp Standardvärde: None
|
training_output
|
Definierar utdata för träningsresultat. Detta behövs bara för specifika utbildningar som resulterar i olika typer av utdata, till exempel mått och modell. Till exempel AutoMLStep resulterar i mått och modell. Du kan också definiera specifik tränings iteration eller mått som används för att få bästa modell. För HyperDriveStepkan du också definiera de specifika modellfiler som ska ingå i utdata. Standardvärde: None
|
name
Obligatorisk
|
Namnet på PipelineData-objektet, som bara kan innehålla bokstäver, siffror och understreck. PipelineData-namn används för att identifiera utdata från ett steg. När en pipelinekörning har slutförts kan du använda stegnamnet med ett utdatanamn för att komma åt en viss utdata. Namn ska vara unika i ett enda steg i en pipeline. |
datastore
Obligatorisk
|
Datalager som PipelineData kommer att finnas på. Om det är ospecificerat används standarddataarkivet. |
output_name
Obligatorisk
|
Namnet på utdata, om Inget namn används. som bara kan innehålla bokstäver, siffror och understreck. |
output_mode
Obligatorisk
|
Anger om skapandesteget ska använda metoden "upload" eller "mount" för att komma åt data. |
output_path_on_compute
Obligatorisk
|
För |
output_overwrite
Obligatorisk
|
För |
data_type
Obligatorisk
|
Valfritt. Datatypen kan användas för att ange den förväntade typen av utdata och för att beskriva hur användningssteg ska använda data. Det kan vara vilken användardefinierad sträng som helst. |
is_directory
Obligatorisk
|
Anger om data är en katalog eller en enskild fil. Detta används endast för att fastställa en datatyp som används av Azure ML-serverdelen när parametern |
pipeline_output_name
Obligatorisk
|
Om detta anges kommer dessa utdata att vara tillgängliga med hjälp |
training_output
Obligatorisk
|
Definierar utdata för träningsresultat. Detta behövs bara för specifika utbildningar som resulterar i olika typer av utdata, till exempel mått och modell. Till exempel AutoMLStep resulterar i mått och modell. Du kan också definiera specifik tränings iteration eller mått som används för att få bästa modell. För HyperDriveStepkan du också definiera de specifika modellfiler som ska ingå i utdata. |
Kommentarer
PipelineData representerar datautdata som ett steg skapar när det körs. Använd PipelineData när du skapar steg för att beskriva de filer eller kataloger som genereras i steget. Dessa datautdata läggs till i det angivna dataarkivet och kan hämtas och visas senare.
Följande pipelinesteg genererar till exempel en utdata med namnet "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)
I det här fallet skriver train.py-skriptet den modell som skapas till den plats som tillhandahålls till skriptet via argumentet –model.
PipelineData-objekt används också när du skapar pipelines för att beskriva stegberoenden. Om du vill ange att ett steg kräver utdata från ett annat steg som indata använder du ett PipelineData-objekt i konstruktorn för båda stegen.
Pipeline-tågsteget beror till exempel på process_step_output utdata från pipelineprocesssteget:
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])
Detta skapar en pipeline med två steg. Processsteget körs först och sedan körs träningssteget när det har slutförts. Azure ML tillhandahåller utdata från processsteget till träningssteget.
Mer information om hur du använder PipelineData för att konstruera en pipeline finns på den här sidan: https://aka.ms/pl-data-dep
För beräkningstyper som stöds kan PipelineData också användas för att ange hur data ska produceras och användas av körningen. Det finns två metoder som stöds:
Montering (standard): Indata eller utdata monteras på lokal lagring på beräkningsnoden och en miljövariabel anges som pekar på sökvägen till dessa data ($AZUREML_DATAREFERENCE_name). För enkelhetens skull kan du skicka PipelineData-objektet som ett av argumenten till skriptet, till exempel med parametern
arguments
PythonScriptStep, och objektet matchas mot sökvägen till data. För utdata bör beräkningsskriptet skapa en fil eller katalog på den här utdatasökvägen. Om du vill se värdet för miljövariabeln som används när du skickar pipelineobjektet som ett argument använder du get_env_variable_name metoden.Ladda upp: Ange ett
output_path_on_compute
motsvarande fil- eller katalognamn som skriptet ska generera. (Miljövariabler används inte i det här fallet.)
as_dataset |
Flytta upp mellanliggande utdata till en datauppsättning. Den här datamängden finns när steget har körts. Observera att utdata måste höjas upp för att vara en datauppsättning för att efterföljande indata ska kunna användas som datauppsättning. Om as_dataset inte anropas för utdata utan bara anropas på indata, blir det en noop och indata används inte som en datauppsättning. Kodexemplet nedan visar en korrekt användning av as_dataset:
|
as_download |
Använd PipelineData som nedladdning. |
as_input |
Skapa en InputPortBinding och ange ett indatanamn (men använd standardläge). |
as_mount |
Använd PipelineData som montering. |
create_input_binding |
Skapa indatabindning. |
get_env_variable_name |
Returnera namnet på miljövariabeln för denna PipelineData. |
as_dataset
Flytta upp mellanliggande utdata till en datauppsättning.
Den här datamängden finns när steget har körts. Observera att utdata måste höjas upp för att vara en datauppsättning för att efterföljande indata ska kunna användas som datauppsättning. Om as_dataset inte anropas för utdata utan bara anropas på indata, blir det en noop och indata används inte som en datauppsättning. Kodexemplet nedan visar en korrekt användning av 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()
Returer
Typ | Description |
---|---|
Mellanliggande utdata som en datauppsättning. |
as_download
Använd PipelineData som nedladdning.
as_download(input_name=None, path_on_compute=None, overwrite=None)
Parametrar
Name | Description |
---|---|
input_name
|
Använd för att ange ett namn för den här indatan. Standardvärde: None
|
path_on_compute
|
Sökvägen till den beräkning som du vill ladda ned till. Standardvärde: None
|
overwrite
|
Använd för att ange om befintliga data ska skrivas över. Standardvärde: None
|
Returer
Typ | Description |
---|---|
InputPortBinding med denna PipelineData som källa. |
as_input
Skapa en InputPortBinding och ange ett indatanamn (men använd standardläge).
as_input(input_name)
Parametrar
Name | Description |
---|---|
input_name
Obligatorisk
|
Använd för att ange ett namn för den här indatan. |
Returer
Typ | Description |
---|---|
InputPortBinding med denna PipelineData som källa. |
as_mount
Använd PipelineData som montering.
as_mount(input_name=None)
Parametrar
Name | Description |
---|---|
input_name
|
Använd för att ange ett namn för den här indatan. Standardvärde: None
|
Returer
Typ | Description |
---|---|
InputPortBinding med denna PipelineData som källa. |
create_input_binding
Skapa indatabindning.
create_input_binding(input_name=None, mode=None, path_on_compute=None, overwrite=None)
Parametrar
Name | Description |
---|---|
input_name
|
The name of the input. Standardvärde: None
|
mode
|
Läget för att komma åt PipelineData ("mount" eller "download"). Standardvärde: None
|
path_on_compute
|
I läget "ladda ned" finns sökvägen till beräkningen av data. Standardvärde: None
|
overwrite
|
Om du vill skriva över befintliga data för "nedladdningsläge". Standardvärde: None
|
Returer
Typ | Description |
---|---|
InputPortBinding med denna PipelineData som källa. |
get_env_variable_name
Returnera namnet på miljövariabeln för denna PipelineData.
get_env_variable_name()
Returer
Typ | Description |
---|---|
Miljövariabelns namn. |
data_type
datastore
Datalager som PipelineData kommer att finnas på.
Returer
Typ | Description |
---|---|
Datalagerobjektet. |