Condividi tramite


PyTorch Classe

Rappresenta uno strumento di stima per il training negli esperimenti pyTorch.

DEPRECATO. Usare l'oggetto ScriptRunConfig con un ambiente definito o uno degli ambienti curati di PyTorch di Azure ML. Per un'introduzione alla configurazione delle esecuzioni dell'esperimento PyTorch con ScriptRunConfig, vedere Eseguire il training di modelli PyTorch su larga scala con Azure Machine Learning.

Versioni supportate: 1.0, 1.1, 1.2, 1.3, 1.4, 1.5, 1.6

Inizializzare un estimator PyTorch.

Riferimento all'esecuzione di Docker. :type shm_size: str :p aram resume_from: percorso dati contenente i file del checkpoint o del modello da cui riprendere l'esperimento. :type resume_from: azureml.data.datapath.DataPath :p aram max_run_duration_seconds: tempo massimo consentito per l'esecuzione. Azure ML tenterà di eseguire automaticamente

annullare l'esecuzione se richiede più tempo di questo valore.

Ereditarietà
azureml.train.estimator._framework_base_estimator._FrameworkBaseEstimator
PyTorch

Costruttore

PyTorch(source_directory, *, compute_target=None, vm_size=None, vm_priority=None, entry_script=None, script_params=None, node_count=1, process_count_per_node=1, distributed_backend=None, distributed_training=None, use_gpu=False, use_docker=True, custom_docker_base_image=None, custom_docker_image=None, image_registry_details=None, user_managed=False, conda_packages=None, pip_packages=None, conda_dependencies_file_path=None, pip_requirements_file_path=None, conda_dependencies_file=None, pip_requirements_file=None, environment_variables=None, environment_definition=None, inputs=None, source_directory_data_store=None, shm_size=None, resume_from=None, max_run_duration_seconds=None, framework_version=None, _enable_optimized_mode=False, _disable_validation=True, _show_lint_warnings=False, _show_package_warnings=False)

Parametri

Nome Descrizione
source_directory
Necessario
str

Directory locale contenente i file di configurazione dell'esperimento.

compute_target
Necessario

Destinazione di calcolo in cui verrà eseguito il training. Può trattarsi di un oggetto o della stringa "local".

vm_size
Necessario
str

Dimensioni della macchina virtuale della destinazione di calcolo che verrà creata per il training. Valori supportati: qualsiasi dimensione della macchina virtuale di Azure.

vm_priority
Necessario
str

Priorità della macchina virtuale della destinazione di calcolo che verrà creata per il training. Se non specificato, viene utilizzato 'dedicated'.

Valori supportati: 'dedicated' e 'lowpriority'.

Ciò diventa effettivo solo quando l'oggetto vm_size param è specificato nell'input.

entry_script
Necessario
str

Percorso relativo del file contenente lo script di training.

script_params
Necessario

Dizionario di argomenti della riga di comando da passare allo script di training specificato in entry_script.

node_count
Necessario
int

Numero di nodi nella destinazione di calcolo usata per il training. Se maggiore di 1, verrà eseguito un processo distribuito MPI. Solo la AmlCompute destinazione è supportata per i processi distribuiti.

process_count_per_node
Necessario
int

numero di processi per nodo. Se maggiore di 1, verrà eseguito un processo distribuito MPI. Solo la AmlCompute destinazione è supportata per i processi distribuiti.

distributed_backend
Necessario
str

Back-end di comunicazione per il training distribuito.

DEPRECATO. Usare il distributed_training parametro .

Valori supportati: 'mpi', 'gloo' e 'nccl'.

'mpi': MPI/Horovod 'gloo', 'nccl': Native PyTorch Distributed Training

Questo parametro è obbligatorio quando node_count o process_count_per_node> 1.

Quando node_count == 1 e process_count_per_node == 1, non verrà usato alcun back-end a meno che il back-end non sia impostato in modo esplicito. Solo la destinazione è supportata per il AmlCompute training distribuito.

distributed_training
Necessario
Mpi oppure Gloo oppure Nccl

Parametri per l'esecuzione di un processo di training distribuito.

Per eseguire un processo distribuito con back-end MPI, usare l'oggetto Mpi per specificare process_count_per_node. Per eseguire un processo distribuito con back-end gloo, usare Gloo. Per eseguire un processo distribuito con back-end nccl, usare Nccl.

