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
|
[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ę. Domyślna wartość: None
|
inputs
|
list[Union[InputPortBinding, PipelineOutputAbstractDataset, DataReference, PortDataReference, PipelineData, DatasetConsumptionConfig]]
Lista powiązań portów wejściowych. Domyślna wartość: None
|
outputs
|
Lista powiązań portów wyjściowych Domyślna wartość: None
|
metrics_output
|
Opcjonalna wartość określająca lokalizację do przechowywania metryk uruchamiania funkcji HyperDrive jako pliku JSON. Domyślna wartość: 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. Domyślna wartość: True
|
version
|
Opcjonalny tag wersji, aby oznaczyć zmianę funkcjonalności modułu. Domyślna wartość: None
|
name
Wymagane
|
[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
|
list[Union[InputPortBinding, PipelineOutputAbstractDataset, DataReference, PortDataReference, PipelineData, DatasetConsumptionConfig]]
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
|
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_directory
narzę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ł. |