Delen via


HyperDriveStep Klas

Hiermee maakt u een Azure ML-pijplijnstap voor het uitvoeren van hyperparameters voor machine learning-modeltraining.

Zie het notebook https://aka.ms/pl-hyperdrivevoor een voorbeeld van het gebruik van HyperDriveStep.

Maak een Azure ML-pijplijnstap om hyperparameter-tunning uit te voeren voor machine learning-modeltraining.

Overname
HyperDriveStep

Constructor

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

Parameters

Name Description
name
Vereist
str

[Vereist] De naam van de stap.

hyperdrive_config
Vereist

[Vereist] Een HyperDriveConfig die de configuratie voor de HyperDrive-uitvoering definieert.

estimator_entry_script_arguments

Een lijst met opdrachtregelargumenten voor het invoerscript voor de estimator. Als het invoerscript van de estimator geen opdrachtregelargumenten accepteert, stelt u deze parameterwaarde in op een lege lijst.

Default value: None
inputs

Een lijst met invoerpoortbindingen.

Default value: None
outputs

Een lijst met uitvoerpoortbindingen

Default value: None
metrics_output

Optionele waarde die de locatie aangeeft voor het opslaan van metrische gegevens voor HyperDrive-uitvoering als een JSON-bestand.

Default value: None
allow_reuse

Hiermee wordt aangegeven of de stap eerdere resultaten opnieuw moet gebruiken wanneer deze opnieuw wordt uitgevoerd met dezelfde instellingen. Hergebruik is standaard ingeschakeld. Als de inhoud van de stap (scripts/afhankelijkheden) en de invoer en parameters ongewijzigd blijven, wordt de uitvoer van de vorige uitvoering van deze stap opnieuw gebruikt. Wanneer u de stap opnieuw gebruikt, worden de resultaten van de vorige uitvoering onmiddellijk beschikbaar gemaakt voor eventuele volgende stappen in plaats van de taak te verzenden om te berekenen. Als u Azure Machine Learning-gegevenssets als invoer gebruikt, wordt hergebruik bepaald door of de definitie van de gegevensset is gewijzigd, niet door of de onderliggende gegevens zijn gewijzigd.

Default value: True
version
str

Een optionele versietag om een wijziging in de functionaliteit voor de module aan te geven.

Default value: None
name
Vereist
str

[Vereist] De naam van de stap.

hyperdrive_config
Vereist

[Vereist] Een HyperDriveConfig die de configuratie voor de HyperDrive-uitvoering definieert.

estimator_entry_script_arguments
Vereist

Een lijst met opdrachtregelargumenten voor het invoerscript voor de estimator. Als het invoerscript van de estimator geen opdrachtregelargumenten accepteert, stelt u deze parameterwaarde in op een lege lijst.

inputs
Vereist

Een lijst met invoerpoortbindingen.

outputs
Vereist

Een lijst met uitvoerpoortbindingen.

metrics_output
Vereist

Een optionele waarde die de locatie aangeeft voor het opslaan van metrische gegevens voor HyperDrive-uitvoering als een JSON-bestand.

allow_reuse
Vereist

Hiermee wordt aangegeven of de stap eerdere resultaten opnieuw moet gebruiken wanneer deze opnieuw wordt uitgevoerd met dezelfde instellingen. Hergebruik is standaard ingeschakeld. Als de inhoud van de stap (scripts/afhankelijkheden) en de invoer en parameters ongewijzigd blijven, wordt de uitvoer van de vorige uitvoering van deze stap opnieuw gebruikt. Wanneer u de stap opnieuw gebruikt, worden de resultaten van de vorige uitvoering onmiddellijk beschikbaar gemaakt voor eventuele volgende stappen in plaats van de taak te verzenden om te berekenen. Als u Azure Machine Learning-gegevenssets als invoer gebruikt, wordt hergebruik bepaald door of de definitie van de gegevensset is gewijzigd, niet door of de onderliggende gegevens zijn gewijzigd.

version
Vereist
str

versie

Opmerkingen

Houd er rekening mee dat de argumenten voor het invoerscript dat wordt gebruikt in het estimator-object (bijvoorbeeld het TensorFlow object) moeten worden opgegeven als lijst met behulp van de estimator_entry_script_arguments parameter bij het instantiëren van een HyperDriveStep. De parameter script_params estimator accepteert een woordenlijst. Parameter estimator_entry_script_argument verwacht echter argumenten als een lijst.

De HyperDriveStep-initialisatie omvat het opgeven van DataReference een lijst met objecten met de inputs parameter . In Azure ML Pipelines kan een pijplijnstap de uitvoer van een andere stap of DataReference-objecten als invoer gebruiken. Daarom moeten bij het maken van een HyperDriveStap de inputs parameters en outputs expliciet worden ingesteld, waardoor de parameter die is opgegeven in het Estimator-object wordt overschreven inputs .

De best practice voor het werken met HyperDriveStep is om een afzonderlijke map te gebruiken voor scripts en afhankelijke bestanden die zijn gekoppeld aan de stap, en die map op te geven als de van het estimator-object source_directory. Zie bijvoorbeeld de source_directory parameter van de TensorFlow klasse. Dit heeft twee voordelen. Ten eerste helpt het de grootte te verkleinen van de momentopname die voor de stap is gemaakt, omdat alleen de momentopnamen worden gemaakt die nodig zijn voor de stap. Ten tweede kan de uitvoer van de stap van een vorige uitvoering opnieuw worden gebruikt als er geen wijzigingen zijn in de source_directory die een herupload van de snaphot activeren.

In het volgende voorbeeld ziet u hoe u HyperDriveStep gebruikt in een Azure Machine Learning-pijplijn.


   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])

Volledig voorbeeld is beschikbaar via 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

Maak een knooppunt op basis van de HyperDrive-stap en voeg deze toe aan de opgegeven grafiek.

Deze methode is niet bedoeld om rechtstreeks te worden gebruikt. Wanneer een pijplijn wordt geïnstantieerd met deze stap, geeft Azure ML automatisch de vereiste parameters door via deze methode, zodat deze stap kan worden toegevoegd aan een pijplijngrafiek die de werkstroom vertegenwoordigt.

create_node

Maak een knooppunt op basis van de HyperDrive-stap en voeg deze toe aan de opgegeven grafiek.

Deze methode is niet bedoeld om rechtstreeks te worden gebruikt. Wanneer een pijplijn wordt geïnstantieerd met deze stap, geeft Azure ML automatisch de vereiste parameters door via deze methode, zodat deze stap kan worden toegevoegd aan een pijplijngrafiek die de werkstroom vertegenwoordigt.

create_node(graph, default_datastore, context)

Parameters

Name Description
graph
Vereist

Het grafiekobject waaraan u het knooppunt wilt toevoegen.

default_datastore
Vereist

Het standaardgegevensarchief.

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

De grafiekcontext.

Retouren

Type Description

Het gemaakte knooppunt.