PyTorch Klasse

Stellt einen Schätzer für das Training in PyTorch-Experimenten dar.

VERALTET. Verwenden Sie das ScriptRunConfig-Objekt mit Ihrer eigenen definierten Umgebung oder eine der von Azure ML PyTorch zusammengestellten Umgebungen. Eine Einführung in die Konfiguration von PyTorch-Experimentausführungen mit ScriptRunConfig finden Sie unter Trainieren von PyTorch-Modellen im großen Stil mit Azure Machine Learning.

Unterstützte Versionen: 1.0, 1.1, 1.2, 1.3, 1.4, 1.5, 1.6

Initialisieren Sie einen PyTorch-Schätzer.

Docker-Ausführungsreferenz. :type shm_size: str :p aram resume_from: Der Datenpfad, der die Prüfpunkt- oder Modelldateien enthält, von denen aus das Experiment fortgesetzt werden soll. :type resume_from: azureml.data.datapath.DataPath :p aram max_run_duration_seconds: Die maximal zulässige Zeit für die Ausführung. Azure ML versucht automatisch,

bricht die Ausführung ab, wenn sie länger als dieser Wert dauert.

Vererbung
azureml.train.estimator._framework_base_estimator._FrameworkBaseEstimator
PyTorch

Konstruktor

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)

Parameter

source_directory
str
Erforderlich

Ein lokales Verzeichnis mit Konfigurationsdateien für Experimente.

compute_target
AbstractComputeTarget oder str
Erforderlich

Das Computeziel für das Training. Dies kann entweder ein Objekt oder die Zeichenfolge „local“ sein.

vm_size
str
Erforderlich

Die VM-Größe des Computeziels, das für das Training erstellt wird. Unterstützte Werte: beliebige Azure-VM-Größen.

vm_priority
str
Erforderlich

Die VM-Priorität des Computeziels, das für das Training erstellt wird. Wenn keine Angabe erfolgt, wird „dedicated“ verwendet.

Unterstützte Werte: „dedicated“ und „lowpriority“.

Wird nur angewandt, wenn vm_size param in der Eingabe angegeben wird.

entry_script
str
Erforderlich

Der relative Pfad zu der Datei, die das Trainingsskript enthält.

script_params
dict
Erforderlich

Ein Wörterbuch mit Befehlszeilenargumenten, die an das in entry_script angegebene Trainingsskript übergeben werden.

node_count
int
Erforderlich

Die Anzahl der Knoten am Computeziel, die für das Training verwendet werden. Wenn der Wert größer als 1 ist, wird ein verteilter MPI-Auftrag ausgeführt. Für verteilte Aufträge wird nur das Ziel AmlCompute unterstützt.

process_count_per_node
int
Erforderlich

Die Anzahl von Prozessen pro Knoten. Wenn der Wert größer als 1 ist, wird ein verteilter MPI-Auftrag ausgeführt. Für verteilte Aufträge wird nur das Ziel AmlCompute unterstützt.

distributed_backend
str
Erforderlich

Das Kommunikations-Back-End für das verteilte Training

VERALTET. Verwenden Sie den Parameter distributed_training.

Unterstützte Werte: „mpi“, „gloo“ und „nccl“.

„mpi“: MPI/Horovod „gloo“, „nccl“: natives verteiltes PyTorch-Training

Dieser Parameter ist erforderlich, wenn node_count oder process_count_per_node> 1 ist.

Wenn node_count == 1 und process_count_per_node == 1 ist, wird nur dann ein Back-End verwendet, wenn es explizit festgelegt wird. Für das verteilte Training wird nur das Ziel AmlCompute unterstützt.

distributed_training
Mpi oder Gloo oder Nccl
Erforderlich

Parameter zum Ausführen eines verteilten Trainingsauftrags.

