Condividi tramite


CommandStep Classe

Creare un passaggio della pipeline di Azure ML che esegue un comando.

Creare un passaggio della pipeline di Azure ML 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

command
list oppure str
valore predefinito: None

Comando da eseguire o percorso del file eseguibile/script relativo a source_directory. È obbligatorio, 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
str
valore predefinito: None

Nome del passaggio. Se non specificato, viene utilizzata la prima parola in command .

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

Destinazione di calcolo da usare. Se non specificato, viene utilizzata la destinazione da .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 il recupero dell'oggetto di destinazione di calcolo (il tipo AmlCompute è 'AmlCompute' e il tipo RemoteCompute è 'VirtualMachine').

runconfig
ScriptRunConfig oppure RunConfiguration
valore predefinito: None

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

runconfig_pipeline_params
<xref:<xref:{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'

inputs
list[InputPortBinding oppure DataReference oppure PortDataReference oppure PipelineData oppure <xref:azureml.pipeline.core.pipeline_output_dataset.PipelineOutputDataset> oppure DatasetConsumptionConfig]
valore predefinito: None

Elenco di associazioni di porte di input.

outputs
list[PipelineData oppure OutputDatasetConfig oppure PipelineOutputAbstractDataset oppure OutputPortBinding]
valore predefinito: None

Elenco di associazioni di porte di output.

params
dict
valore predefinito: None

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

source_directory
str
valore predefinito: None

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

allow_reuse
bool
valore predefinito: True

Indica se il passaggio deve riutilizzare i risultati precedenti quando viene eseguito 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 viene 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

Tag di versione facoltativo per indicare una modifica delle funzionalità per il passaggio.

command
list oppure str
Necessario

Comando da eseguire o percorso del file eseguibile/script relativo a source_directory. È obbligatorio, 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
str
Necessario

Nome del passaggio. Se non specificato, viene utilizzata la prima parola in command .

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

Destinazione di calcolo da usare. Se non specificato, viene utilizzata la destinazione da .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 il recupero dell'oggetto di destinazione di calcolo (il tipo AmlCompute è 'AmlCompute' e il tipo RemoteCompute è 'VirtualMachine').

runconfig
ScriptRunConfig oppure RunConfiguration
Necessario

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

runconfig_pipeline_params
<xref:<xref:{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'

inputs
list[InputPortBinding oppure DataReference oppure PortDataReference oppure PipelineData oppure <xref:azureml.pipeline.core.pipeline_output_dataset.PipelineOutputDataset> oppure DatasetConsumptionConfig]
Necessario

Elenco di associazioni di porte di input.

outputs
list[PipelineData oppure OutputDatasetConfig oppure PipelineOutputAbstractDataset oppure OutputPortBinding]
Necessario

Elenco di associazioni di porte di output.

params
dict
Necessario

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

source_directory
str
Necessario

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

allow_reuse
bool
Necessario

Indica se il passaggio deve riutilizzare i risultati precedenti quando viene eseguito 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 viene 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

Tag di versione facoltativo per indicare una modifica delle 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, ad esempio runconfig. Accetta anche altri parametri facoltativi, ad esempio destinazione di calcolo, input e output. È consigliabile usare o ScriptRunConfigRunConfiguration per specificare i requisiti per CommandStep, ad esempio un'immagine Docker personalizzata.

La procedura consigliata per l'uso di CommandStep consiste nell'usare una cartella separata per l'eseguibile o lo script per eseguire tutti 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.

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

L'esempio di codice seguente illustra come usare un 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 altri dettagli sulla creazione di pipeline in generale, vedere https://aka.ms/pl-first-pipeline .

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

create_node(graph, default_datastore, context)

Parametri

graph
Graph
Necessario

Oggetto grafico a cui aggiungere il nodo.

default_datastore
AbstractAzureStorageDatastore oppure AzureDataLakeDatastore
Necessario

Archivio dati predefinito.

context
<xref:_GraphContext>
Necessario

Contesto del grafo.

Restituisce

Nodo creato.

Tipo restituito