Udostępnij za pośrednictwem


HyperDriveStep Klasa

Tworzy krok potoku usługi Azure ML, aby uruchomić tunning 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ć tunning hiperparametrów 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

Nazwa Opis
name
Wymagane
str

[Wymagane] Nazwa kroku.

hyperdrive_config
Wymagane

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

estimator_entry_script_arguments

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

wartość domyślna: None
inputs

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

wartość domyślna: None
outputs

Lista powiązań portów wyjściowych

wartość domyślna: None
metrics_output

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

wartość domyślna: None
allow_reuse

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 uruchomienia są natychmiast udostępniane wszelkim 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.

wartość domyślna: True
version
str

Opcjonalny tag wersji, aby oznaczyć zmianę funkcjonalności modułu.

wartość domyślna: None
name
Wymagane
str

[Wymagane] Nazwa kroku.

hyperdrive_config
Wymagane

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

estimator_entry_script_arguments
Wymagane

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

inputs
Wymagane

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

outputs
Wymagane

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

metrics_output
Wymagane

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

allow_reuse
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 uruchomienia są natychmiast udostępniane wszelkim 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
Wymagane
str

Wersja

Uwagi

Należy pamiętać, że argumenty skryptu wpisu 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 funkcji HyperDriveStep. Parametr script_params narzędzia do szacowania akceptuje słownik. Jednak estimator_entry_script_argument 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 należy jawnie ustawić parametry i outputs , które zastępują 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 wszystkich zależnych plików 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 migawkowane. Po drugie, dane wyjściowe kroku z poprzedniego przebiegu można ponownie użyć, jeśli nie ma żadnych zmian w source_directory pliku, które wyzwoli 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 z witryny 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ł z kroku funkcji HyperDrive i dodaj go do danego grafu.

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

create_node

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

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

create_node(graph, default_datastore, context)

Parametry

Nazwa Opis
graph
Wymagane

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

default_datastore
Wymagane

Domyślny magazyn danych.

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

Kontekst grafu.

Zwraca

Typ Opis

Utworzony węzeł.