Condividi tramite


CommandStep Classe

Creare un passaggio di Azure ML Pipeline che esegue un comando.

Creare un passaggio di Azure ML Pipeline che esegue un comando.

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

Costruttore

CommandStep(command=None, name=None, compute_target=None, runconfig=None, runconfig_pipeline_params=None, inputs=None, outputs=None, params=None, source_directory=None, allow_reuse=True, version=None)

Parametri

Nome Descrizione
command
list oppure str

Comando da eseguire o percorso del file eseguibile/script relativo a source_directory. È necessario a meno che non venga fornito con runconfig. Può essere specificato con argomenti stringa in una singola stringa o con input/output/PipelineParameter in un elenco.

valore predefinito: None
name
str

Nome del passaggio. Se non specificato, viene usata la prima parola nell'oggetto command .

valore predefinito: None
compute_target
DsvmCompute oppure AmlCompute oppure RemoteCompute oppure HDInsightCompute oppure str oppure tuple

Destinazione di calcolo da usare. Se non specificato, viene usata la destinazione dall'oggetto 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').

valore predefinito: None
runconfig

Oggetto di configurazione facoltativo che incapsula le informazioni necessarie per inviare un'esecuzione di training in un esperimento.

valore predefinito: None
runconfig_pipeline_params
<xref:<xref:{str: PipelineParameter}>>

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[InputPortBinding oppure DataReference oppure PortDataReference oppure PipelineData oppure <xref:azureml.pipeline.core.pipeline_output_dataset.PipelineOutputDataset> oppure DatasetConsumptionConfig]

Elenco di associazioni di porte di input.

valore predefinito: None
outputs

Elenco di associazioni di porte di output.

valore predefinito: None
params

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

valore predefinito: None
source_directory
str

Cartella contenente script, 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, 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.

valore predefinito: True
version
str

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

valore predefinito: None
command
Necessario
list oppure str

Comando da eseguire o percorso del file eseguibile/script relativo a source_directory. È necessario a meno che non venga fornito con runconfig. Può essere specificato con argomenti stringa in una singola stringa o con input/output/PipelineParameter in un elenco.

name
Necessario
str

Nome del passaggio. Se non specificato, viene usata la prima parola nell'oggetto command .

compute_target
Necessario
DsvmCompute oppure AmlCompute oppure RemoteCompute oppure HDInsightCompute oppure str oppure tuple

Destinazione di calcolo da usare. Se non specificato, viene usata la destinazione dall'oggetto 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
Necessario

Oggetto di configurazione facoltativo che incapsula le informazioni necessarie per inviare un'esecuzione di training in un esperimento.

runconfig_pipeline_params
Necessario
<xref:<xref:{str: PipelineParameter}>>

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[InputPortBinding oppure DataReference oppure PortDataReference oppure PipelineData oppure <xref:azureml.pipeline.core.pipeline_output_dataset.PipelineOutputDataset> oppure DatasetConsumptionConfig]

Elenco di associazioni di porte di input.

outputs
Necessario

Elenco di associazioni di porte di output.

params
Necessario

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

source_directory
Necessario
str

Cartella contenente script, 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, 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
Necessario
str

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

Commenti

CommandStep è un passaggio predefinito di base per eseguire un comando nella destinazione di calcolo specificata. Accetta un comando come parametro o da altri parametri come runconfig. Accetta anche altri parametri facoltativi come destinazione di calcolo, input e output. È consigliabile usare o ScriptRunConfigRunConfiguration per specificare i requisiti per l'immagine Docker personalizzata.

La procedura consigliata per l'uso con CommandStep consiste nell'usare una cartella separata per l'eseguibile o lo script per l'esecuzione di qualsiasi file dipendente associato 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.

Per i comandi source_directory noti del sistema non è necessario, ma è comunque possibile specificarlo con tutti i file dipendenti associati al passaggio.

Nell'esempio di codice seguente viene illustrato come usare commandStep in uno scenario di training di Machine Learning. Per elencare i file in linux:


   from azureml.pipeline.steps import CommandStep

   trainStep = CommandStep(name='list step',
                           command='ls -lrt',
                           compute_target=compute_target)

Per eseguire uno script python:


   from azureml.pipeline.steps import CommandStep

   trainStep = CommandStep(name='train step',
                           command='python train.py arg1 arg2',
                           source_directory=project_folder,
                           compute_target=compute_target)

Per eseguire uno script python tramite ScriptRunConfig:


   from azureml.core import ScriptRunConfig
   from azureml.pipeline.steps import CommandStep

   train_src = ScriptRunConfig(source_directory=script_folder,
                               command='python train.py arg1 arg2',
                               environment=my_env)
   trainStep = CommandStep(name='train step',
                           runconfig=train_src)

Per altre informazioni sulla creazione di pipeline in generale, vedere https://aka.ms/pl-first-pipeline altre informazioni.

Metodi

create_node

Creare un nodo per CommandStep 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 CommandStep 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

Nome Descrizione
graph
Necessario

Oggetto graph a cui aggiungere il nodo.

default_datastore
Necessario

Archivio dati predefinito.

context
Necessario
<xref:_GraphContext>

Contesto del grafico.

Restituisce

Tipo Descrizione

Nodo creato.