RunConfiguration Classe
Rappresenta la configurazione per le esecuzioni di esperimenti destinate a destinazioni di calcolo diverse in Azure Machine Learning.
L'oggetto RunConfiguration incapsula le informazioni necessarie per inviare un'esecuzione di training in un esperimento. In genere, non si creerà direttamente un oggetto RunConfiguration, ma si otterrà uno da un metodo che lo restituisce, ad esempio il submit metodo della Experiment classe.
RunConfiguration è una configurazione dell'ambiente di base usata anche in altri tipi di passaggi di configurazione che dipendono dal tipo di esecuzione che si sta attivando. Ad esempio, quando si configura un PythonScriptStepoggetto , è possibile accedere all'oggetto RunConfiguration del passaggio e configurare le dipendenze di Conda o accedere alle proprietà dell'ambiente per l'esecuzione.
Per esempi di configurazioni di esecuzione, vedere Selezionare e usare una destinazione di calcolo per eseguire il training del modello.
Inizializzare un runConfiguration con le impostazioni predefinite.
- Ereditarietà
-
azureml._base_sdk_common.abstract_run_config_element._AbstractRunConfigElementRunConfiguration
Costruttore
RunConfiguration(script=None, arguments=None, framework=None, communicator=None, conda_dependencies=None, _history_enabled=None, _path=None, _name=None, command=None)
Parametri
Nome | Descrizione |
---|---|
script
|
Percorso relativo del file di script Python. Il percorso del file è relativo alla directory di origine passata a submit. Valore predefinito: None
|
arguments
|
Argomenti della riga di comando per il file di script Python. Valore predefinito: None
|
framework
|
Framework di destinazione usato nell'esecuzione. I framework supportati sono Python, PySpark, TensorFlow e PyTorch. Valore predefinito: None
|
communicator
|
Il comunicatore usato nell'esecuzione. I comunicatori supportati sono None, ParameterServer, OpenMpi e IntelMpi. Tenere presente che OpenMpi richiede un'immagine personalizzata con OpenMpi installata. Usare ParameterServer o OpenMpi per i cluster AmlCompute. Usare IntelMpi per i processi di training distribuiti. Valore predefinito: None
|
conda_dependencies
|
Quando viene lasciato al valore predefinito false, il sistema crea un ambiente Python, che include i pacchetti specificati in Valore predefinito: None
|
auto_prepare_environment
Necessario
|
DEPRECATO. Questa impostazione non viene più usata. |
command
|
Comando da inviare per l'esecuzione. La proprietà del comando può essere usata anche invece di script/argomenti. Non è possibile usare insieme le proprietà di comando e script/argomento per inviare un'esecuzione. Per inviare un file di script usando la proprietà del comando - ['python', 'train.py', '-arg1', arg1_val] Per eseguire un comando effettivo - ['ls'] Valore predefinito: None
|
_history_enabled
|
Valore predefinito: None
|
_path
|
Valore predefinito: None
|
_name
|
Valore predefinito: None
|
Commenti
Vengono in genere compilati sistemi di Machine Learning per risolvere un problema specifico. Ad esempio, potrebbe essere utile trovare il modello migliore che classifica le pagine Web che potrebbero essere servite come risultati della ricerca corrispondenti a una query. La ricerca del modello di Machine Learning migliore può richiedere di provare algoritmi diversi o prendere in considerazione impostazioni di parametri diverse e così via.
In Azure Machine Learning SDK viene usato il concetto di esperimento per acquisire la nozione che le diverse esecuzioni di training sono correlate al problema che stanno tentando di risolvere. Un Experiment oggetto funge quindi da contenitore logico per queste esecuzioni di training, rendendo più semplice tenere traccia dello stato di avanzamento tra le esecuzioni di training, confrontare due esecuzioni di training direttamente e così via.
RunConfiguration incapsula le impostazioni dell'ambiente di esecuzione necessarie per inviare un'esecuzione di training in un esperimento. Acquisisce sia la struttura condivisa delle esecuzioni di training progettate per risolvere lo stesso problema di Machine Learning, sia le differenze nei parametri di configurazione (ad esempio, frequenza di apprendimento, funzione di perdita e così via) che distingueno le esecuzioni di training distinte tra loro.
In scenari di training tipici, RunConfiguration viene usato creando un oggetto che raggruppa un ScriptRunConfig oggetto RunConfiguration e uno script di esecuzione per il training.
La configurazione di RunConfiguration include:
Raggruppamento della directory di origine dell'esperimento, incluso lo script inviato.
Impostazione degli argomenti della riga di comando per lo script inviato.
Configurazione del percorso per l'interprete Python.
Ottenere la configurazione di Conda per gestire le dipendenze dell'applicazione. Il processo di invio del processo può usare la configurazione per effettuare il provisioning di un ambiente temp Conda e avviare l'applicazione all'interno. Gli ambienti temporanei vengono memorizzati nella cache e riutilizzati nelle esecuzioni successive.
Utilizzo facoltativo delle immagini di base Docker e personalizzate.
Scelta facoltativa dell'invio dell'esperimento a più tipi di calcolo di Azure.
Scelta facoltativa della configurazione di come materializzare gli input e caricare gli output.
Impostazioni di runtime avanzate per common runtime, ad esempio spark e tensorflow.
Nell'esempio seguente viene illustrato come inviare uno script di training nel computer locale.
from azureml.core import ScriptRunConfig, RunConfiguration, Experiment
# create or load an experiment
experiment = Experiment(workspace, "MyExperiment")
# run a trial from the train.py code in your current directory
config = ScriptRunConfig(source_directory='.', script='train.py',
run_config=RunConfiguration())
run = experiment.submit(config)
Nell'esempio seguente viene illustrato come inviare uno script di training nel cluster usando la proprietà del comando anziché gli argomenti e gli script.
from azureml.core import ScriptRunConfig, Experiment
# create or load an experiment
experiment = Experiment(workspace, 'MyExperiment')
# create or retrieve a compute target
cluster = workspace.compute_targets['MyCluster']
# create or retrieve an environment
env = Environment.get(ws, name='MyEnvironment')
# configure and submit your training run
config = ScriptRunConfig(source_directory='.',
command=['python', 'train.py', '--arg1', arg1_val],
compute_target=cluster,
environment=env)
script_run = experiment.submit(config)
Nell'esempio seguente viene illustrato come eseguire un comando nel cluster.
from azureml.core import ScriptRunConfig, Experiment
# create or load an experiment
experiment = Experiment(workspace, 'MyExperiment')
# create or retrieve a compute target
cluster = workspace.compute_targets['MyCluster']
# create or retrieve an environment
env = Environment.get(ws, name='MyEnvironment')
# configure and submit your training run
config = ScriptRunConfig(source_directory='.',
command=['ls', '-l'],
compute_target=cluster,
environment=env)
script_run = experiment.submit(config)
Variabili
Nome | Descrizione |
---|---|
environment
|
Definizione dell'ambiente. Questo campo configura l'ambiente Python. Può essere configurato per usare un ambiente Python esistente o configurare per configurare un ambiente temp per l'esperimento. La definizione è anche responsabile dell'impostazione delle dipendenze dell'applicazione necessarie. |
max_run_duration_seconds
|
Tempo massimo consentito per l'esecuzione. Il sistema tenterà di annullare automaticamente l'esecuzione se è necessario più tempo di questo valore. |
node_count
|
Numero di nodi da usare per il processo. |
priority
|
Priorità del processo per la pianificazione dei criteri. |
history
|
La sezione di configurazione usata per disabilitare e abilitare le funzionalità di registrazione della cronologia degli esperimenti. |
spark
|
Quando la piattaforma è impostata su PySpark, viene usata la sezione di configurazione spark per impostare SparkConf predefinito per il processo inviato. |
hdi
|
La sezione di configurazione HDI ha effetto solo quando la destinazione è impostata su un calcolo HDI di Azure. La configurazione HDI viene usata per impostare la modalità di distribuzione YARN. La modalità di distribuzione predefinita è cluster. |
docker
|
La sezione di configurazione Docker viene usata per impostare le variabili per l'ambiente Docker. |
tensorflow
|
Sezione di configurazione usata per configurare i parametri TensorFlow distribuiti.
Questo parametro ha effetto solo quando l'oggetto |
mpi
|
Sezione di configurazione usata per configurare i parametri del processo MPI distribuiti.
Questo parametro ha effetto solo quando l'oggetto |
pytorch
|
Sezione di configurazione usata per configurare i parametri del processo PyTorch distribuiti.
Questo parametro ha effetto solo quando l'oggetto |
paralleltask
|
Sezione di configurazione usata per configurare i parametri di processo paralleltask distribuiti.
Questo parametro ha effetto solo quando l'oggetto |
data_references
|
Tutte le origini dati sono disponibili per l'esecuzione durante l'esecuzione in base a ogni configurazione. Per ogni elemento del dizionario, la chiave è un nome assegnato all'origine dati e il valore è DataReferenceConfiguration. |
data
|
Tutti i dati da rendere disponibili per l'esecuzione durante l'esecuzione. |
datacaches
|
<xref:buildin.list>[DatacacheConfiguration]
Tutti i dati per rendere disponibili i dati per l'esecuzione. |
output_data
|
Tutti gli output che devono essere caricati e monitorati per questa esecuzione. |
source_directory_data_store
|
Archivio dati di backup per la condivisione di progetto. |
amlcompute
|
Dettagli della destinazione di calcolo da creare durante l'esperimento. La configurazione ha effetto solo quando la destinazione di calcolo è AmlCompute. |
kubernetescompute
|
Dettagli della destinazione di calcolo da usare durante l'esperimento. La configurazione ha effetto solo quando la destinazione di calcolo è KubernetesCompute. |
services
|
Endpoint da interattività con la risorsa di calcolo. Gli endpoint consentiti sono Jupyter, JupyterLab, VS Code, Tensorboard, SSH e Porte personalizzate. |
Metodi
delete |
Eliminare un file di configurazione di esecuzione. Genera un valore UserErrorException se il file di configurazione non viene trovato. |
load |
Caricare un file di configurazione eseguito in precedenza salvato da un file su disco. Se Se |
save |
Salvare RunConfiguration in un file su disco. Viene generato un oggetto UserErrorException quando:
Se Se Questo metodo è utile quando si modifica la configurazione manualmente o quando si condivide la configurazione con l'interfaccia della riga di comando. |
delete
Eliminare un file di configurazione di esecuzione.
Genera un valore UserErrorException se il file di configurazione non viene trovato.
static delete(path, name)
Parametri
Nome | Descrizione |
---|---|
path
Necessario
|
Directory radice selezionata dall'utente per le configurazioni di esecuzione. In genere si tratta del repository Git o della directory radice del progetto Python. La configurazione viene eliminata da una sotto directory denominata .azureml. |
name
Necessario
|
Nome del file di configurazione. |
Eccezioni
Tipo | Descrizione |
---|---|
UserErrorException
|
load
Caricare un file di configurazione eseguito in precedenza salvato da un file su disco.
Se path
punta a un file, RunConfiguration viene caricato da tale file.
Se path
punta a una directory, che deve essere una directory di progetto, RunConfiguration viene caricato da <path>/.azureml/<name> o <path>/aml_config/<name>.
static load(path, name=None)
Parametri
Nome | Descrizione |
---|---|
path
Necessario
|
Directory radice selezionata dall'utente per le configurazioni di esecuzione. In genere si tratta del repository Git o della directory radice del progetto Python. Per la compatibilità con le versioni precedenti, la configurazione verrà caricata anche da .azureml o aml_config sotto directory. Se il file non si trova in tali directory, il file viene caricato dal percorso specificato. |
name
|
Nome del file di configurazione. Valore predefinito: None
|
Restituisce
Tipo | Descrizione |
---|---|
Oggetto di configurazione dell'esecuzione. |
Eccezioni
Tipo | Descrizione |
---|---|
UserErrorException
|
save
Salvare RunConfiguration in un file su disco.
Viene generato un oggetto UserErrorException quando:
Impossibile salvare RunConfiguration con il nome specificato.
Non
name
è stato specificato alcun parametro.Il parametro
path
non è valido.
Se path
è del formato <dir_path/><file_name>, dove <dir_path> è una directory valida, RunConfiguration viene salvato in <dir_path>/<file_name>.
Se path
punta a una directory, che deve essere una directory di progetto, RunConfiguration viene salvato in <percorso>/.azureml/<name> o <percorso>/aml_config/<name>.
Questo metodo è utile quando si modifica la configurazione manualmente o quando si condivide la configurazione con l'interfaccia della riga di comando.
save(path=None, name=None, separate_environment_yaml=False)
Parametri
Nome | Descrizione |
---|---|
separate_environment_yaml
|
Indica se salvare la configurazione dell'ambiente Conda. Se True, la configurazione dell'ambiente Conda viene salvata in un file YAML denominato 'environment.yml'. Valore predefinito: False
|
path
|
Directory radice selezionata dall'utente per le configurazioni di esecuzione. In genere si tratta del repository Git o della directory radice del progetto Python. La configurazione viene salvata in una sotto directory denominata .azureml. Valore predefinito: None
|
name
|
[Obbligatorio] Nome del file di configurazione. Valore predefinito: None
|
Restituisce
Tipo | Descrizione |
---|---|
Eccezioni
Tipo | Descrizione |
---|---|
UserErrorException
|
Attributi
auto_prepare_environment
Ottenere il auto_prepare_environment
parametro. Si tratta di un'impostazione deprecata e inutilizzata.
environment_variables
target
Ottenere la destinazione di calcolo in cui il processo è pianificato per l'esecuzione.
La destinazione predefinita è "locale" che fa riferimento al computer locale. Le destinazioni di cloud compute disponibili sono disponibili usando la funzione compute_targets.
Restituisce
Tipo | Descrizione |
---|---|
Nome di destinazione |