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, controleert u of 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. U wilt enkele gegevens naar het relatieve pad in deze map schrijven.
import os
os.makedirs(args.output_folder, exist_ok=True)
f = open(args.output_folder + '/relative_path/file_name', 'w+')
PipelineData gebruikt DataReference-onderliggende gegevens die niet langer de aanbevolen benadering voor gegevenstoegang en -levering is. Gebruik in plaats daarvan OutputFileDatasetConfig . Hier vindt u een voorbeeld: Pipeline using OutputFileDatasetConfig.
Initialiseer PipelineData.
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 | Description |
|---|---|
|
name
Vereist
|
De naam van het PipelineData-object, dat alleen letters, cijfers en onderstrepingstekens kan bevatten. PipelineData-namen worden gebruikt om de uitvoer van een stap te identificeren. Nadat een pijplijnuitvoering is voltooid, 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
|
Het gegevensarchief waarin de PipelineData zich bevindt. Als dit niet is opgegeven, wordt het standaardgegevensarchief gebruikt. Default value: None
|
|
output_name
|
De naam van de uitvoer, als er geen naam wordt gebruikt. Mag alleen letters, cijfers en onderstrepingstekens bevatten. Default value: None
|
|
output_mode
|
Hiermee geeft u op of de productiestap de methode uploaden of koppelen gebruikt om toegang te krijgen tot de gegevens. Default value: mount
|
|
output_path_on_compute
|
Voor Default value: None
|
|
output_overwrite
|
Voor Default value: None
|
|
data_type
|
Facultatief. Gegevenstype kan worden gebruikt om het verwachte type van de uitvoer op te geven en om aan te geven hoe de gebruiksstappen de gegevens moeten gebruiken. Dit kan elke door de gebruiker gedefinieerde tekenreeks zijn. Default value: None
|
|
is_directory
|
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 de Azure ML-back-end wanneer de Default value: None
|
|
pipeline_output_name
|
Als u deze uitvoer opgeeft, is deze beschikbaar met behulp van Default value: None
|
|
training_output
|
Definieert uitvoer voor 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. U HyperDriveStepkunt ook de specifieke modelbestanden definiëren die in de uitvoer moeten worden opgenomen. Default value: None
|
|
name
Vereist
|
De naam van het PipelineData-object, dat alleen letters, cijfers en onderstrepingstekens kan bevatten. PipelineData-namen worden gebruikt om de uitvoer van een stap te identificeren. Nadat een pijplijnuitvoering is voltooid, 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
Vereist
|
Het gegevensarchief waarin de PipelineData zich bevindt. Als dit niet is opgegeven, wordt het standaardgegevensarchief gebruikt. |
|
output_name
Vereist
|
De naam van de uitvoer, als er geen naam wordt gebruikt. die alleen letters, cijfers en onderstrepingstekens mogen bevatten. |
|
output_mode
Vereist
|
Hiermee geeft u op of de productiestap de methode uploaden of koppelen gebruikt om toegang te krijgen tot de gegevens. |
|
output_path_on_compute
Vereist
|
Voor |
|
output_overwrite
Vereist
|
Voor |
|
data_type
Vereist
|
Facultatief. Gegevenstype kan worden gebruikt om het verwachte type van de uitvoer op te geven en om aan te geven hoe de gebruiksstappen de gegevens moeten gebruiken. Dit kan elke door de gebruiker gedefinieerde tekenreeks zijn. |
|
is_directory
Vereist
|
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 de Azure ML-back-end wanneer de |
|
pipeline_output_name
Vereist
|
Als u deze uitvoer opgeeft, is deze beschikbaar met behulp van |
|
training_output
Vereist
|
Definieert uitvoer voor 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. U HyperDriveStepkunt ook de specifieke modelbestanden definiëren die in de uitvoer moeten worden opgenomen. |
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 samenstellen 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 pijplijntrein 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 daarna wordt de treinstap uitgevoerd nadat deze is voltooid. Azure ML levert de uitvoer die wordt geproduceerd door de processtap naar de treinstap.
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 verbruikt 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 doorgeven als een van de argumenten aan uw script, bijvoorbeeld met behulp van de
argumentsparameter van PythonScriptStep, en het object wordt omgezet in het pad naar de gegevens. Voor uitvoer moet uw rekenscript een bestand of map maken op dit uitvoerpad. Gebruik de get_env_variable_name methode om de waarde te zien van de omgevingsvariabele die wordt gebruikt wanneer u het pijplijnobject als argument doorgeeft.Upload: Geef een
output_path_on_computecorresponderende naam op voor een bestand of map die door uw 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, zodat de volgende invoer als gegevensset kan worden gebruikt. Als as_dataset niet wordt aangeroepen in de uitvoer, maar alleen wordt aangeroepen voor de invoer, is het een noop en wordt de invoer niet gebruikt als een gegevensset. In het onderstaande codevoorbeeld ziet u een correct 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 |
Retourneert 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, zodat de volgende invoer als gegevensset kan worden gebruikt. Als as_dataset niet wordt aangeroepen in de uitvoer, maar alleen wordt aangeroepen voor de invoer, is het een noop en wordt de invoer niet gebruikt als een gegevensset. In het onderstaande codevoorbeeld ziet u een correct 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
| Type | Description |
|---|---|
|
De tussenliggende uitvoer als een gegevensset. |
as_download
Gebruik de PipelineData als download.
as_download(input_name=None, path_on_compute=None, overwrite=None)
Parameters
| Name | Description |
|---|---|
|
input_name
|
Hiermee geeft u een naam op voor deze invoer. Default value: None
|
|
path_on_compute
|
Het pad op de rekenkracht om naar te downloaden. Default value: None
|
|
overwrite
|
Gebruik dit om aan te geven of bestaande gegevens moeten worden overschreven. Default value: None
|
Retouren
| Type | Description |
|---|---|
|
De InputPortBinding met deze PipelineData als bron. |
as_input
Maak een InputPortBinding en geef een invoernaam op (maar gebruik de standaardmodus).
as_input(input_name)
Parameters
| Name | Description |
|---|---|
|
input_name
Vereist
|
Hiermee geeft u een naam op voor deze invoer. |
Retouren
| Type | Description |
|---|---|
|
De InputPortBinding met deze PipelineData als bron. |
as_mount
Gebruik de PipelineData als koppeling.
as_mount(input_name=None)
Parameters
| Name | Description |
|---|---|
|
input_name
|
Hiermee geeft u een naam op voor deze invoer. Default value: None
|
Retouren
| Type | Description |
|---|---|
|
De InputPortBinding met deze PipelineData als bron. |
create_input_binding
Invoerbinding maken.
create_input_binding(input_name=None, mode=None, path_on_compute=None, overwrite=None)
Parameters
| Name | Description |
|---|---|
|
input_name
|
De naam van de invoer. Default value: None
|
|
mode
|
De modus voor toegang tot PipelineData ('koppelen' of 'downloaden'). Default value: None
|
|
path_on_compute
|
Voor de downloadmodus bevindt het pad op de berekening van de gegevens zich. Default value: None
|
|
overwrite
|
Voor de downloadmodus moet u bestaande gegevens overschrijven. Default value: None
|
Retouren
| Type | Description |
|---|---|
|
De InputPortBinding met deze PipelineData als bron. |
get_env_variable_name
Retourneert de naam van de omgevingsvariabele voor deze PipelineData.
get_env_variable_name()
Retouren
| Type | Description |
|---|---|
|
De naam van de omgevingsvariabele. |
Kenmerken
data_type
datastore
Het gegevensarchief waarin de PipelineData zich bevindt.
Retouren
| Type | Description |
|---|---|
|
Het datastore-object. |