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
str
Erforderlich

[Erforderlich] Der Name des Schritts.

hyperdrive_config
HyperDriveConfig
Erforderlich

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

estimator_entry_script_arguments
list
Standardwert: None

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.

outputs
list[Union[PipelineData, OutputDatasetConfig, PipelineOutputAbstractDataset, OutputPortBinding]]
Standardwert: None

Eine Liste mit Ausgabeportbindungen.

metrics_output
Union[PipelineData, DataReference, OutputPortBinding]
Standardwert: None

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

allow_reuse
bool
Standardwert: True

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
str
Standardwert: None

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

name
str
Erforderlich

[Erforderlich] Der Name des Schritts.

hyperdrive_config
HyperDriveConfig
Erforderlich

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

estimator_entry_script_arguments
list
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.

outputs
list[Union[PipelineData, PipelineOutputAbstractDataset, OutputPortBinding]]
Erforderlich

Eine Liste mit Ausgabeportbindungen.

metrics_output
Union[PipelineData, DataReference, OutputPortBinding]
Erforderlich

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

allow_reuse
bool
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
str
Erforderlich

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

graph
Graph
Erforderlich

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

default_datastore
Union[AbstractAzureStorageDatastore, AzureDataLakeDatastore]
Erforderlich

Der Standarddatenspeicher.

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

Der Graphkontext.

Gibt zurück

Der erstellte Knoten.

Rückgabetyp