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
- hyperdrive_config
- HyperDriveConfig
[Erforderlich] Eine HyperDriveConfig, die die Konfiguration für die HyperDrive-Ausführung definiert.
- estimator_entry_script_arguments
- list
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
- list[Union[InputPortBinding, PipelineOutputAbstractDataset, DataReference, PortDataReference, PipelineData, DatasetConsumptionConfig]]
Eine Liste mit Eingabeportbindungen.
- outputs
- list[Union[PipelineData, OutputDatasetConfig, PipelineOutputAbstractDataset, OutputPortBinding]]
Eine Liste mit Ausgabeportbindungen.
- metrics_output
- Union[PipelineData, DataReference, OutputPortBinding]
Optionaler Wert, der den Speicherort für HyperDrive-Ausführungsmetriken als JSON-Datei angibt.
- allow_reuse
- bool
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
Ein optionales Versionstag, um eine Änderung der Funktionalität für das Modul zu kennzeichnen.
- hyperdrive_config
- HyperDriveConfig
[Erforderlich] Eine HyperDriveConfig, die die Konfiguration für die HyperDrive-Ausführung definiert.
- estimator_entry_script_arguments
- list
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
- list[Union[InputPortBinding, PipelineOutputAbstractDataset, DataReference, PortDataReference, PipelineData, DatasetConsumptionConfig]]
Eine Liste mit Eingabeportbindungen.
Eine Liste mit Ausgabeportbindungen.
- metrics_output
- Union[PipelineData, DataReference, OutputPortBinding]
Ein optionaler Wert, der den Speicherort zum Speichern von HyperDrive-Ausführungsmetriken als JSON-Datei angibt.
- allow_reuse
- bool
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.
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
- default_datastore
- Union[AbstractAzureStorageDatastore, AzureDataLakeDatastore]
Der Standarddatenspeicher.
- context
- <xref:azureml.pipeline.core._GraphContext>
Der Graphkontext.
Gibt zurück
Der erstellte Knoten.
Rückgabetyp
Feedback
https://aka.ms/ContentUserFeedback.
Bald verfügbar: Im Laufe des Jahres 2024 werden wir GitHub-Issues stufenweise als Feedbackmechanismus für Inhalte abbauen und durch ein neues Feedbacksystem ersetzen. Weitere Informationen finden Sie unterFeedback senden und anzeigen für