Verwenden Sie zum Ausführen eines verteilten Auftrags mit MPI-Back-End das Mpi-Objekt, um process_count_per_node anzugeben. Verwenden Sie zum Ausführen eines verteilten Auftrags mit gloo-Back-End Gloo. Verwenden Sie zum Ausführen eines verteilten Auftrags mit nccl-Back-End Nccl.

use_gpu
bool
Erforderlich

Gibt an, ob die Umgebung, in der das Experiment ausgeführt werden soll, GPUs unterstützen soll. „True“ gibt an, dass ein GPU-basiertes Docker-Standardimage in der Umgebung verwendet wird. Bei „False“ wird ein CPU-basiertes Image verwendet. Docker-Standardimages (CPU oder GPU) werden nur verwendet, wenn der custom_docker_image-Parameter nicht festgelegt ist. Diese Einstellung wird nur bei Docker-fähigen Computezielen verwendet.

use_docker
bool
Erforderlich

Gibt an, ob die Umgebung, in der das Experiment ausgeführt werden soll, Docker-basiert sein soll.

custom_docker_base_image
str
Erforderlich

Der Name des Docker-Images, mit dem das für das Training zu verwendende Image erstellt wird.

VERALTET. Verwenden Sie den Parameter custom_docker_image.

Wenn diese Einstellung nicht festgelegt ist, wird als Basisimage ein CPU-basiertes Standardimage verwendet.

custom_docker_image
str
Erforderlich

Der Name des Docker-Images, mit dem das für das Training zu verwendende Image erstellt wird. Wenn diese Einstellung nicht festgelegt ist, wird als Basisimage ein CPU-basiertes Standardimage verwendet.

image_registry_details
ContainerRegistry
Erforderlich

Die Details der Docker-Imageregistrierung

user_managed
bool
Erforderlich

Gibt an, ob Azure Machine Learning eine vorhandene Python-Umgebung wiederverwendet. Bei FALSE erstellt Azure Machine Learning eine Python-Umgebung basierend auf der Spezifikation der Conda-Abhängigkeiten.

conda_packages
list
Erforderlich

Eine Liste von Zeichenfolgen, die Conda-Pakete darstellen, die der Python-Umgebung für das Experiment hinzugefügt werden sollen

pip_packages
list
Erforderlich

Eine Liste von Zeichenfolgen, die pip-Pakete darstellen, die der Python-Umgebung für das Experiment hinzugefügt werden sollen

conda_dependencies_file_path
str
Erforderlich

Der relative Pfad zur YAML-Datei mit den Conda-Abhängigkeiten. Falls angegeben, installiert Azure Machine Learning keine frameworkbezogenen Pakete. VERALTET. Verwenden Sie den Parameter conda_dependencies_file.

pip_requirements_file_path
str
Erforderlich

Der relative Pfad zur Textdatei mit den pip-Anforderungen. Dieser kann in Kombination mit dem Parameter pip_packages bereitgestellt werden. VERALTET. Verwenden Sie den Parameter pip_requirements_file.

conda_dependencies_file
str
Erforderlich

Der relative Pfad zur YAML-Datei mit den Conda-Abhängigkeiten. Falls angegeben, installiert Azure Machine Learning keine frameworkbezogenen Pakete.

pip_requirements_file
str
Erforderlich

Der relative Pfad zur Textdatei mit den pip-Anforderungen. Dieser kann in Kombination mit dem Parameter pip_packages bereitgestellt werden.

environment_variables
dict
Erforderlich

Ein Wörterbuch mit Umgebungsvariablennamen und Werten. Diese Umgebungsvariablen werden für den Prozess festgelegt, in dem das Benutzerskript ausgeführt wird.

environment_definition
Environment
Erforderlich

Die Umgebungsdefinition für das Experiment Sie enthält PythonSection, DockerSection und Umgebungsvariablen. Jede Umgebungsoption, die nicht direkt über andere Parameter für die Erstellung des Schätzers verfügbar gemacht wird, kann mit diesem Parameter festgelegt werden. Wenn dieser Parameter angegeben wird, hat er Vorrang vor anderen umgebungsbezogenen Parametern wie use_gpu, custom_docker_image, conda_packages oder pip_packages. Bei ungültigen Parameterkombinationen werden Fehler gemeldet.

