RunConfiguration Klasse
Stellt die Konfiguration für Experimentläufe dar, die auf unterschiedliche Computeziele in Azure Machine Learning abzielen.
Das RunConfiguration -Objekt kapselt die informationen, die zum Übermitteln einer Schulung in einem Experiment erforderlich sind. In der Regel erstellen Sie kein RunConfiguration-Objekt direkt, sondern rufen ein Objekt aus einer Methode ab, die es zurückgibt, z. B. die submit Methode der Experiment Klasse.
RunConfiguration ist eine Basisumgebungskonfiguration, die auch in anderen Arten von Konfigurationsschritten verwendet wird, die von der Art der Ausführung abhängen, die Sie auslösen. Wenn Sie beispielsweise ein PythonScriptStepObjekt einrichten, können Sie auf das RunConfiguration-Objekt des Schritts zugreifen und Conda-Abhängigkeiten konfigurieren oder auf die Umgebungseigenschaften für die Ausführung zugreifen.
Beispiele für Ausführungskonfigurationen finden Sie unter Auswählen und Verwenden eines Computeziels zum Trainieren Ihres Modells.
Initialisieren Sie eine RunConfiguration mit den Standardeinstellungen.
Konstruktor
RunConfiguration(script=None, arguments=None, framework=None, communicator=None, conda_dependencies=None, _history_enabled=None, _path=None, _name=None, command=None)
Parameter
| Name | Beschreibung |
|---|---|
|
script
|
Der relative Pfad zur Python-Skriptdatei. Der Dateipfad ist relativ zum Quellverzeichnis, das an submit. Standardwert: None
|
|
arguments
|
Befehlszeilenargumente für die Python-Skriptdatei. Standardwert: None
|
|
framework
|
Das zielorientierte Framework, das in der Ausführung verwendet wird. Unterstützte Frameworks sind Python, PySpark, TensorFlow und PyTorch. Standardwert: None
|
|
communicator
|
Der kommunikator, der in der Ausführung verwendet wird. Die unterstützten Communicators sind None, ParameterServer, OpenMpi und IntelMpi. Beachten Sie, dass OpenMpi ein benutzerdefiniertes Image erfordert, auf dem OpenMpi installiert ist. Verwenden Sie ParameterServer oder OpenMpi für AmlCompute-Cluster. Verwenden Sie IntelMpi für verteilte Schulungsaufträge. Standardwert: None
|
|
conda_dependencies
|
Wenn der Standardwert von False links ist, erstellt das System eine Python-Umgebung, die die in Standardwert: None
|
|
auto_prepare_environment
Erforderlich
|
VERALTET. Diese Einstellung wird nicht mehr verwendet. |
|
command
|
Der Befehl, der für die Ausführung übermittelt werden soll. Die Befehlseigenschaft kann auch anstelle von Skripts/Argumenten verwendet werden. Sowohl Befehls- als auch Skript-/Argumenteigenschaften können nicht zusammen verwendet werden, um eine Ausführung zu übermitteln. So übermitteln Sie eine Skriptdatei mithilfe der Befehlseigenschaft - ['python', 'train.py', '–arg1', arg1_val] So führen Sie einen tatsächlichen Befehl aus – ['ls'] Standardwert: None
|
|
_history_enabled
|
Standardwert: None
|
|
_path
|
Standardwert: None
|
|
_name
|
Standardwert: None
|
Hinweise
Wir erstellen Machine Learning-Systeme in der Regel, um ein bestimmtes Problem zu lösen. Beispielsweise könnten wir daran interessiert sein, das beste Modell zu finden, das Webseiten bewertet, die als Suchergebnisse bereitgestellt werden können, die einer Abfrage entsprechen. Unsere Suche nach dem besten Machine Learning-Modell erfordert möglicherweise, dass wir verschiedene Algorithmen ausprobieren oder verschiedene Parametereinstellungen in Betracht ziehen usw.
Im Azure Machine Learning SDK verwenden wir das Konzept eines Experiments, um die Vorstellung zu erfassen, dass verschiedene Schulungsläufe mit dem Problem zusammenhängen, das sie lösen möchten. Anschließend Experiment fungiert ein logischer Container für diese Trainingsläufe, wodurch es einfacher ist, den Fortschritt über Trainingsläufe hinweg nachzuverfolgen, zwei Trainingsläufe direkt zu vergleichen usw.
Die RunConfiguration kapselt die Ausführungsumgebungseinstellungen, die zum Übermitteln einer Schulung in einem Experiment erforderlich sind. Es erfasst sowohl die gemeinsame Struktur von Schulungsläufen, die entwickelt wurden, um dasselbe Machine Learning-Problem zu lösen, als auch die Unterschiede in den Konfigurationsparametern (z. B. Lernrate, Verlustfunktion usw.), die unterschiedliche Trainingsläufe voneinander unterscheiden.
In typischen Schulungsszenarien wird RunConfiguration verwendet, indem ein ScriptRunConfig Objekt erstellt wird, das ein RunConfiguration-Objekt und ein Ausführungsskript für Schulungen zusammenpackt.
Die Konfiguration von RunConfiguration umfasst:
Bündeln des Experimentquellverzeichnisses einschließlich des übermittelten Skripts.
Festlegen der Befehlszeilenargumente für das übermittelte Skript.
Konfigurieren des Pfads für den Python-Dolmetscher.
Abrufen der Conda-Konfiguration zum Verwalten der Anwendungsabhängigkeiten. Der Auftragsübermittlungsprozess kann die Konfiguration verwenden, um eine temporäre Conda-Umgebung bereitzustellen und die Anwendung zu starten. Die temporären Umgebungen werden in nachfolgenden Ausführungen zwischengespeichert und wiederverwendet.
Optionale Verwendung von Docker und benutzerdefinierten Basisimages.
Optionale Auswahl der Übermittlung des Experiments an mehrere Arten von Azure Compute.
Optionale Konfiguration der Materialisierung von Eingaben und Hochladen von Ausgaben.
Erweiterte Laufzeiteinstellungen für allgemeine Laufzeiten wie Spark und Tensorflow.
Das folgende Beispiel zeigt, wie Sie ein Schulungsskript auf Ihrem lokalen Computer übermitteln.
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)
Das folgende Beispiel zeigt, wie Sie mithilfe der Befehlseigenschaft anstelle von Skript und Argumenten ein Schulungsskript auf Ihrem Cluster übermitteln.
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)
Das folgende Beispiel zeigt, wie Sie einen Befehl auf Ihrem Cluster ausführen.
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)
Variablen
| Name | Beschreibung |
|---|---|
|
environment
|
Die Umgebungsdefinition. Dieses Feld konfiguriert die Python-Umgebung. Es kann so konfiguriert werden, dass eine vorhandene Python-Umgebung verwendet oder konfiguriert wird, um eine temporäre Umgebung für das Experiment einzurichten. Die Definition ist auch für das Festlegen der erforderlichen Anwendungsabhängigkeiten verantwortlich. |
|
max_run_duration_seconds
|
Die maximal zulässige Zeit für die Ausführung. Das System versucht, die Ausführung automatisch abzubrechen, wenn dieser Wert länger dauerte. |
|
node_count
|
Die Anzahl von Knoten, die für den Auftrag verwendet werden sollen. |
|
priority
|
Die Priorität des Auftrags für die Terminplanungsrichtlinie. |
|
history
|
Der Konfigurationsabschnitt, der zum Deaktivieren und Aktivieren der Features für die Protokollierung des Experimentverlaufs verwendet wird. |
|
spark
|
Wenn die Plattform auf PySpark festgelegt ist, wird der Spark-Konfigurationsabschnitt verwendet, um den Standardmäßigen SparkConf für den übermittelten Auftrag festzulegen. |
|
hdi
|
Der HDI-Konfigurationsabschnitt wird nur wirksam, wenn das Ziel auf eine Azure HDI-Berechnung festgelegt ist. Die HDI-Konfiguration wird verwendet, um den YARN-Bereitstellungsmodus festzulegen. Der Standardmäßige Bereitstellungsmodus ist Cluster. |
|
docker
|
Der Abschnitt "Docker-Konfiguration" wird verwendet, um Variablen für die Docker-Umgebung festzulegen. |
|
tensorflow
|
Der Konfigurationsabschnitt zum Konfigurieren verteilter TensorFlow-Parameter.
Dieser Parameter wird nur wirksam, wenn der |
|
mpi
|
Der Konfigurationsabschnitt zum Konfigurieren verteilter MPI-Auftragsparameter.
Dieser Parameter wird nur wirksam, wenn der |
|
pytorch
|
Der Konfigurationsabschnitt zum Konfigurieren verteilter PyTorch-Auftragsparameter.
Dieser Parameter wird nur wirksam, wenn der |
|
paralleltask
|
Der Konfigurationsabschnitt zum Konfigurieren verteilter Paralleltaskauftragsparameter.
Dieser Parameter wird nur wirksam, wenn der |
|
data_references
|
Alle Datenquellen sind für die Ausführung während der Ausführung verfügbar, basierend auf jeder Konfiguration. Für jedes Element des Wörterbuchs ist der Schlüssel ein Name der Datenquelle, und der Wert ist ein DataReferenceConfiguration. |
|
data
|
Alle Daten, die während der Ausführung zur Verfügung gestellt werden sollen. |
|
datacaches
|
<xref:buildin.list>[DatacacheConfiguration]
Alle Daten, die datencache für die Ausführung während der Ausführung verfügbar machen sollen. |
|
output_data
|
Alle Ausgaben, die für diese Ausführung hochgeladen und nachverfolgt werden sollen. |
|
source_directory_data_store
|
Der Sicherungsdatenspeicher für die Projektfreigabe. |
|
amlcompute
|
Die Details des Computeziels, das während des Experiments erstellt werden soll. Die Konfiguration wird nur wirksam, wenn das Computeziel AmlCompute ist. |
|
kubernetescompute
|
Die Details des Computeziels, das während des Experiments verwendet werden soll. Die Konfiguration wird nur wirksam, wenn das Computeziel KubernetesCompute ist. |
|
services
|
Endpunkte, die mit der Computeressource interaktiv sind. Zulässige Endpunkte sind Jupyter, JupyterLab, VS Code, Tensorboard, SSH und benutzerdefinierte Ports. |
Methoden
| delete |
Löschen Sie eine Ausführungskonfigurationsdatei. Löst ein UserErrorException , wenn die Konfigurationsdatei nicht gefunden wird. |
| load |
Laden Sie eine zuvor gespeicherte Ausführungskonfigurationsdatei aus einer Datenträgerdatei. Wenn Wenn |
| save |
Speichern Sie die RunConfiguration auf einer Datei auf dem Datenträger. A UserErrorException wird ausgelöst, wenn:
Wenn Wenn Diese Methode ist hilfreich beim manuellen Bearbeiten der Konfiguration oder beim Freigeben der Konfiguration mit der CLI. |
delete
Löschen Sie eine Ausführungskonfigurationsdatei.
Löst ein UserErrorException , wenn die Konfigurationsdatei nicht gefunden wird.
static delete(path, name)
Parameter
| Name | Beschreibung |
|---|---|
|
path
Erforderlich
|
Ein Benutzer hat das Stammverzeichnis für Ausführungskonfigurationen ausgewählt. In der Regel ist dies das Git-Repository oder das Python-Projektstammverzeichnis. Die Konfiguration wird aus einem Unterverzeichnis namens ".azureml" gelöscht. |
|
name
Erforderlich
|
Der Name der Konfigurationsdatei. |
Ausnahmen
| Typ | Beschreibung |
|---|---|
|
UserErrorException
|
load
Laden Sie eine zuvor gespeicherte Ausführungskonfigurationsdatei aus einer Datenträgerdatei.
Wenn path sie auf eine Datei verweist, wird die RunConfiguration aus dieser Datei geladen.
Wenn path sie auf ein Verzeichnis verweist, das ein Projektverzeichnis sein soll, wird die RunConfiguration aus <"path>/.azureml/name</><path>/aml_config/<name>" geladen.
static load(path, name=None)
Parameter
| Name | Beschreibung |
|---|---|
|
path
Erforderlich
|
Ein Benutzer hat das Stammverzeichnis für Ausführungskonfigurationen ausgewählt. In der Regel ist dies das Git-Repository oder das Python-Projektstammverzeichnis. Aus Gründen der Abwärtskompatibilität wird die Konfiguration auch aus AZUREML oder aml_config Unterverzeichnis geladen. Wenn sich die Datei nicht in diesen Verzeichnissen befindet, wird die Datei aus dem angegebenen Pfad geladen. |
|
name
|
Der Name der Konfigurationsdatei. Standardwert: None
|
Gibt zurück
| Typ | Beschreibung |
|---|---|
|
Das Ausführungskonfigurationsobjekt. |
save
Speichern Sie die RunConfiguration auf einer Datei auf dem Datenträger.
A UserErrorException wird ausgelöst, wenn:
Die RunConfiguration kann nicht mit dem angegebenen Namen gespeichert werden.
Es wurde kein
nameParameter angegeben.Der
pathParameter ist ungültig.
Wenn path das Format <dir_path>/<file_name> ist, wobei <dir_path> ein gültiges Verzeichnis ist, wird die RunConfiguration unter <dir_path>/<file_name> gespeichert.
Wenn path sie auf ein Verzeichnis verweist, das ein Projektverzeichnis sein soll, wird "RunConfiguration" unter <"path>/.azureml/name</><path>/aml_config/<name>" gespeichert.
Diese Methode ist hilfreich beim manuellen Bearbeiten der Konfiguration oder beim Freigeben der Konfiguration mit der CLI.
save(path=None, name=None, separate_environment_yaml=False)
Parameter
| Name | Beschreibung |
|---|---|
|
separate_environment_yaml
|
Gibt an, ob die Conda-Umgebungskonfiguration gespeichert werden soll. Bei "True" wird die Conda-Umgebungskonfiguration in einer YAML-Datei namens "environment.yml" gespeichert. Standardwert: False
|
|
path
|
Ein Benutzer hat das Stammverzeichnis für Ausführungskonfigurationen ausgewählt. In der Regel ist dies das Git-Repository oder das Python-Projektstammverzeichnis. Die Konfiguration wird in einem Unterverzeichnis namens ".azureml" gespeichert. Standardwert: None
|
|
name
|
[Erforderlich] Der Name der Konfigurationsdatei. Standardwert: None
|
Gibt zurück
| Typ | Beschreibung |
|---|---|
Attribute
auto_prepare_environment
Rufen Sie den auto_prepare_environment Parameter ab. Dies ist eine veraltete und nicht verwendete Einstellung.
environment_variables
target
Rufen Sie das Computeziel ab, in dem der Auftrag für die Ausführung geplant ist.
Das Standardziel ist "lokal", das auf den lokalen Computer verweist. Verfügbare Cloud-Computeziele können mithilfe der Funktion compute_targetsgefunden werden.
Gibt zurück
| Typ | Beschreibung |
|---|---|
|
Der Zielname |