Dela via


PipelineData Klass

Representerar mellanliggande data i en Azure Machine Learning-pipeline.

Data som används i pipeline kan skapas i ett steg och användas i ett annat steg genom att tillhandahålla ett PipelineData-objekt som utdata från ett steg och indata för ett eller flera efterföljande steg.

Observera att om du använder pipelinedata kontrollerar du att katalogen som används finns.

Ett python-exempel för att säkerställa att katalogen finns, 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.

Arv
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)

Parametrar

Name Description
name
Obligatorisk
str

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

Det datalager som PipelineData kommer att finnas på. Om det är ospecificerat används standarddataarkivet.

standardvärde: None
output_name
str

Namnet på utdata, om Inget namn används. Kan bara innehålla bokstäver, siffror och understreck.

standardvärde: None
output_mode
str

Anger om skapandesteget ska använda metoden "upload" eller "mount" för att komma åt data.

standardvärde: mount
output_path_on_compute
str

För output_mode = "upload" representerar den här parametern sökvägen som modulen skriver utdata till.

standardvärde: None
output_overwrite

För output_mode = "upload" anger den här parametern om befintliga data ska skrivas över.

standardvärde: None
data_type
str

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 enda fil. Detta används endast för att fastställa en datatyp som används av Azure ML-serverdelen när parametern data_type inte tillhandahålls. Standardvärdet är Falskt.

standardvärde: None
pipeline_output_name

Om detta anges kommer dessa utdata att vara tillgängliga med hjälp PipelineRun.get_pipeline_output()av . Pipelinens utdatanamn måste vara unika i pipelinen.

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 resultat 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
str

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

Det datalager som PipelineData kommer att finnas på. Om det är ospecificerat används standarddataarkivet.

output_name
Obligatorisk
str

Namnet på utdata, om Inget namn används. som bara kan innehålla bokstäver, siffror och understreck.

output_mode
Obligatorisk
str

Anger om skapandesteget ska använda metoden "upload" eller "mount" för att komma åt data.

output_path_on_compute
Obligatorisk
str

För output_mode = "upload" representerar den här parametern sökvägen som modulen skriver utdata till.

output_overwrite
Obligatorisk

För output_mode = "upload" anger den här parametern om befintliga data ska skrivas över.

data_type
Obligatorisk
str

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 enda fil. Detta används endast för att fastställa en datatyp som används av Azure ML-serverdelen när parametern data_type inte tillhandahålls. Standardvärdet är Falskt.

pipeline_output_name
Obligatorisk
str

Om detta anges kommer dessa utdata att vara tillgängliga med hjälp PipelineRun.get_pipeline_output()av . Pipelinens utdatanamn måste vara unika i pipelinen.

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 resultat 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 av 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-träningssteget 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])

Då skapas 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.

På den här sidan finns fler exempel på hur du använder PipelineData för att skapa en pipeline: 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 in PipelineData-objektet som ett av argumenten till ditt skript, till exempel med hjälp av PythonScriptStepparametern arguments , och objektet matchar 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 get_env_variable_name du 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.)

Metoder

as_dataset

Höj upp mellanliggande utdata till en datauppsättning.

Den här datauppsättningen finns när steget har körts. Observera att utdata måste höjas upp till 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 kommer inte att användas som en datauppsättning. Kodexemplet nedan visar 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_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 pipelinedata.

as_dataset

Höj upp mellanliggande utdata till en datauppsättning.

Den här datauppsättningen finns när steget har körts. Observera att utdata måste höjas upp till 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 kommer inte att användas som en datauppsättning. Kodexemplet nedan visar 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
str

Använd för att ange ett namn för den här indatan.

standardvärde: None
path_on_compute
str

Sökvägen till beräkningen som ska laddas ned till.

standardvärde: None
overwrite

Används 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
str

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
str

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
str

Namnet på indata.

standardvärde: None
mode
str

Läget för att komma åt PipelineData ("mount" eller "download").

standardvärde: None
path_on_compute
str

I läget "ladda ned" finns sökvägen för 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 pipelinedata.

get_env_variable_name()

Returer

Typ Description
str

Miljövariabelns namn.

Attribut

data_type

Typ av data som ska skapas.

Returer

Typ Description
str

Namnet på datatypen.

datastore

Datalager som PipelineData kommer att finnas på.

Returer

Typ Description

Datalagerobjektet.

name

Namnet på PipelineData-objektet.

Returer

Typ Description
str

Namn.