PipelineData Classe
Rappresenta i dati intermedi in una pipeline di Azure Machine Learning.
I dati usati nella pipeline possono essere generati da un passaggio e utilizzati in un altro passaggio fornendo un oggetto PipelineData come output di un passaggio e un input di uno o più passaggi successivi.
Si noti che se si usano i dati della pipeline, assicurarsi che la directory usata esista.
Un esempio python per assicurarsi che la directory esista, si supponga di avere una porta di output denominata output_folder in un unico passaggio della pipeline, per scrivere alcuni dati nel percorso relativo in questa cartella.
import os
os.makedirs(args.output_folder, exist_ok=True)
f = open(args.output_folder + '/relative_path/file_name', 'w+')
PipelineData usa DataReference sottostante, che non è più l'approccio consigliato per l'accesso e il recapito dei dati, usare invece OutputFileDatasetConfig . È possibile trovare l'esempio seguente: Pipeline con OutputFileDatasetConfig.
Inizializzare PipelineData.
- Ereditarietà
-
builtins.objectPipelineData
Costruttore
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)
Parametri
- name
- str
Nome dell'oggetto PipelineData, che può contenere solo lettere, cifre e caratteri di sottolineatura.
I nomi pipelineData vengono usati per identificare gli output di un passaggio. Al termine dell'esecuzione di una pipeline, è possibile usare il nome del passaggio con un nome di output per accedere a un output specifico. I nomi devono essere univoci all'interno di un singolo passaggio in una pipeline.
- datastore
- AbstractAzureStorageDatastore oppure AzureDataLakeDatastore
L'archivio dati in cui risiederà PipelineData. Se non specificato, viene usato l'archivio dati predefinito.
- output_name
- str
Nome dell'output, se viene utilizzato Nessun nome. Può contenere solo lettere, cifre e caratteri di sottolineatura.
- output_mode
- str
Specifica se il passaggio di produzione userà il metodo "upload" o "mount" per accedere ai dati.
- output_path_on_compute
- str
Per output_mode
= "upload", questo parametro rappresenta il percorso in cui il modulo scrive l'output.
- output_overwrite
- bool
Per output_mode
= "upload", questo parametro specifica se sovrascrivere i dati esistenti.
- data_type
- str
Facoltativa. Il tipo di dati può essere usato per specificare il tipo previsto dell'output e per illustrare in dettaglio l'utilizzo dei passaggi da eseguire. Può essere qualsiasi stringa definita dall'utente.
- is_directory
- bool
Specifica se i dati sono una directory o un singolo file. Viene usato solo per determinare un tipo di dati usato dal back-end di Azure ML quando il data_type
parametro non viene fornito. Il valore predefinito è False.
- pipeline_output_name
Se specificato, questo output sarà disponibile tramite PipelineRun.get_pipeline_output()
. I nomi di output della pipeline devono essere univoci nella pipeline.
- training_output
- TrainingOutput
Definisce l'output per il risultato del training. Questa operazione è necessaria solo per training specifici che generano diversi tipi di output, ad esempio metriche e modello. Ad esempio, AutoMLStep restituisce metriche e modelli. È anche possibile definire specifiche iterazioni di training o metriche usate per ottenere un modello ottimale. Per HyperDriveStep, è anche possibile definire i file di modello specifici da includere nell'output.
- name
- str
Nome dell'oggetto PipelineData, che può contenere solo lettere, cifre e caratteri di sottolineatura.
I nomi pipelineData vengono usati per identificare gli output di un passaggio. Al termine dell'esecuzione di una pipeline, è possibile usare il nome del passaggio con un nome di output per accedere a un output specifico. I nomi devono essere univoci all'interno di un singolo passaggio in una pipeline.
- datastore
- AbstractAzureStorageDatastore oppure AzureDataLakeDatastore
L'archivio dati in cui risiederà PipelineData. Se non specificato, viene usato l'archivio dati predefinito.
- output_name
- str
Nome dell'output, se viene utilizzato Nessun nome. che può contenere solo lettere, cifre e caratteri di sottolineatura.
- output_mode
- str
Specifica se il passaggio di produzione userà il metodo "upload" o "mount" per accedere ai dati.
- output_path_on_compute
- str
Per output_mode
= "upload", questo parametro rappresenta il percorso in cui il modulo scrive l'output.
- output_overwrite
- bool
Per output_mode
= "upload", questo parametro specifica se sovrascrivere i dati esistenti.
- data_type
- str
Facoltativa. Il tipo di dati può essere usato per specificare il tipo previsto dell'output e per illustrare in dettaglio l'utilizzo dei passaggi da eseguire. Può essere qualsiasi stringa definita dall'utente.
- is_directory
- bool
Specifica se i dati sono una directory o un singolo file. Viene usato solo per determinare un tipo di dati usato dal back-end di Azure ML quando il data_type
parametro non viene fornito. Il valore predefinito è False.
- pipeline_output_name
- str
Se specificato, questo output sarà disponibile tramite PipelineRun.get_pipeline_output()
. I nomi di output della pipeline devono essere univoci nella pipeline.
- training_output
- TrainingOutput
Definisce l'output per il risultato del training. Questa operazione è necessaria solo per training specifici che generano diversi tipi di output, ad esempio metriche e modello. Ad esempio, AutoMLStep restituisce metriche e modelli. È anche possibile definire specifiche iterazioni di training o metriche usate per ottenere un modello ottimale. Per HyperDriveStep, è anche possibile definire i file di modello specifici da includere nell'output.
Commenti
PipelineData rappresenta l'output dei dati che verrà generato quando viene eseguito. Usare PipelineData durante la creazione di passaggi per descrivere i file o le directory che verranno generati dal passaggio. Questi output di dati verranno aggiunti all'archivio dati specificato e possono essere recuperati e visualizzati in un secondo momento.
Ad esempio, il passaggio della pipeline seguente genera un output denominato "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 questo caso, lo script train.py scriverà il modello che produce nel percorso fornito allo script tramite l'argomento –model.
Gli oggetti PipelineData vengono usati anche per la creazione di pipeline per descrivere le dipendenze dei passaggi. Per specificare che un passaggio richiede l'output di un altro passaggio come input, usare un oggetto PipelineData nel costruttore di entrambi i passaggi.
Ad esempio, il passaggio di training della pipeline dipende dall'output process_step_output del passaggio del processo della pipeline:
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])
Verrà creata una pipeline con due passaggi. Il passaggio del processo verrà eseguito per primo, quindi dopo il completamento, verrà eseguito il passaggio di training. Azure ML fornirà l'output prodotto dal passaggio del processo al passaggio di training.
Per altri esempi sull'uso di PipelineData per costruire una pipeline, vedere questa pagina: https://aka.ms/pl-data-dep
Per i tipi di calcolo supportati, PipelineData può essere usato anche per specificare la modalità di produzione e utilizzo dei dati da parte dell'esecuzione. Esistono due metodi supportati:
Montaggio (impostazione predefinita): i dati di input o output vengono montati nell'archiviazione locale nel nodo di calcolo e viene impostata una variabile di ambiente che punta al percorso di questi dati ($AZUREML_DATAREFERENCE_name). Per praticità, è possibile passare l'oggetto PipelineData in come uno degli argomenti allo script, ad esempio usando il
arguments
parametro di PythonScriptStepe l'oggetto verrà risolto nel percorso dei dati. Per gli output, lo script di calcolo deve creare un file o una directory in questo percorso di output. Per visualizzare il valore della variabile di ambiente usata quando si passa l'oggetto Pipeline come argomento, usare il get_env_variable_name metodo .Carica: specificare un
output_path_on_compute
valore corrispondente a un file o a un nome di directory che verrà generato dallo script. Le variabili di ambiente non vengono usate in questo caso.
Metodi
as_dataset |
Alzare di livello l'output intermedio in un set di dati. Questo set di dati sarà presente dopo l'esecuzione del passaggio. Si noti che l'output deve essere promosso come set di dati affinché l'input successivo venga utilizzato come set di dati. Se as_dataset non viene chiamato nell'output, ma viene chiamato solo sull'input, sarà un noop e l'input non verrà utilizzato come set di dati. L'esempio di codice seguente mostra un utilizzo corretto di as_dataset:
|
as_download |
Utilizzare PipelineData come download. |
as_input |
Creare un inputPortBinding e specificare un nome di input (ma usare la modalità predefinita). |
as_mount |
Utilizzare PipelineData come montaggio. |
create_input_binding |
Creare l'associazione di input. |
get_env_variable_name |
Restituisce il nome della variabile di ambiente per questo oggetto PipelineData. |
as_dataset
Alzare di livello l'output intermedio in un set di dati.
Questo set di dati sarà presente dopo l'esecuzione del passaggio. Si noti che l'output deve essere promosso come set di dati affinché l'input successivo venga utilizzato come set di dati. Se as_dataset non viene chiamato nell'output, ma viene chiamato solo sull'input, sarà un noop e l'input non verrà utilizzato come set di dati. L'esempio di codice seguente mostra un utilizzo corretto di 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()
Restituisce
Output intermedio come set di dati.
Tipo restituito
as_download
Utilizzare PipelineData come download.
as_download(input_name=None, path_on_compute=None, overwrite=None)
Parametri
Restituisce
InputPortBinding con questo oggetto PipelineData come origine.
Tipo restituito
as_input
Creare un inputPortBinding e specificare un nome di input (ma usare la modalità predefinita).
as_input(input_name)
Parametri
Restituisce
InputPortBinding con questo oggetto PipelineData come origine.
Tipo restituito
as_mount
Utilizzare PipelineData come montaggio.
as_mount(input_name=None)
Parametri
Restituisce
InputPortBinding con questo oggetto PipelineData come origine.
Tipo restituito
create_input_binding
Creare l'associazione di input.
create_input_binding(input_name=None, mode=None, path_on_compute=None, overwrite=None)
Parametri
- path_on_compute
- str
Per la modalità di download, il percorso nel calcolo dei dati risiederà.
- overwrite
- bool
Per la modalità "download", se sovrascrivere i dati esistenti.
Restituisce
InputPortBinding con questo oggetto PipelineData come origine.
Tipo restituito
get_env_variable_name
Restituisce il nome della variabile di ambiente per questo oggetto PipelineData.
get_env_variable_name()
Restituisce
Il nome della variabile di ambiente.
Tipo restituito
Attributi
data_type
datastore
L'archivio dati in cui risiederà PipelineData.
Restituisce
Oggetto Datastore.
Tipo restituito
name
Commenti e suggerimenti
https://aka.ms/ContentUserFeedback.
Presto disponibile: Nel corso del 2024 verranno gradualmente disattivati i problemi di GitHub come meccanismo di feedback per il contenuto e ciò verrà sostituito con un nuovo sistema di feedback. Per altre informazioni, vedereInvia e visualizza il feedback per