PythonScriptStep Classe
Crea un passaggio della pipeline di Azure ML che esegue lo script Python.
Per un esempio di uso di PythonScriptStep, vedere il notebook https://aka.ms/pl-get-started.
Creare un passaggio della pipeline di Azure ML che esegue lo script Python.
Costruttore
PythonScriptStep(script_name, name=None, arguments=None, compute_target=None, runconfig=None, runconfig_pipeline_params=None, inputs=None, outputs=None, params=None, source_directory=None, allow_reuse=True, version=None, hash_paths=None)
Parametri
Nome | Descrizione |
---|---|
script_name
Necessario
|
[Obbligatorio] Nome di uno script Python relativo a |
name
|
Nome del passaggio. Se non specificato, Valore predefinito: None
|
arguments
|
Argomenti della riga di comando per il file di script Python. Gli argomenti verranno passati al calcolo tramite il Valore predefinito: None
|
compute_target
|
[Obbligatorio] Destinazione di calcolo da usare. Se non specificato, verrà usata la destinazione dal runconfig. Questo parametro può essere specificato come oggetto di destinazione di calcolo o come nome stringa di una destinazione di calcolo nell'area di lavoro. Facoltativamente, se la destinazione di calcolo non è disponibile in fase di creazione della pipeline, è possibile specificare una tupla di ('nome della destinazione di calcolo', 'tipo di destinazione di calcolo') per evitare di recuperare l'oggetto di destinazione di calcolo (il tipo AmlCompute è 'AmlCompute' e il tipo RemoteCompute è 'VirtualMachine'). Valore predefinito: None
|
runconfig
|
RunConfiguration facoltativo da usare. È possibile usare RunConfiguration per specificare requisiti aggiuntivi per l'esecuzione, ad esempio dipendenze conda e un'immagine Docker. Se non specificato, verrà creato un runconfig predefinito. Valore predefinito: None
|
runconfig_pipeline_params
|
Esegue l'override delle proprietà runconfig in fase di esecuzione usando coppie chiave-valore ognuna con il nome della proprietà runconfig e PipelineParameter per tale proprietà. Valori supportati: 'NodeCount', 'MpiProcessCountPerNode', 'TensorflowWorkerCount', 'TensorflowParameterServerCount' Valore predefinito: None
|
inputs
|
list[Union[InputPortBinding, DataReference, PortDataReference, PipelineData, PipelineOutputFileDataset, PipelineOutputTabularDataset, DatasetConsumptionConfig]]
Elenco di associazioni di porte di input. Valore predefinito: None
|
outputs
|
list[Union[PipelineData, OutputDatasetConfig, PipelineOutputFileDataset, PipelineOutputTabularDataset, OutputPortBinding]]
Elenco di associazioni di porte di output. Valore predefinito: None
|
params
|
Dizionario di coppie nome-valore registrate come variabili di ambiente con "AML_PARAMETER_". Valore predefinito: None
|
source_directory
|
Cartella che contiene script Python, conda env e altre risorse usate nel passaggio. Valore predefinito: None
|
allow_reuse
|
Indica se il passaggio deve riutilizzare i risultati precedenti quando si esegue di nuovo con le stesse impostazioni. Il riutilizzo è abilitato per impostazione predefinita. Se il contenuto del passaggio (script/dipendenze) e gli input e i parametri rimangono invariati, l'output dell'esecuzione precedente di questo passaggio viene riutilizzato. Quando si riutilizza il passaggio, invece di inviare il processo a calcolo, i risultati dell'esecuzione precedente vengono immediatamente resi disponibili a tutti i passaggi successivi. Se si usano set di dati di Azure Machine Learning come input, il riutilizzo viene determinato dal fatto che la definizione del set di dati sia stata modificata, non indipendentemente dal fatto che i dati sottostanti siano stati modificati. Valore predefinito: True
|
version
|
Tag di versione facoltativo per indicare una modifica delle funzionalità per il passaggio. Valore predefinito: None
|
hash_paths
|
DEPRECATO: non più necessario. Elenco di percorsi di hash durante il controllo delle modifiche apportate al contenuto del passaggio. Se non sono state rilevate modifiche, la pipeline riutilicherà il contenuto del passaggio di un'esecuzione precedente. Per impostazione predefinita, il contenuto di viene sottoposto a hash, ad eccezione dei Valore predefinito: None
|
script_name
Necessario
|
[Obbligatorio] Nome di uno script Python relativo a |
name
Necessario
|
Nome del passaggio. Se non specificato, |
arguments
Necessario
|
[str]
Argomenti della riga di comando per il file di script Python. Gli argomenti verranno passati al calcolo tramite il |
compute_target
Necessario
|
[Obbligatorio] Destinazione di calcolo da usare. Se non specificato, verrà usata la destinazione dal runconfig. Questo parametro può essere specificato come oggetto di destinazione di calcolo o come nome stringa di una destinazione di calcolo nell'area di lavoro. Facoltativamente, se la destinazione di calcolo non è disponibile in fase di creazione della pipeline, è possibile specificare una tupla di ('nome della destinazione di calcolo', 'tipo di destinazione di calcolo') per evitare di recuperare l'oggetto di destinazione di calcolo (il tipo AmlCompute è 'AmlCompute' e il tipo RemoteCompute è 'VirtualMachine'). |
runconfig
Necessario
|
RunConfiguration facoltativo da usare. RunConfiguration può essere usato per specificare requisiti aggiuntivi per l'esecuzione, ad esempio dipendenze conda e un'immagine Docker. Se non specificato, verrà creato un runconfig predefinito. |
runconfig_pipeline_params
Necessario
|
Esegue l'override delle proprietà runconfig in fase di esecuzione usando coppie chiave-valore ognuna con il nome della proprietà runconfig e PipelineParameter per tale proprietà. Valori supportati: 'NodeCount', 'MpiProcessCountPerNode', 'TensorflowWorkerCount', 'TensorflowParameterServerCount' |
inputs
Necessario
|
list[Union[InputPortBinding, DataReference, PortDataReference, PipelineData, PipelineOutputFileDataset, PipelineOutputTabularDataset, DatasetConsumptionConfig]]
Elenco di associazioni di porte di input. |
outputs
Necessario
|
list[Union[PipelineData, OutputDatasetConfig, PipelineOutputFileDataset, PipelineOutputTabularDataset, OutputPortBinding]]
Elenco di associazioni di porte di output. |
params
Necessario
|
<xref:<xref:{str: str}>>
Dizionario di coppie nome-valore. Registrato come variabili di ambiente con ">>AML_PARAMETER_<<". |
source_directory
Necessario
|
Cartella che contiene script Python, conda env e altre risorse usate nel passaggio. |
allow_reuse
Necessario
|
Indica se il passaggio deve riutilizzare i risultati precedenti quando si esegue di nuovo con le stesse impostazioni. Il riutilizzo è abilitato per impostazione predefinita. Se il contenuto del passaggio (script/dipendenze) e gli input e i parametri rimangono invariati, l'output dell'esecuzione precedente di questo passaggio viene riutilizzato. Quando si riutilizza il passaggio, invece di inviare il processo a calcolo, i risultati dell'esecuzione precedente vengono immediatamente resi disponibili a tutti i passaggi successivi. Se si usano set di dati di Azure Machine Learning come input, il riutilizzo viene determinato dal fatto che la definizione del set di dati sia stata modificata, non indipendentemente dal fatto che i dati sottostanti siano stati modificati. |
version
Necessario
|
Tag di versione facoltativo per indicare una modifica delle funzionalità per il passaggio. |
hash_paths
Necessario
|
DEPRECATO: non più necessario. Elenco di percorsi di hash durante il controllo delle modifiche apportate al contenuto del passaggio. Se non sono state rilevate modifiche, la pipeline riutilicherà il contenuto del passaggio di un'esecuzione precedente. Per impostazione predefinita, il contenuto di viene sottoposto a hash, ad eccezione dei |
Commenti
PythonScriptStep è un passaggio predefinito di base per eseguire uno script Python in una destinazione di calcolo. Accetta un nome di script e altri parametri facoltativi, ad esempio argomenti per lo script, la destinazione di calcolo, gli input e gli output. Se non viene specificata alcuna destinazione di calcolo, viene usata la destinazione di calcolo predefinita per l'area di lavoro. È anche possibile usare per RunConfiguration specificare i requisiti per PythonScriptStep, ad esempio le dipendenze conda e l'immagine docker.
La procedura consigliata per l'uso di PythonScriptStep consiste nell'usare una cartella separata per gli script e i file dipendenti associati al passaggio e specificare tale cartella con il source_directory
parametro .
Seguendo questa procedura consigliata sono disponibili due vantaggi. In primo luogo, consente di ridurre le dimensioni dello snapshot creato per il passaggio perché viene creato uno snapshot solo degli elementi necessari per il passaggio. In secondo luogo, l'output del passaggio di un'esecuzione precedente può essere riutilizzato se non sono presenti modifiche a source_directory
che attiverebbero un nuovo caricamento dello snapshot.
L'esempio di codice seguente illustra l'uso di PythonScriptStep in uno scenario di training di Machine Learning. Per altri dettagli su questo esempio, vedere https://aka.ms/pl-first-pipeline.
from azureml.pipeline.steps import PythonScriptStep
trainStep = PythonScriptStep(
script_name="train.py",
arguments=["--input", blob_input_data, "--output", output_data1],
inputs=[blob_input_data],
outputs=[output_data1],
compute_target=compute_target,
source_directory=project_folder
)
PythonScriptSteps supporta diversi tipi di input e output. Sono inclusi DatasetConsumptionConfig per gli input e OutputDatasetConfig, PipelineOutputAbstractDatasete PipelineData per gli input e gli output.
Di seguito è riportato un esempio di utilizzo Dataset come input e output dei passaggi:
from azureml.core import Dataset
from azureml.pipeline.steps import PythonScriptStep
from azureml.pipeline.core import Pipeline, PipelineData
# get input dataset
input_ds = Dataset.get_by_name(workspace, 'weather_ds')
# register pipeline output as dataset
output_ds = PipelineData('prepared_weather_ds', datastore=datastore).as_dataset()
output_ds = output_ds.register(name='prepared_weather_ds', create_new_version=True)
# configure pipeline step to use dataset as the input and output
prep_step = PythonScriptStep(script_name="prepare.py",
inputs=[input_ds.as_named_input('weather_ds')],
outputs=[output_ds],
compute_target=compute_target,
source_directory=project_folder)
Per esempi sull'uso di altri tipi di input/output, fare riferimento alle pagine della documentazione corrispondenti.
Metodi
create_node |
Creare un nodo per PythonScriptStep e aggiungerlo al grafico specificato. Questo metodo non deve essere usato direttamente. Quando viene creata un'istanza di una pipeline con questo passaggio, Azure ML passa automaticamente i parametri necessari tramite questo metodo in modo che tale passaggio possa essere aggiunto a un grafico della pipeline che rappresenta il flusso di lavoro. |
create_node
Creare un nodo per PythonScriptStep e aggiungerlo al grafico specificato.
Questo metodo non deve essere usato direttamente. Quando viene creata un'istanza di una pipeline con questo passaggio, Azure ML passa automaticamente i parametri necessari tramite questo metodo in modo che tale passaggio possa essere aggiunto a un grafico della pipeline che rappresenta il flusso di lavoro.
create_node(graph, default_datastore, context)
Parametri
Nome | Descrizione |
---|---|
graph
Necessario
|
Oggetto grafico a cui aggiungere il nodo. |
default_datastore
Necessario
|
Archivio dati predefinito. |
context
Necessario
|
<xref:azureml.pipeline.core._GraphContext>
Contesto del grafo. |
Restituisce
Tipo | Descrizione |
---|---|
Nodo creato. |