PipelineData Classe
Rappresenta i dati intermedi in una pipeline di Azure Machine Learning.
I dati usati nella pipeline possono essere prodotti da un passaggio e usati 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 ai dati e il recapito, usare invece OutputFileDatasetConfig . Per un esempio, vedere pipeline con OutputFileDatasetConfig.
Inizializzare PipelineData.
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
Nome | Descrizione |
---|---|
name
Necessario
|
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 di un'esecuzione della pipeline, è possibile usare il nome del passaggio con un nome di output per accedere a un determinato output. I nomi devono essere univoci all'interno di un singolo passaggio in una pipeline. |
datastore
|
L'archivio dati in cui risiederà PipelineData. Se non specificato, viene usato l'archivio dati predefinito. Valore predefinito: None
|
output_name
|
Nome dell'output, se viene usato Nessun nome. Può contenere solo lettere, cifre e caratteri di sottolineatura. Valore predefinito: None
|
output_mode
|
Specifica se il passaggio di produzione userà il metodo "upload" o "mount" per accedere ai dati. Valore predefinito: mount
|
output_path_on_compute
|
Per Valore predefinito: None
|
output_overwrite
|
Per Valore predefinito: None
|
data_type
|
Opzionale. Il tipo di dati può essere usato per specificare il tipo previsto dell'output e per illustrare in dettaglio come usare i passaggi di utilizzo dei dati. Può essere qualsiasi stringa definita dall'utente. Valore predefinito: None
|
is_directory
|
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 Valore predefinito: None
|
pipeline_output_name
|
Se viene fornito questo output sarà disponibile tramite Valore predefinito: None
|
training_output
|
Definisce l'output per il risultato del training. Questa operazione è necessaria solo per training specifici che comportano diversi tipi di output, ad esempio metriche e modello. Ad esempio, AutoMLStep si ottengono metriche e modelli. È anche possibile definire iterazioni o metriche di training specifiche usate per ottenere un modello ottimale. Per HyperDriveStepè anche possibile definire i file di modello specifici da includere nell'output. Valore predefinito: None
|
name
Necessario
|
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 di un'esecuzione della pipeline, è possibile usare il nome del passaggio con un nome di output per accedere a un determinato output. I nomi devono essere univoci all'interno di un singolo passaggio in una pipeline. |
datastore
Necessario
|
L'archivio dati in cui risiederà PipelineData. Se non specificato, viene usato l'archivio dati predefinito. |
output_name
Necessario
|
Nome dell'output, se viene usato Nessun nome. che può contenere solo lettere, cifre e caratteri di sottolineatura. |
output_mode
Necessario
|
Specifica se il passaggio di produzione userà il metodo "upload" o "mount" per accedere ai dati. |
output_path_on_compute
Necessario
|
Per |
output_overwrite
Necessario
|
Per |
data_type
Necessario
|
Opzionale. Il tipo di dati può essere usato per specificare il tipo previsto dell'output e per illustrare in dettaglio come usare i passaggi di utilizzo dei dati. Può essere qualsiasi stringa definita dall'utente. |
is_directory
Necessario
|
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 |
pipeline_output_name
Necessario
|
Se viene fornito questo output sarà disponibile tramite |
training_output
Necessario
|
Definisce l'output per il risultato del training. Questa operazione è necessaria solo per training specifici che comportano diversi tipi di output, ad esempio metriche e modello. Ad esempio, AutoMLStep si ottengono metriche e modelli. È anche possibile definire iterazioni o metriche di training specifiche 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 di train.py scriverà il modello prodotto nel percorso fornito allo script tramite l'argomento –model.
Gli oggetti PipelineData vengono usati anche quando si creano 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, è anche possibile usare PipelineData 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 un nome di directory 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 alzato di livello 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 un'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 alzato di livello 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
Tipo | Descrizione |
---|---|
Output intermedio come set di dati. |
as_download
Utilizzare PipelineData come download.
as_download(input_name=None, path_on_compute=None, overwrite=None)
Parametri
Nome | Descrizione |
---|---|
input_name
|
Usare per specificare un nome per questo input. Valore predefinito: None
|
path_on_compute
|
Percorso nel calcolo in cui eseguire il download. Valore predefinito: None
|
overwrite
|
Utilizzare per indicare se sovrascrivere i dati esistenti. Valore predefinito: None
|
Restituisce
Tipo | Descrizione |
---|---|
InputPortBinding con pipelineData come origine. |
as_input
Creare un inputPortBinding e specificare un nome di input (ma usare la modalità predefinita).
as_input(input_name)
Parametri
Nome | Descrizione |
---|---|
input_name
Necessario
|
Usare per specificare un nome per questo input. |
Restituisce
Tipo | Descrizione |
---|---|
InputPortBinding con pipelineData come origine. |
as_mount
Utilizzare PipelineData come montaggio.
as_mount(input_name=None)
Parametri
Nome | Descrizione |
---|---|
input_name
|
Usare per specificare un nome per questo input. Valore predefinito: None
|
Restituisce
Tipo | Descrizione |
---|---|
InputPortBinding con pipelineData come origine. |
create_input_binding
Creare un'associazione di input.
create_input_binding(input_name=None, mode=None, path_on_compute=None, overwrite=None)
Parametri
Nome | Descrizione |
---|---|
input_name
|
Nome dell'input. Valore predefinito: None
|
mode
|
Modalità per accedere a PipelineData ("mount" o "download"). Valore predefinito: None
|
path_on_compute
|
Per la modalità "download", il percorso nel calcolo dei dati risiederà. Valore predefinito: None
|
overwrite
|
Per la modalità "download", se sovrascrivere i dati esistenti. Valore predefinito: None
|
Restituisce
Tipo | Descrizione |
---|---|
InputPortBinding con pipelineData come origine. |
get_env_variable_name
Restituisce il nome della variabile di ambiente per questo oggetto PipelineData.
get_env_variable_name()
Restituisce
Tipo | Descrizione |
---|---|
Nome della variabile di ambiente. |
Attributi
data_type
datastore
L'archivio dati in cui risiederà PipelineData.
Restituisce
Tipo | Descrizione |
---|---|
Oggetto Datastore. |