PipelineData Klas
Vertegenwoordigt tussenliggende gegevens in een Azure Machine Learning-pijplijn.
Gegevens die in de pijplijn worden gebruikt, kunnen in één stap worden geproduceerd en in een andere stap worden gebruikt door een PipelineData-object op te geven als uitvoer van één stap en een invoer van een of meer volgende stappen.
Als u de pijplijngegevens gebruikt, moet u ervoor zorgen dat de gebruikte map bestaat.
Een Python-voorbeeld om ervoor te zorgen dat de map bestaat. Stel dat u een uitvoerpoort hebt met de naam output_folder in één pijplijnstap, wilt u enkele gegevens schrijven naar het relatieve pad in deze map.
import os
os.makedirs(args.output_folder, exist_ok=True)
f = open(args.output_folder + '/relative_path/file_name', 'w+')
PipelineData gebruikt onderliggende DataReference . Dit is niet langer de aanbevolen methode voor gegevenstoegang en -levering. Gebruik in plaats daarvan OutputFileDatasetConfig . U vindt hier een voorbeeld: Pijplijn met OutputFileDatasetConfig.
Initialiseer PipelineData.
- Overname
-
builtins.objectPipelineData
Constructor
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)
Parameters
- name
- str
De naam van het PipelineData-object, dat alleen letters, cijfers en onderstrepingstekens mag bevatten.
PipelineData-namen worden gebruikt om de uitvoer van een stap te identificeren. Nadat een pijplijn is uitgevoerd, kunt u de naam van de stap met een uitvoernaam gebruiken om toegang te krijgen tot een bepaalde uitvoer. Namen moeten uniek zijn binnen één stap in een pijplijn.
- datastore
- AbstractAzureStorageDatastore of AzureDataLakeDatastore
Het gegevensarchief waarop de PipelineData zich bevindt. Als dit niet wordt opgegeven, wordt het standaardgegevensarchief gebruikt.
- output_name
- str
De naam van de uitvoer, als Geen naam wordt gebruikt. Mag alleen letters, cijfers en onderstrepingstekens bevatten.
- output_mode
- str
Hiermee geeft u op of de productiestap de methode 'uploaden' of 'koppelen' gebruikt om toegang te krijgen tot de gegevens.
- output_path_on_compute
- str
Voor output_mode
= "uploaden" vertegenwoordigt deze parameter het pad waar de module de uitvoer naar schrijft.
- output_overwrite
- bool
Voor output_mode
= 'uploaden' geeft deze parameter aan of bestaande gegevens moeten worden overschreven.
- data_type
- str
Optioneel. Gegevenstype kan worden gebruikt om het verwachte type uitvoer op te geven en om te bepalen hoe gebruiksstappen de gegevens moeten gebruiken. Dit kan elke door de gebruiker gedefinieerde tekenreeks zijn.
- is_directory
- bool
Hiermee geeft u op of de gegevens een map of één bestand zijn. Dit wordt alleen gebruikt om een gegevenstype te bepalen dat wordt gebruikt door azure ML-back-end wanneer de data_type
parameter niet is opgegeven. De standaardwaarde is False.
- pipeline_output_name
Indien opgegeven, is deze uitvoer beschikbaar met behulp van PipelineRun.get_pipeline_output()
. Namen van pijplijnuitvoer moeten uniek zijn in de pijplijn.
- training_output
- TrainingOutput
Hiermee definieert u de uitvoer voor het trainingsresultaat. Dit is alleen nodig voor specifieke trainingen die resulteren in verschillende soorten uitvoer, zoals metrische gegevens en modellen. Resulteert bijvoorbeeld AutoMLStep in metrische gegevens en modellen. U kunt ook specifieke trainingsiteratie of metrische gegevens definiëren die worden gebruikt om het beste model te verkrijgen. Voor HyperDriveStepkunt u ook de specifieke modelbestanden definiëren die moeten worden opgenomen in de uitvoer.
- name
- str
De naam van het PipelineData-object, dat alleen letters, cijfers en onderstrepingstekens mag bevatten.
PipelineData-namen worden gebruikt om de uitvoer van een stap te identificeren. Nadat een pijplijn is uitgevoerd, kunt u de naam van de stap met een uitvoernaam gebruiken om toegang te krijgen tot een bepaalde uitvoer. Namen moeten uniek zijn binnen één stap in een pijplijn.
- datastore
- AbstractAzureStorageDatastore of AzureDataLakeDatastore
Het gegevensarchief waarop de PipelineData zich bevindt. Als dit niet wordt opgegeven, wordt het standaardgegevensarchief gebruikt.
- output_name
- str
De naam van de uitvoer, als Geen naam wordt gebruikt. die alleen letters, cijfers en onderstrepingstekens mogen bevatten.
- output_mode
- str
Hiermee geeft u op of de productiestap de methode 'uploaden' of 'koppelen' gebruikt om toegang te krijgen tot de gegevens.
- output_path_on_compute
- str
Voor output_mode
= "uploaden" vertegenwoordigt deze parameter het pad waar de module de uitvoer naar schrijft.
- output_overwrite
- bool
Voor output_mode
= 'uploaden' geeft deze parameter aan of bestaande gegevens moeten worden overschreven.
- data_type
- str
Optioneel. Gegevenstype kan worden gebruikt om het verwachte type uitvoer op te geven en om te bepalen hoe gebruiksstappen de gegevens moeten gebruiken. Dit kan elke door de gebruiker gedefinieerde tekenreeks zijn.
- is_directory
- bool
Hiermee geeft u op of de gegevens een map of één bestand zijn. Dit wordt alleen gebruikt om een gegevenstype te bepalen dat wordt gebruikt door azure ML-back-end wanneer de data_type
parameter niet is opgegeven. De standaardwaarde is False.
- pipeline_output_name
- str
Indien opgegeven, is deze uitvoer beschikbaar met behulp van PipelineRun.get_pipeline_output()
. Namen van pijplijnuitvoer moeten uniek zijn in de pijplijn.
- training_output
- TrainingOutput
Hiermee definieert u de uitvoer voor het trainingsresultaat. Dit is alleen nodig voor specifieke trainingen die resulteren in verschillende soorten uitvoer, zoals metrische gegevens en modellen. Resulteert bijvoorbeeld AutoMLStep in metrische gegevens en modellen. U kunt ook specifieke trainingsiteratie of metrische gegevens definiëren die worden gebruikt om het beste model te verkrijgen. Voor HyperDriveStepkunt u ook de specifieke modelbestanden definiëren die moeten worden opgenomen in de uitvoer.
Opmerkingen
PipelineData vertegenwoordigt gegevensuitvoer die een stap produceert wanneer deze wordt uitgevoerd. Gebruik PipelineData bij het maken van stappen om de bestanden of mappen te beschrijven die door de stap worden gegenereerd. Deze gegevensuitvoer wordt toegevoegd aan het opgegeven gegevensarchief en kan later worden opgehaald en bekeken.
De volgende pijplijnstap produceert bijvoorbeeld één uitvoer met de naam '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)
In dit geval schrijft het train.py-script het model dat het produceert naar de locatie die aan het script wordt verstrekt via het argument –model.
PipelineData-objecten worden ook gebruikt bij het maken van pijplijnen om stapafhankelijkheden te beschrijven. Als u wilt opgeven dat voor een stap de uitvoer van een andere stap als invoer is vereist, gebruikt u een PipelineData-object in de constructor van beide stappen.
De stap voor pijplijn trainen is bijvoorbeeld afhankelijk van de process_step_output uitvoer van de pijplijnprocesstap:
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])
Hiermee maakt u een pijplijn met twee stappen. De processtap wordt eerst uitgevoerd en nadat deze is voltooid, wordt de stap train uitgevoerd. Azure ML levert de uitvoer die wordt geproduceerd door de processtap naar de trainstap.
Zie deze pagina voor meer voorbeelden van het gebruik van PipelineData om een pijplijn te maken: https://aka.ms/pl-data-dep
Voor ondersteunde rekentypen kan PipelineData ook worden gebruikt om op te geven hoe de gegevens worden geproduceerd en gebruikt door de uitvoering. Er zijn twee ondersteunde methoden:
Koppelen (standaard): de invoer- of uitvoergegevens worden gekoppeld aan de lokale opslag op het rekenknooppunt en er wordt een omgevingsvariabele ingesteld die verwijst naar het pad van deze gegevens ($AZUREML_DATAREFERENCE_name). Voor het gemak kunt u het PipelineData-object in doorgeven als een van de argumenten aan uw script, bijvoorbeeld met behulp van de
arguments
parameter van PythonScriptStep. Het object wordt omgezet in het pad naar de gegevens. Voor uitvoer moet uw rekenscript een bestand of map maken op dit uitvoerpad. Als u de waarde wilt zien van de omgevingsvariabele die wordt gebruikt wanneer u het pijplijnobject als argument doorgeeft, gebruikt u de get_env_variable_name methode .Uploaden: geef een
output_path_on_compute
op die overeenkomt met de naam van een bestand of map die door het script wordt gegenereerd. (Omgevingsvariabelen worden in dit geval niet gebruikt.)
Methoden
as_dataset |
De tussenliggende uitvoer promoveren naar een gegevensset. Deze gegevensset bestaat nadat de stap is uitgevoerd. Houd er rekening mee dat de uitvoer moet worden gepromoveerd tot een gegevensset om de volgende invoer als gegevensset te kunnen gebruiken. Als as_dataset niet wordt aangeroepen voor de uitvoer, maar alleen voor de invoer, is het een noop en wordt de invoer niet gebruikt als een gegevensset. In het onderstaande codevoorbeeld ziet u het juiste gebruik van as_dataset:
|
as_download |
Gebruik de PipelineData als download. |
as_input |
Maak een InputPortBinding en geef een invoernaam op (maar gebruik de standaardmodus). |
as_mount |
Gebruik de PipelineData als koppeling. |
create_input_binding |
Invoerbinding maken. |
get_env_variable_name |
Retourneer de naam van de omgevingsvariabele voor deze PipelineData. |
as_dataset
De tussenliggende uitvoer promoveren naar een gegevensset.
Deze gegevensset bestaat nadat de stap is uitgevoerd. Houd er rekening mee dat de uitvoer moet worden gepromoveerd tot een gegevensset om de volgende invoer als gegevensset te kunnen gebruiken. Als as_dataset niet wordt aangeroepen voor de uitvoer, maar alleen voor de invoer, is het een noop en wordt de invoer niet gebruikt als een gegevensset. In het onderstaande codevoorbeeld ziet u het juiste gebruik van 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()
Retouren
De tussenliggende uitvoer als een gegevensset.
Retourtype
as_download
Gebruik de PipelineData als download.
as_download(input_name=None, path_on_compute=None, overwrite=None)
Parameters
- overwrite
- bool
Gebruik deze optie om aan te geven of bestaande gegevens moeten worden overschreven.
Retouren
De InputPortBinding met deze PipelineData als bron.
Retourtype
as_input
Maak een InputPortBinding en geef een invoernaam op (maar gebruik de standaardmodus).
as_input(input_name)
Parameters
Retouren
De InputPortBinding met deze PipelineData als bron.
Retourtype
as_mount
Gebruik de PipelineData als koppeling.
as_mount(input_name=None)
Parameters
Retouren
De InputPortBinding met deze PipelineData als bron.
Retourtype
create_input_binding
Invoerbinding maken.
create_input_binding(input_name=None, mode=None, path_on_compute=None, overwrite=None)
Parameters
- path_on_compute
- str
Voor de 'download'-modus wordt het pad op de berekening van de gegevens opgeslagen.
- overwrite
- bool
Voor de 'downloadmodus', of bestaande gegevens moeten worden overschreven.
Retouren
De InputPortBinding met deze PipelineData als bron.
Retourtype
get_env_variable_name
Retourneer de naam van de omgevingsvariabele voor deze PipelineData.
get_env_variable_name()
Retouren
De naam van de omgevingsvariabele.
Retourtype
Kenmerken
data_type
datastore
Gegevensopslag waarin de PipelineData zich bevindt.
Retouren
Het datastore-object.
Retourtype
name
Feedback
https://aka.ms/ContentUserFeedback.
Binnenkort beschikbaar: In de loop van 2024 zullen we GitHub-problemen geleidelijk uitfaseren als het feedbackmechanisme voor inhoud en deze vervangen door een nieuw feedbacksysteem. Zie voor meer informatie:Feedback verzenden en weergeven voor