Freigeben über


HyperDriveStep Klasse

Erstellen eines Azure Machine Learning-Pipelineschritts zum Ausführen der Hyperparameteroptimierung für das Training von Machine Learning-Modellen.

Ein Beispiel für die Verwendung von HyperDriveStep finden Sie im Notebook https://aka.ms/pl-hyperdrive.

Erstellen Sie einen Azure ML-Pipelineschritt, um hyperparametertunning für das Machine Learning-Modelltraining auszuführen.

Vererbung
HyperDriveStep

Konstruktor

HyperDriveStep(name, hyperdrive_config, estimator_entry_script_arguments=None, inputs=None, outputs=None, metrics_output=None, allow_reuse=True, version=None)

Parameter

Name Beschreibung
name
Erforderlich
str

[Erforderlich] Der Name des Schritts.

hyperdrive_config
Erforderlich

[Erforderlich] Eine HyperDriveConfig, die die Konfiguration für die HyperDrive-Ausführung definiert.

estimator_entry_script_arguments

Eine Liste von Befehlszeilenargumenten für das Einstiegsskript des Schätzers. Wenn das Eingabeskript des Schätzers keine Befehlszeilenargumente akzeptiert, legen Sie diesen Parameterwert auf eine leere Liste fest.

Standardwert: None
inputs

Eine Liste mit Eingabeportbindungen.

Standardwert: None
outputs

Eine Liste mit Ausgabeportbindungen.

Standardwert: None
metrics_output

Optionaler Wert, der den Speicherort für HyperDrive-Ausführungsmetriken als JSON-Datei angibt.

Standardwert: None
allow_reuse

Gibt an, ob bei dem Schritt vorherige Ergebnisse wiederverwendet werden sollen, wenn er mit den gleichen Einstellungen erneut ausgeführt wird. Die Wiederverwendung ist standardmäßig aktiviert. Wenn der Schrittinhalt (Skripts/Abhängigkeiten) sowie die Eingaben und Parameter unverändert bleiben, wird die Ausgabe der vorherigen Ausführung dieses Schritts wiederverwendet. Wenn Sie den Schritt wiederverwenden, anstatt den Auftrag zum Berechnen zu übermitteln, werden die Ergebnisse der vorherigen Ausführung sofort für alle nachfolgenden Schritte verfügbar gemacht. Wenn Sie Azure Machine Learning-Datasets als Eingaben verwenden, hängt die Wiederverwendung nicht davon ab, ob sich die zugrunde liegenden Daten geändert haben, sondern davon, ob sich die Definition des Datasets geändert hat.

Standardwert: True
version
str

Ein optionales Versionstag, um eine Änderung der Funktionalität für das Modul zu kennzeichnen.

Standardwert: None
name
Erforderlich
str

[Erforderlich] Der Name des Schritts.

hyperdrive_config
Erforderlich

[Erforderlich] Eine HyperDriveConfig, die die Konfiguration für die HyperDrive-Ausführung definiert.

estimator_entry_script_arguments
Erforderlich

Eine Liste von Befehlszeilenargumenten für das Einstiegsskript des Schätzers. Wenn das Eingabeskript des Schätzers keine Befehlszeilenargumente akzeptiert, legen Sie diesen Parameterwert auf eine leere Liste fest.

inputs
Erforderlich

Eine Liste mit Eingabeportbindungen.

outputs
Erforderlich

Eine Liste mit Ausgabeportbindungen.

metrics_output
Erforderlich

Ein optionaler Wert, der den Speicherort zum Speichern von HyperDrive-Ausführungsmetriken als JSON-Datei angibt.

allow_reuse
Erforderlich

Gibt an, ob bei dem Schritt vorherige Ergebnisse wiederverwendet werden sollen, wenn er mit den gleichen Einstellungen erneut ausgeführt wird. Die Wiederverwendung ist standardmäßig aktiviert. Wenn der Schrittinhalt (Skripts/Abhängigkeiten) sowie die Eingaben und Parameter unverändert bleiben, wird die Ausgabe der vorherigen Ausführung dieses Schritts wiederverwendet. Wenn Sie den Schritt wiederverwenden, anstatt den Auftrag zum Berechnen zu übermitteln, werden die Ergebnisse der vorherigen Ausführung sofort für alle nachfolgenden Schritte verfügbar gemacht. Wenn Sie Azure Machine Learning-Datasets als Eingaben verwenden, hängt die Wiederverwendung nicht davon ab, ob sich die zugrunde liegenden Daten geändert haben, sondern davon, ob sich die Definition des Datasets geändert hat.