use_gpu
Necessario

Specifica se l'ambiente per eseguire l'esperimento deve supportare GPU. Se true, nell'ambiente verrà usata un'immagine Docker predefinita basata su GPU. Se false, verrà usata un'immagine basata sulla CPU. Le immagini Docker predefinite (CPU o GPU) verranno usate solo se il custom_docker_image parametro non è impostato. Questa impostazione viene usata solo nelle destinazioni di calcolo abilitate per Docker.

use_docker
Necessario

Specifica se l'ambiente per eseguire l'esperimento deve essere basato su Docker.

custom_docker_base_image
Necessario
str

Nome dell'immagine Docker da cui verrà compilata l'immagine da usare per il training.

DEPRECATO. Usare il custom_docker_image parametro .

Se non impostato, come immagine di base verrà usata un'immagine predefinita basata sulla CPU.

custom_docker_image
Necessario
str

Nome dell'immagine Docker da cui verrà compilata l'immagine da usare per il training. Se non impostato, come immagine di base verrà usata un'immagine predefinita basata sulla CPU.

image_registry_details
Necessario

Dettagli del registro immagini Docker.

user_managed
Necessario

Specifica se Azure ML riutilizza un ambiente Python esistente. Se false, Azure ML creerà un ambiente Python in base alla specifica delle dipendenze conda.

conda_packages
Necessario

Elenco di stringhe che rappresentano i pacchetti conda da aggiungere all'ambiente Python per l'esperimento.

pip_packages
Necessario

Elenco di stringhe che rappresentano i pacchetti pip da aggiungere all'ambiente Python per l'esperimento.

conda_dependencies_file_path
Necessario
str

Percorso relativo del file yaml delle dipendenze conda. Se specificato, Azure ML non installerà alcun pacchetto correlato al framework. DEPRECATO. Usare il conda_dependencies_file parametro .

pip_requirements_file_path
Necessario
str

Percorso relativo del file di testo dei requisiti pip. Questa opzione può essere fornita in combinazione con il pip_packages parametro . DEPRECATO. Usare il pip_requirements_file parametro .

conda_dependencies_file
Necessario
str

Percorso relativo del file yaml delle dipendenze conda. Se specificato, Azure ML non installerà alcun pacchetto correlato al framework.

pip_requirements_file
Necessario
str

Percorso relativo del file di testo dei requisiti pip. Questa opzione può essere fornita in combinazione con il pip_packages parametro .

environment_variables
Necessario

Dizionario di nomi e valori delle variabili di ambiente. Queste variabili di ambiente vengono impostate nel processo in cui viene eseguito lo script utente.

environment_definition
Necessario

Definizione dell'ambiente per l'esperimento. Include PythonSection, DockerSection e variabili di ambiente. Qualsiasi opzione di ambiente non esposta direttamente tramite altri parametri alla costruzione di Estimator può essere impostata usando questo parametro. Se questo parametro viene specificato, avrà la precedenza su altri parametri correlati all'ambiente, ad esempio use_gpu, custom_docker_image, conda_packageso pip_packages. Gli errori verranno segnalati in combinazioni non valide di parametri.

inputs
Necessario

Elenco di DataReference oggetti o DatasetConsumptionConfig da utilizzare come input.

source_directory_data_store
Necessario

Archivio dati di backup per la condivisione di progetto.

shm_size
Necessario
str

Dimensioni del blocco di memoria condivisa del contenitore Docker. Se non impostato, viene utilizzata la azureml.core.environment._DEFAULT_SHM_SIZE predefinita. Per altre informazioni, vedere Informazioni di riferimento sull'esecuzione di Docker.

resume_from
Necessario

Percorso dati contenente i file del checkpoint o del modello da cui riprendere l'esperimento.

max_run_duration_seconds
Necessario
int

Tempo massimo consentito per l'esecuzione. Azure ML tenterà di annullare automaticamente l'esecuzione se richiede più tempo di questo valore.

framework_version
Necessario
str

Versione di PyTorch da usare per l'esecuzione del codice di training. PyTorch.get_supported_versions() restituisce un elenco delle versioni supportate dall'SDK corrente.

source_directory
Necessario
str

Directory locale contenente i file di configurazione dell'esperimento.

compute_target
Necessario

Destinazione di calcolo in cui verrà eseguito il training. Può trattarsi di un oggetto o della stringa "local".