inputs
list
Erforderlich

Eine Liste von DataReference- oder DatasetConsumptionConfig-Objekten, die als Eingabe verwendet werden sollen.

source_directory_data_store
Datastore
Erforderlich

Der Sicherungsdatenspeicher für die Projektfreigabe.

shm_size
str
Erforderlich

Die Größe des freigegebenen Speicherblocks des Docker-Containers. Wenn diese Einstellung nicht festgelegt ist, wird die Standardgröße „azureml.core.environment._DEFAULT_SHM_SIZE“ verwendet. Weitere Informationen finden Sie in der Referenz zur Docker-Ausführung.

resume_from
DataPath
Erforderlich

Der Datenpfad, der die Prüfpunkt- oder Modelldateien enthält, aus denen das Experiment fortgesetzt werden soll

max_run_duration_seconds
int
Erforderlich

Die maximal zulässige Zeit für die Ausführung Azure Machine Learning versucht, die Ausführung automatisch abzubrechen, wenn sie länger dauert als dieser Wert angibt.

framework_version
str
Erforderlich

Die PyTorch-Version, die zum Ausführen des Trainingscodes verwendet werden soll. PyTorch.get_supported_versions() gibt eine Liste der vom aktuellen SDK unterstützten Versionen zurück.

source_directory
str
Erforderlich

Ein lokales Verzeichnis mit Konfigurationsdateien für Experimente.

compute_target
AbstractComputeTarget oder str
Erforderlich

Das Computeziel für das Training. Dies kann entweder ein Objekt oder die Zeichenfolge „local“ sein.

vm_size
str
Erforderlich

Die VM-Größe des Computeziels, das für das Training erstellt wird. Unterstützte Werte: beliebige Azure-VM-Größen.

vm_priority
str
Erforderlich

Die VM-Priorität des Computeziels, das für das Training erstellt wird. Wenn keine Angabe erfolgt, wird „dedicated“ verwendet.

Unterstützte Werte: „dedicated“ und „lowpriority“.

Wird nur angewandt, wenn vm_size param in der Eingabe angegeben wird.

entry_script
str
Erforderlich

Der relative Pfad zu der Datei, die das Trainingsskript enthält.

script_params
dict
Erforderlich

Ein Wörterbuch mit Befehlszeilenargumenten, die an das in entry_script angegebene Trainingsskript übergeben werden.

node_count
int
Erforderlich

Die Anzahl der Knoten am Computeziel, die für das Training verwendet werden. Wenn größer als 1, wird der verteilte Mpi-Auftrag ausgeführt. Für verteilte Aufträge wird nur das Ziel azureml.core.compute.AmlCompute unterstützt.

process_count_per_node
int
Erforderlich

Die Anzahl von Prozessen pro Knoten. Wenn der Wert größer als 1 ist, wird ein verteilter MPI-Auftrag ausgeführt. Für verteilte Aufträge wird nur das Ziel AmlCompute unterstützt.

distributed_backend
str
Erforderlich

Das Kommunikations-Back-End für das verteilte Training

VERALTET. Verwenden Sie den Parameter distributed_training.

Unterstützte Werte: „mpi“, „gloo“ und „nccl“.

„mpi“: MPI/Horovod „gloo“, „nccl“: natives verteiltes PyTorch-Training

Dieser Parameter ist erforderlich, wenn node_count oder process_count_per_node> 1 ist.

Wenn node_count == 1 und process_count_per_node == 1 ist, wird nur dann ein Back-End verwendet, wenn es explizit festgelegt wird. Für das verteilte Training wird nur das Ziel AmlCompute unterstützt.

distributed_training
Mpi oder Gloo oder Nccl
Erforderlich

Parameter zum Ausführen eines verteilten Trainingsauftrags.

