RunConfiguration Classe
Rappresenta la configurazione per le esecuzioni dell'esperimento 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 ne verrà ottenuto 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 oggetto 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
|
Comunicatore utilizzato nell'esecuzione. I comunicatori supportati sono None, ParameterServer, OpenMpi e IntelMpi. Tenere presente che OpenMpi richiede un'immagine personalizzata con OpenMpi installato. Usare ParameterServer o OpenMpi per i cluster AmlCompute. Usare IntelMpi per i processi di training distribuiti. Valore predefinito: None
|
conda_dependencies
|
Se 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
I sistemi di Machine Learning vengono in genere compilati per risolvere un problema specifico. Ad esempio, si potrebbe essere interessati a trovare il modello migliore che classifica le pagine Web che potrebbero essere servite come risultati di ricerca corrispondenti a una query. La ricerca del modello di Machine Learning migliore può richiedere l'uso di algoritmi diversi o prendere in considerazione impostazioni di parametro diverse e così via.
In Azure Machine Learning SDK viene usato il concetto di esperimento per acquisire la nozione che 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 direttamente due esecuzioni di training 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 distinguono le esecuzioni di training distinte tra loro.
Negli scenari di training tipici, RunConfiguration viene usato creando un ScriptRunConfig oggetto che raggruppa un oggetto RunConfiguration e uno script di esecuzione per il training.
La configurazione di RunConfiguration include:
Creazione di bundle 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.
Uso facoltativo di Docker e immagini di base personalizzate.
Scelta facoltativa dell'invio dell'esperimento a più tipi di calcolo di Azure.
Scelta facoltativa della configurazione della modalità di materializzazione degli input e del caricamento degli output.
Impostazioni di runtime avanzate per common runtime come 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é script e argomenti.
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)
L'esempio seguente illustra 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 configurarlo per configurare un ambiente temporaneo 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
|
Sezione di configurazione usata per disabilitare e abilitare le funzionalità di registrazione della cronologia degli esperimenti. |
spark
|
Quando la piattaforma è impostata su PySpark, la sezione di configurazione di Spark viene usata per impostare sparkConf predefinito per il processo inviato. |
hdi
|
La sezione di configurazione HDI diventa effettiva solo quando la destinazione è impostata su un ambiente di 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 di 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 è |
mpi
|
Sezione di configurazione usata per configurare i parametri di processo MPI distribuiti.
Questo parametro ha effetto solo quando è |
pytorch
|
Sezione di configurazione usata per configurare i parametri del processo PyTorch distribuiti.
Questo parametro ha effetto solo quando è |
paralleltask
|
Sezione di configurazione usata per configurare i parametri del processo paralleltask distribuiti.
Questo parametro diventa effettivo solo quando è |
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 i dati disponibili per l'esecuzione durante 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 per l'interazione con la risorsa di calcolo. Gli endpoint consentiti sono Le porte Jupyter, JupyterLab, VS Code, Tensorboard, SSH e Custom. |
Metodi
delete |
Eliminare un file di configurazione di esecuzione. Genera un'eccezione UserErrorException se il file di configurazione non viene trovato. |
load |
Caricare un file di configurazione dell'esecuzione salvato in precedenza da un file su disco. Se Se |
save |
Salvare RunConfiguration in un file su disco. Un UserErrorException oggetto viene generato 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'eccezione 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 sottodirectory denominata .azureml. |
name
Necessario
|
Nome del file di configurazione. |
Eccezioni
Tipo | Descrizione |
---|---|
UserErrorException
|
load
Caricare un file di configurazione dell'esecuzione salvato in precedenza 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 caricata 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 sottodirectory. 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 di esecuzione. |
Eccezioni
Tipo | Descrizione |
---|---|
UserErrorException
|
save
Salvare RunConfiguration in un file su disco.
Un UserErrorException oggetto viene generato quando:
Non è possibile salvare RunConfiguration con il nome specificato.
Non è stato specificato alcun
name
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 salvata in <path>/.azureml/<name> o <path>/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 sottodirectory 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
Ottiene 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 calcolo cloud disponibili sono disponibili usando la funzione compute_targets.
Restituisce
Tipo | Descrizione |
---|---|
Nome della destinazione |