PythonScriptStep Classe

Crea un passaggio di Azure ML Pipeline che esegue lo script Python.

Per un esempio di uso di PythonScriptStep, vedere il notebook https://aka.ms/pl-get-started.

Creare un passaggio di Azure ML Pipeline che esegue lo script Python.

Ereditarietà
azureml.pipeline.core._python_script_step_base._PythonScriptStepBase
PythonScriptStep

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

script_name
str
Necessario

[Obbligatorio] Nome di uno script Python relativo a source_directory.

name
str
valore predefinito: None

Nome del passaggio. Se non specificato, script_name viene usato.

arguments
list
valore predefinito: None

Argomenti della riga di comando per il file di script Python. Gli argomenti verranno passati al calcolo tramite il arguments parametro in RunConfiguration. Per altre informazioni su come gestire gli argomenti, ad esempio simboli speciali, vedere .RunConfiguration

compute_target
Union[DsvmCompute, AmlCompute, RemoteCompute, HDInsightCompute, str, tuple]
valore predefinito: None

[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 di 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
RunConfiguration
valore predefinito: None

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.

runconfig_pipeline_params
dict[str, PipelineParameter]
valore predefinito: None

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'

outputs
list[Union[PipelineData, OutputDatasetConfig, PipelineOutputFileDataset, PipelineOutputTabularDataset, OutputPortBinding]]
valore predefinito: None

Elenco di associazioni di porte di output.

params
dict
valore predefinito: None

Dizionario delle coppie nome-valore registrate come variabili di ambiente con "AML_PARAMETER_".

source_directory
str
valore predefinito: None

Cartella contenente script Python, conda env e altre risorse usate nel passaggio.

allow_reuse
bool
valore predefinito: True

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, anziché inviare il processo al calcolo, i risultati dell'esecuzione precedente vengono immediatamente resi disponibili per tutti i passaggi successivi. Se si usano set di dati di Azure Machine Learning come input, il riutilizzo è determinato dal fatto che la definizione del set di dati sia stata modificata, non dal fatto che i dati sottostanti siano stati modificati.

version
str
valore predefinito: None

Un tag di versione facoltativo per indicare una modifica della funzionalità per il passaggio.

hash_paths
list
valore predefinito: None

DEPRECATO: non più necessario.

Elenco di percorsi da hash durante il controllo delle modifiche apportate al contenuto del passaggio. Se non sono state rilevate modifiche, la pipeline ririuserà il contenuto del passaggio da un'esecuzione precedente. Per impostazione predefinita, il contenuto di è hash, ad eccezione dei source_directory file elencati in .amlignore o .gitignore.

script_name
str
Necessario

[Obbligatorio] Nome di uno script Python relativo a source_directory.

name
str
Necessario

Nome del passaggio. Se non specificato, script_name viene usato.

arguments
[str]
Necessario

Argomenti della riga di comando per il file di script Python. Gli argomenti verranno passati al calcolo tramite il arguments parametro in RunConfiguration. Per altre informazioni su come gestire gli argomenti, ad esempio simboli speciali, vedere .RunConfiguration

compute_target
Union[DsvmCompute, AmlCompute, RemoteCompute, HDInsightCompute, str, tuple]
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 di 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
RunConfiguration
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
dict[str, PipelineParameter]
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'

outputs
list[Union[PipelineData, OutputDatasetConfig, PipelineOutputFileDataset, PipelineOutputTabularDataset, OutputPortBinding]]
Necessario

Elenco di associazioni di porte di output.

params
<xref:<xref:{str: str}>>
Necessario

Dizionario delle coppie nome-valore. Registrato come variabili di ambiente con ">>AML_PARAMETER_<<".

source_directory
str
Necessario

Cartella contenente script Python, conda env e altre risorse usate nel passaggio.

allow_reuse
bool
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, anziché inviare il processo al calcolo, i risultati dell'esecuzione precedente vengono immediatamente resi disponibili per tutti i passaggi successivi. Se si usano set di dati di Azure Machine Learning come input, il riutilizzo è determinato dal fatto che la definizione del set di dati sia stata modificata, non dal fatto che i dati sottostanti siano stati modificati.

version
str
Necessario

Un tag di versione facoltativo per indicare una modifica della funzionalità per il passaggio.

hash_paths
list
Necessario

DEPRECATO: non più necessario.

Elenco di percorsi da hash durante il controllo delle modifiche apportate al contenuto del passaggio. Se non sono state rilevate modifiche, la pipeline ririuserà il contenuto del passaggio da un'esecuzione precedente. Per impostazione predefinita, il contenuto di è hash, ad eccezione dei source_directory file elencati in .amlignore o .gitignore.

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 come gli argomenti per lo script, la destinazione di calcolo, input e output. Se non viene specificata alcuna destinazione di calcolo, viene usata la destinazione di calcolo predefinita per l'area di lavoro. È anche possibile usare un RunConfiguration oggetto per 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. Prima di tutto, consente di ridurre le dimensioni dello snapshot creato per il passaggio, perché solo ciò che è necessario per il passaggio viene snapshotto. In secondo luogo, l'output del passaggio da un'esecuzione precedente può essere riutilizzato se non sono presenti modifiche all'oggetto source_directory che attiva un nuovo caricamento dello snapshot.

Nell'esempio di codice seguente viene illustrato l'uso di PythonScriptStep in uno scenario di training di Machine Learning. Per altre informazioni 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 un numero di tipi di input e output. Questi includono 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 di passaggio:


   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)

Fare riferimento alle pagine della documentazione corrispondenti per esempi di uso di altri tipi di input/output.

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 il 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 il passaggio possa essere aggiunto a un grafico della pipeline che rappresenta il flusso di lavoro.

create_node(graph, default_datastore, context)

Parametri

graph
Graph
Necessario

Oggetto graph a cui aggiungere il nodo.

default_datastore
Union[AbstractAzureStorageDatastore, AzureDataLakeDatastore]
Necessario

Archivio dati predefinito.

context
<xref:azureml.pipeline.core._GraphContext>
Necessario

Contesto del grafico.

Restituisce

Nodo creato.

Tipo restituito