Verwenden Sie zum Ausführen eines verteilten Auftrags mit MPI-Back-End das Mpi-Objekt, um process_count_per_node anzugeben. Verwenden Sie zum Ausführen eines verteilten Auftrags mit gloo-Back-End Gloo. Verwenden Sie zum Ausführen eines verteilten Auftrags mit nccl-Back-End Nccl.

use_gpu
bool
Erforderlich

Gibt an, ob die Umgebung, in der das Experiment ausgeführt werden soll, GPUs unterstützen soll. „True“ gibt an, dass ein GPU-basiertes Docker-Standardimage in der Umgebung verwendet wird. Bei „False“ wird ein CPU-basiertes Image verwendet. Docker-Standardimages (CPU oder GPU) werden nur verwendet, wenn der custom_docker_image-Parameter nicht festgelegt ist. Diese Einstellung wird nur bei Docker-fähigen Computezielen verwendet.

use_docker
bool
Erforderlich

Gibt an, ob die Umgebung, in der das Experiment ausgeführt werden soll, Docker-basiert sein soll.

custom_docker_base_image
str
Erforderlich

Der Name des Docker-Images, mit dem das für das Training zu verwendende Image erstellt wird.

VERALTET. Verwenden Sie den Parameter custom_docker_image.

Wenn diese Einstellung nicht festgelegt ist, wird als Basisimage ein CPU-basiertes Standardimage verwendet.

custom_docker_image
str
Erforderlich

Der Name des Docker-Images, mit dem das für das Training zu verwendende Image erstellt wird. Wenn diese Einstellung nicht festgelegt ist, wird als Basisimage ein CPU-basiertes Standardimage verwendet.

image_registry_details
ContainerRegistry
Erforderlich

Die Details der Docker-Imageregistrierung

user_managed
bool
Erforderlich

Gibt an, ob Azure Machine Learning eine vorhandene Python-Umgebung wiederverwendet. Bei FALSE erstellt Azure Machine Learning eine Python-Umgebung basierend auf der Spezifikation der Conda-Abhängigkeiten.

conda_packages
list
Erforderlich

Eine Liste von Zeichenfolgen, die Conda-Pakete darstellen, die der Python-Umgebung für das Experiment hinzugefügt werden sollen

pip_packages
list
Erforderlich

Eine Liste von Zeichenfolgen, die pip-Pakete darstellen, die der Python-Umgebung für das Experiment hinzugefügt werden sollen

conda_dependencies_file_path
str
Erforderlich

Der relative Pfad zur YAML-Datei mit den Conda-Abhängigkeiten. Falls angegeben, installiert Azure Machine Learning keine frameworkbezogenen Pakete. VERALTET. Verwenden Sie den Parameter conda_dependencies_file.

pip_requirements_file_path
str
Erforderlich

Der relative Pfad zur Textdatei mit den pip-Anforderungen. Dieser kann in Kombination mit dem Parameter pip_packages bereitgestellt werden. VERALTET. Verwenden Sie den Parameter pip_requirements_file.

conda_dependencies_file
str
Erforderlich

Der relative Pfad zur YAML-Datei mit den Conda-Abhängigkeiten. Falls angegeben, installiert Azure Machine Learning keine frameworkbezogenen Pakete.

pip_requirements_file
str
Erforderlich

Der relative Pfad zur Textdatei mit den pip-Anforderungen. Dieser kann in Kombination mit dem Parameter pip_packages bereitgestellt werden.

environment_variables
dict
Erforderlich

Ein Wörterbuch mit Umgebungsvariablennamen und Werten. Diese Umgebungsvariablen werden für den Prozess festgelegt, in dem das Benutzerskript ausgeführt wird.

environment_definition
Environment
Erforderlich