version
Erforderlich
str

version

Hinweise

Beachten Sie, dass die Argumente für das im estimator-Objekt (z. B. das TensorFlow-Objekt) verwendete Einstiegsskript beim Instanziieren eines HyperDriveStep als Liste mithilfe des estimator_entry_script_arguments-Parameters angegeben werden müssen. Der Estimator-Parameter script_params akzeptiert ein Wörterbuch. Der estimator_entry_script_argument-Parameter erwartet jedoch die Argumente als Liste.

Die HyperDriveStep-Initialisierung umfasst die Angabe einer Liste von DataReference-Objekten mit dem inputs-Parameter. In Azure ML-Pipelines kann ein Pipelineschritt die Ausgabe eines anderen Schritts oder DataReference-Objekte als Eingabe verwenden. Daher müssen beim Erstellen eines HyperDriveStep die Parameter inputs und outputs explizit festgelegt werden, wodurch der im Estimator-Objekt angegebene inputs-Parameter überschrieben wird.

Als bewährte Methode für die Arbeit mit HyperDriveStep gilt die Verwendung eines separaten Ordners für Skripts und alle abhängigen Dateien, die dem Schritt zugeordnet sind, und das Angeben dieses Ordners als source_directory des estimator-Objekts. Ein Beispiel finden Sie unter dem source_directory-Parameter der TensorFlow-Klasse. Dies bietet zwei Vorteile. Erstens kann die Größe der für den Schritt erstellten Momentaufnahme reduziert werden, da nur die für den Schritt benötigte Momentaufnahme erstellt wird. Zweitens kann die Ausgabe des Schritts aus einer vorherigen Ausführung wiederverwendet werden, wenn keine Änderungen am source_directory vorgenommen wurden, die einen erneuten Upload der Momentaufnahme auslösen würden.

Das folgende Beispiel zeigt die Verwendung von HyperDriveStep in einer Azure Machine Learning-Pipeline.


   metrics_output_name = 'metrics_output'
   metrics_data = PipelineData(name='metrics_data',
                               datastore=datastore,
                               pipeline_output_name=metrics_output_name,
                               training_output=TrainingOutput("Metrics"))

   model_output_name = 'model_output'
   saved_model = PipelineData(name='saved_model',
                               datastore=datastore,
                               pipeline_output_name=model_output_name,
                               training_output=TrainingOutput("Model",
                                                              model_file="outputs/model/saved_model.pb"))

   hd_step_name='hd_step01'
   hd_step = HyperDriveStep(
       name=hd_step_name,
       hyperdrive_config=hd_config,
       inputs=[data_folder],
       outputs=[metrics_data, saved_model])

Das vollständige Beispiel finden Sie unter https://github.com/Azure/MachineLearningNotebooks/blob/master/how-to-use-azureml/machine-learning-pipelines/intro-to-pipelines/aml-pipelines-parameter-tuning-with-hyperdrive.ipynb.

Methoden

create_node

Erstellt einen Knoten aus dem HyperDrive-Schritt und fügt ihn dem angegebenen Graphen hinzu.

Diese Methode ist nicht für die direkte Nutzung vorgesehen. Wenn eine Pipeline mit diesem Schritt instanziiert wird, werden von Azure ML automatisch die für diese Methode erforderlichen Parameter übergeben, damit der Schritt einem Pipelinegraphen hinzugefügt werden kann, der den Workflow darstellt.

create_node

Erstellt einen Knoten aus dem HyperDrive-Schritt und fügt ihn dem angegebenen Graphen hinzu.

Diese Methode ist nicht für die direkte Nutzung vorgesehen. Wenn eine Pipeline mit diesem Schritt instanziiert wird, werden von Azure ML automatisch die für diese Methode erforderlichen Parameter übergeben, damit der Schritt einem Pipelinegraphen hinzugefügt werden kann, der den Workflow darstellt.

create_node(graph, default_datastore, context)

Parameter

Name Beschreibung
graph
Erforderlich

Das Graphobjekt, dem der Knoten hinzugefügt werden soll.

default_datastore
Erforderlich

Der Standarddatenspeicher.

context
Erforderlich
<xref:azureml.pipeline.core._GraphContext>

Der Graphkontext.

Gibt zurück

Typ Beschreibung

Der erstellte Knoten.