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
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 output specifico. 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 utilizzato 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
|
facoltativo. È possibile usare il tipo di dati 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. 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 specificato, 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 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. 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 output specifico. 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 utilizzato 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
|
facoltativo. È possibile usare il tipo di dati 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
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 specificato, questo output sarà disponibile tramite |
training_output
Necessario
|
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 averlo completato, 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
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 |
Create un inputPortBinding e specificare un nome di input (ma usare la modalità predefinita). |
as_mount |
Utilizzare PipelineData come montaggio. |
create_input_binding |
Create binding 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
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 questo oggetto PipelineData come origine. |
as_input
Create 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 questo oggetto 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 questo oggetto PipelineData come origine. |
create_input_binding
Create binding 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à di accesso a PipelineData ("mount" o "download"). Valore predefinito: None
|
path_on_compute
|
Per la modalità di 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 questo oggetto 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 |
---|---|
Il nome della variabile di ambiente. |
Attributi
data_type
datastore
L'archivio dati in cui risiederà PipelineData.
Restituisce
Tipo | Descrizione |
---|---|
Oggetto Datastore. |