Die Umgebungsdefinition für das Experiment Sie enthält PythonSection, DockerSection und Umgebungsvariablen. Jede Umgebungsoption, die nicht direkt über andere Parameter für die Erstellung des Schätzers verfügbar gemacht wird, kann mit diesem Parameter festgelegt werden. Wenn dieser Parameter angegeben wird, hat er Vorrang vor anderen umgebungsbezogenen Parametern wie use_gpu, custom_docker_image, conda_packages oder pip_packages. Bei ungültigen Kombinationen werden Fehler gemeldet.

inputs
list
Erforderlich

Eine Liste der azureml.data.data_reference. DataReference-Objekte, die als Eingabe verwendet werden sollen.

source_directory_data_store
Datastore
Erforderlich

Der Sicherungsdatenspeicher für die Projektfreigabe.

shm_size
Erforderlich

Die Größe des freigegebenen Speicherblocks des Docker-Containers. Wenn diese Einstellung nicht festgelegt ist, wird die Standardgröße „azureml.core.environment._DEFAULT_SHM_SIZE“ verwendet. Weitere Informationen finden Sie unter

framework_version
str
Erforderlich

Die PyTorch-Version, die zum Ausführen des Trainingscodes verwendet werden soll. PyTorch.get_supported_versions() gibt eine Liste der vom aktuellen SDK unterstützten Versionen zurück.

_enable_optimized_mode
bool
Erforderlich

Aktivieren Sie den inkrementellen Umgebungsbuild mit vordefinierten Frameworkimages für eine schnellere Umgebungsvorbereitung. Ein vordefiniertes Frameworkimage basiert auf standardmäßigen CPU-/GPU-Basisimages von Azure ML mit vorinstallierten Frameworkabhängigkeiten.

_disable_validation
bool
Erforderlich

Deaktivieren Sie die Skriptüberprüfung, bevor Sie die Übermittlung ausführen. Der Standardwert ist True.

_show_lint_warnings
bool
Erforderlich

Skriptlintingwarnungen anzeigen. Die Standardeinstellung lautet „false“.

_show_package_warnings
bool
Erforderlich

Paketvalidierungswarnungen anzeigen. Die Standardeinstellung lautet „false“.

Hinweise

Beim Übermitteln eines Trainingsauftrags führt Azure Machine Learning Ihr Skript in einer Conda-Umgebung innerhalb eines Docker-Containers aus. Für PyTorch-Container werden die folgenden Abhängigkeiten installiert.

Abhängigkeiten | PyTorch 1.0/1.1/1.2/1.3/ | PyTorch 1.4/1.5/1.6 | ———————- | —————– | ————- | Python | 3.6.2 | 3.6.2 | CUDA (nur GPU-Image) | 10.0 | 10.1 | cuDNN (nur GPU-Image) | 7.6.3 | 7.6.3 | NCCL (nur GPU-Image) | 2.4.8 | 2.4.8 | azureml-defaults | Latest | Latest | 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 | torch | 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 |

Die Docker-Images erweitern Ubuntu 16.04.

Um zusätzliche Abhängigkeiten zu installieren, können Sie entweder den Parameter pip_packages oder den Parameter conda_packages verwenden. Sie können auch den Parameter pip_requirements_file oder conda_dependencies_file angeben. Alternativ können Sie ein eigenes Image erstellen und den Parameter custom_docker_image an den Estimator-Konstruktor übergeben.

Weitere Informationen zu Docker-Containern, die beim PyTorch-Training verwendet werden, finden Sie unter https://github.com/Azure/AzureML-Containers.

Der PyTorch-Schätzer unterstützt verteiltes Training über CPU- und GPU-Cluster hinweg mit Horovod, einem reduzierten Open-Source-Framework für verteiltes Training. Beispiele und weitere Informationen zur Verwendung von PyTorch beim verteilten Training finden Sie im Tutorial Trainieren und Registrieren von PyTorch-Modellen im großen Stil mit Azure Machine Learning.

Attribute

DEFAULT_VERSION

DEFAULT_VERSION = '1.4'

FRAMEWORK_NAME

FRAMEWORK_NAME = 'PyTorch'