HyperDriveStep Klasa

Tworzy krok potoku usługi Azure ML w celu uruchomienia łączenia hiperparametrów na potrzeby trenowania modelu usługi Machine Learning.

Przykład użycia funkcji HyperDriveStep można znaleźć w notesie https://aka.ms/pl-hyperdrive.

Utwórz krok potoku usługi Azure ML, aby uruchomić kwantowanie hiperparametryczne na potrzeby trenowania modelu usługi Machine Learning.

Dziedziczenie
HyperDriveStep

Konstruktor

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

Parametry

name
str
Wymagane

[Wymagane] Nazwa kroku.

hyperdrive_config
HyperDriveConfig
Wymagane

[Wymagane] Funkcja HyperDriveConfig, która definiuje konfigurację przebiegu funkcji HyperDrive.

estimator_entry_script_arguments
list
wartość domyślna: None

Lista argumentów wiersza polecenia dla skryptu wpisu narzędzia do szacowania. Jeśli skrypt wejściowy narzędzia do szacowania nie akceptuje argumentów wiersza polecenia, ustaw tę wartość parametru na pustą listę.

inputs
list[Union[InputPortBinding, PipelineOutputAbstractDataset, DataReference, PortDataReference, PipelineData, DatasetConsumptionConfig]]
wartość domyślna: None

Lista powiązań portów wejściowych.

outputs
list[Union[PipelineData, OutputDatasetConfig, PipelineOutputAbstractDataset, OutputPortBinding]]
wartość domyślna: None

Lista powiązań portów wyjściowych

metrics_output
Union[PipelineData, DataReference, OutputPortBinding]
wartość domyślna: None

Opcjonalna wartość określająca lokalizację do przechowywania metryk uruchamiania funkcji HyperDrive jako pliku JSON.

allow_reuse
bool
wartość domyślna: True

Wskazuje, czy krok powinien ponownie używać poprzednich wyników po ponownym uruchomieniu z tymi samymi ustawieniami. Ponowne użycie jest domyślnie włączone. Jeśli zawartość kroku (skrypty/zależności) oraz dane wejściowe i parametry pozostają niezmienione, dane wyjściowe z poprzedniego uruchomienia tego kroku są ponownie używane. Podczas ponownego wykonywania kroku zamiast przesyłania zadania do obliczeń wyniki z poprzedniego przebiegu są natychmiast udostępniane wszystkim kolejnym krokom. Jeśli używasz zestawów danych usługi Azure Machine Learning jako danych wejściowych, ponowne użycie zależy od tego, czy definicja zestawu danych uległa zmianie, a nie przez to, czy dane bazowe uległy zmianie.

version
str
wartość domyślna: None

Opcjonalny tag wersji, aby oznaczyć zmianę funkcji modułu.

name
str
Wymagane

[Wymagane] Nazwa kroku.

hyperdrive_config
HyperDriveConfig
Wymagane

[Wymagane] Funkcja HyperDriveConfig, która definiuje konfigurację przebiegu funkcji HyperDrive.

estimator_entry_script_arguments
list
Wymagane

Lista argumentów wiersza polecenia dla skryptu wpisu narzędzia do szacowania. Jeśli skrypt wejściowy narzędzia do szacowania nie akceptuje argumentów wiersza polecenia, ustaw tę wartość parametru na pustą listę.

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

Lista powiązań portów wyjściowych.

metrics_output
Union[PipelineData, DataReference, OutputPortBinding]
Wymagane

Opcjonalna wartość określająca lokalizację do przechowywania metryk uruchamiania funkcji HyperDrive jako pliku JSON.

allow_reuse
bool
Wymagane