vm_size
Necessario
str

Dimensioni della macchina virtuale della destinazione di calcolo che verrà creata per il training. Valori supportati: qualsiasi dimensione della macchina virtuale di Azure.

vm_priority
Necessario
str

Priorità della macchina virtuale della destinazione di calcolo che verrà creata per il training. Se non specificato, viene utilizzato 'dedicated'.

Valori supportati: 'dedicated' e 'lowpriority'.

Ciò diventa effettivo solo quando l'oggetto vm_size param è specificato nell'input.

entry_script
Necessario
str

Percorso relativo del file contenente lo script di training.

script_params
Necessario

Dizionario di argomenti della riga di comando da passare allo script di training specificato in entry_script.

node_count
Necessario
int

Numero di nodi nella destinazione di calcolo usata per il training. Se è maggiore di 1, verrà eseguito il processo distribuito mpi. Solo la destinazione azureml.core.compute.AmlCompute è supportata per i processi distribuiti.

process_count_per_node
Necessario
int

numero di processi per nodo. Se maggiore di 1, verrà eseguito un processo distribuito MPI. Solo la AmlCompute destinazione è supportata per i processi distribuiti.

distributed_backend
Necessario
str

Back-end di comunicazione per il training distribuito.

DEPRECATO. Usare il distributed_training parametro .

Valori supportati: 'mpi', 'gloo' e 'nccl'.

'mpi': MPI/Horovod 'gloo', 'nccl': Native PyTorch Distributed Training

Questo parametro è obbligatorio quando node_count o process_count_per_node> 1.

Quando node_count == 1 e process_count_per_node == 1, non verrà usato alcun back-end a meno che il back-end non sia impostato in modo esplicito. Solo la destinazione è supportata per il AmlCompute training distribuito.

distributed_training
Necessario
Mpi oppure Gloo oppure Nccl

Parametri per l'esecuzione di un processo di training distribuito.

Per eseguire un processo distribuito con back-end MPI, usare l'oggetto Mpi per specificare process_count_per_node. Per eseguire un processo distribuito con back-end gloo, usare Gloo. Per eseguire un processo distribuito con back-end nccl, usare Nccl.

use_gpu
Necessario

Specifica se l'ambiente per eseguire l'esperimento deve supportare GPU. Se true, nell'ambiente verrà usata un'immagine Docker predefinita basata su GPU. Se false, verrà usata un'immagine basata sulla CPU. Le immagini Docker predefinite (CPU o GPU) verranno usate solo se il custom_docker_image parametro non è impostato. Questa impostazione viene usata solo nelle destinazioni di calcolo abilitate per Docker.

use_docker
Necessario

Specifica se l'ambiente per eseguire l'esperimento deve essere basato su Docker.

custom_docker_base_image
Necessario
str

Nome dell'immagine Docker da cui verrà compilata l'immagine da usare per il training.

DEPRECATO. Usare il custom_docker_image parametro .

Se non impostato, come immagine di base verrà usata un'immagine predefinita basata sulla CPU.

custom_docker_image
Necessario
str

Nome dell'immagine Docker da cui verrà compilata l'immagine da usare per il training. Se non impostato, come immagine di base verrà usata un'immagine predefinita basata sulla CPU.

image_registry_details
Necessario

Dettagli del registro immagini Docker.

user_managed
Necessario

Specifica se Azure ML riutilizza un ambiente Python esistente. Se false, Azure ML creerà un ambiente Python in base alla specifica delle dipendenze conda.

conda_packages
Necessario

Elenco di stringhe che rappresentano i pacchetti conda da aggiungere all'ambiente Python per l'esperimento.

pip_packages
Necessario

Elenco di stringhe che rappresentano i pacchetti pip da aggiungere all'ambiente Python per l'esperimento.

conda_dependencies_file_path
Necessario
str

Percorso relativo del file yaml delle dipendenze conda. Se specificato, Azure ML non installerà alcun pacchetto correlato al framework. DEPRECATO. Usare il conda_dependencies_file parametro .

pip_requirements_file_path
Necessario
str

Percorso relativo del file di testo dei requisiti pip. Questa opzione può essere fornita in combinazione con il pip_packages parametro . DEPRECATO. Usare il pip_requirements_file parametro .

conda_dependencies_file
Necessario
str

Percorso relativo del file yaml delle dipendenze conda. Se specificato, Azure ML non installerà alcun pacchetto correlato al framework.

