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
|
[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
|
list[Union[InputPortBinding, PipelineOutputAbstractDataset, DataReference, PortDataReference, PipelineData, DatasetConsumptionConfig]]
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
|
Een optionele versietag om een wijziging in de functionaliteit voor de module aan te geven. Default value: None
|
name
Vereist
|
[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
|
list[Union[InputPortBinding, PipelineOutputAbstractDataset, DataReference, PortDataReference, PipelineData, DatasetConsumptionConfig]]
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
|
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. |