Wskazuje, czy krok powinien ponownie używać poprzednich wyników po ponownym uruchomieniu z tymi samymi ustawieniami. Ponowne użycie jest domyślnie włączone. Jeśli zawartość kroku (skrypty/zależności) oraz dane wejściowe i parametry pozostają niezmienione, dane wyjściowe z poprzedniego uruchomienia tego kroku są ponownie używane. Podczas ponownego wykonywania kroku zamiast przesyłania zadania do obliczeń wyniki z poprzedniego przebiegu są natychmiast udostępniane wszystkim kolejnym krokom. Jeśli używasz zestawów danych usługi Azure Machine Learning jako danych wejściowych, ponowne użycie zależy od tego, czy definicja zestawu danych uległa zmianie, a nie przez to, czy dane bazowe uległy zmianie.

version
str
Wymagane

Wersja

Uwagi

Należy pamiętać, że argumenty skryptu wejściowego używanego w obiekcie narzędzia do szacowania (np TensorFlow . obiekt) muszą być określone jako lista przy użyciu parametru estimator_entry_script_arguments podczas tworzenia wystąpienia obiektu HyperDriveStep. Parametr script_params narzędzia do szacowania akceptuje słownik. estimator_entry_script_argument Jednak parametr oczekuje argumentów jako listy.

Inicjowanie funkcji HyperDriveStep obejmuje określenie listy DataReference obiektów z parametrem inputs . W usłudze Azure ML Pipelines krok potoku może wykonać dane wyjściowe innego kroku lub obiekty DataReference jako dane wejściowe. W związku z tym podczas tworzenia funkcji HyperDriveStep inputs parametry i outputs należy ustawić jawnie, co zastępuje inputs parametr określony w obiekcie narzędzia do szacowania.

Najlepszym rozwiązaniem do pracy z funkcją HyperDriveStep jest użycie oddzielnego folderu dla skryptów i wszelkich plików zależnych skojarzonych z krokiem, a następnie określenie tego folderu jako obiektu source_directorynarzędzia do szacowania . Na przykład zobacz source_directory parametr TensorFlow klasy . Ma to dwie korzyści. Najpierw pomaga zmniejszyć rozmiar migawki utworzonej dla kroku, ponieważ tylko to, co jest potrzebne do wykonania kroku, jest migawek. Po drugie, dane wyjściowe kroku z poprzedniego przebiegu można ponownie użyć, jeśli nie zostaną wprowadzone żadne zmiany source_directory , które wyzwoliłyby ponowne przekazanie migawki.

W poniższym przykładzie pokazano, jak używać funkcji HyperDriveStep w potoku usługi Azure Machine Learning.


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

Pełna próbka jest dostępna w witrynie https://github.com/Azure/MachineLearningNotebooks/blob/master/how-to-use-azureml/machine-learning-pipelines/intro-to-pipelines/aml-pipelines-parameter-tuning-with-hyperdrive.ipynb

Metody

create_node

Utwórz węzeł na podstawie kroku funkcji HyperDrive i dodaj go do danego grafu.

Ta metoda nie jest przeznaczona do bezpośredniego użycia. Po utworzeniu wystąpienia potoku w tym kroku usługa Azure ML automatycznie przekazuje wymagane parametry za pośrednictwem tej metody, aby można było dodać krok do grafu potoku reprezentującego przepływ pracy.

create_node

Utwórz węzeł na podstawie kroku funkcji HyperDrive i dodaj go do danego grafu.

Ta metoda nie jest przeznaczona do bezpośredniego użycia. Po utworzeniu wystąpienia potoku w tym kroku usługa Azure ML automatycznie przekazuje wymagane parametry za pośrednictwem tej metody, aby można było dodać krok do grafu potoku reprezentującego przepływ pracy.

create_node(graph, default_datastore, context)

Parametry

graph
Graph
Wymagane

Obiekt grafu, do który ma zostać dodany węzeł.

default_datastore
Union[AbstractAzureStorageDatastore, AzureDataLakeDatastore]
Wymagane

Domyślny magazyn danych.

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

Kontekst grafu.

Zwraca

Utworzony węzeł.

Typ zwracany