pip_requirements_file
Necessario
str

Percorso relativo del file di testo dei requisiti pip. Questa opzione può essere fornita in combinazione con il pip_packages parametro .

environment_variables
Necessario

Dizionario di nomi e valori delle variabili di ambiente. Queste variabili di ambiente vengono impostate nel processo in cui viene eseguito lo script utente.

environment_definition
Necessario

Definizione dell'ambiente per l'esperimento. Include PythonSection, DockerSection e variabili di ambiente. Qualsiasi opzione di ambiente non esposta direttamente tramite altri parametri alla costruzione di Estimator può essere impostata usando questo parametro. Se questo parametro viene specificato, avrà la precedenza su altri parametri correlati all'ambiente, ad esempio use_gpu, custom_docker_image, conda_packageso pip_packages. Gli errori verranno segnalati in combinazioni non valide.

inputs
Necessario

Elenco di azureml.data.data_reference. Oggetti DataReference da usare come input.

source_directory_data_store
Necessario

Archivio dati di backup per la condivisione di progetto.

shm_size
Necessario

Dimensioni del blocco di memoria condivisa del contenitore Docker. Se non impostato, viene utilizzata la azureml.core.environment._DEFAULT_SHM_SIZE predefinita. Per ulteriori informazioni, vedere

framework_version
Necessario
str

Versione di PyTorch da usare per l'esecuzione del codice di training. PyTorch.get_supported_versions() restituisce un elenco delle versioni supportate dall'SDK corrente.

_enable_optimized_mode
Necessario

Abilitare la compilazione incrementale dell'ambiente con immagini del framework predefinite per una preparazione più rapida dell'ambiente. Un'immagine del framework predefinita è basata su immagini di base di CPU/GPU predefinite di Azure ML con dipendenze del framework preinstallate.

_disable_validation
Necessario

Disabilitare la convalida dello script prima dell'invio. Il valore predefinito è True.

_show_lint_warnings
Necessario

Mostra avvisi di linting dello script. Il valore predefinito è False.

_show_package_warnings
Necessario

Mostra avvisi di convalida del pacchetto. Il valore predefinito è False.

Commenti

Quando si invia un processo di training, Azure ML esegue lo script in un ambiente conda all'interno di un contenitore Docker. I contenitori PyTorch hanno le dipendenze seguenti installate.

Dipendenze | PyTorch 1.0/1.1/1.2/1.3/ | PyTorch 1.4/1.5/1.6 | ———————- | —————– | ————- | Python | 3.6.2 | 3.6.2 | CUDA (solo immagine GPU) | 10.0 | 10.1 | cuDNN (solo immagine GPU) | 7.6.3 | 7.6.3 | NCCL (solo immagine GPU) | 2.4.8 | 2.4.8 | azureml-defaults | Più recente | Più recente | OpenMpi | 3.1.2 | 3.1.2 | horovod | 0.18.1 | 0.18.1/0.19.1/0.19.5 | miniconda | 4.5.11 | 4.5.11 | torcia | 1.0/1.1/1.2/1.3.1 | 1.4.0/1.5.0/1.6.0 | torchvision | 0.4.1 | 0.5.0 | git | 2.7.4 | 2.7.4 | tensorboard | 1.14 | 1.14 | future | 0.17.1 | 0.17.1 |

Le immagini Docker estendono Ubuntu 16.04.

Per installare dipendenze aggiuntive, è possibile usare il pip_packages parametro o conda_packages . In alternativa, è possibile specificare il pip_requirements_file parametro o conda_dependencies_file . In alternativa, è possibile creare un'immagine personalizzata e passare il custom_docker_image parametro al costruttore di stima.

Per altre informazioni sui contenitori Docker usati nel training di PyTorch, vedere https://github.com/Azure/AzureML-Containers.

Lo strumento di stima PyTorch supporta il training distribuito tra cluster CPU e GPU usando Horovod, un framework open source e di riduzione per il training distribuito. Per esempi e altre informazioni sull'uso di PyTorch nel training distribuito, vedere l'esercitazione Eseguire il training e registrare modelli PyTorch su larga scala con Azure Machine Learning.

Attributi

DEFAULT_VERSION

DEFAULT_VERSION = '1.4'

FRAMEWORK_NAME

FRAMEWORK_NAME = 'PyTorch'