다음을 통해 공유


HyperDriveStep 클래스

Machine Learning 모델 학습에 대한 하이퍼 매개 변수 튜닝을 실행하는 Azure ML 파이프라인 단계를 만듭니다.

HyperDriveStep 사용 예제는 Notebook https://aka.ms/pl-hyperdrive를 참조하세요.

Machine Learning 모델 학습을 위한 하이퍼 매개 변수 튜닝을 실행하는 Azure ML 파이프라인 단계를 만듭니다.

상속
HyperDriveStep

생성자

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

매개 변수

Name Description
name
필수
str

[필수] 단계의 이름입니다.

hyperdrive_config
필수

[필수] HyperDrive 실행에 대한 구성을 정의하는 HyperDriveConfig입니다.

estimator_entry_script_arguments

예측 도구 항목 스크립트에 대한 명령줄 인수 목록입니다. 예측 도구의 입력 스크립트가 명령줄 인수를 허용하지 않는 경우 이 매개 변수 값을 빈 목록으로 설정합니다.

기본값: None
inputs

입력 포트 바인딩 목록입니다.

기본값: None
outputs

출력 포트 바인딩 목록

기본값: None
metrics_output

HyperDrive 실행 메트릭을 JSON 파일로 저장할 위치를 지정하는 선택적 값입니다.

기본값: None
allow_reuse

동일한 설정으로 다시 실행할 때 단계에서 이전 결과를 재사용해야 하는지 여부를 나타냅니다. 기본적으로 재사용하도록 설정됩니다. 단계 내용(스크립트/종속성)과 입력 및 매개 변수가 변경되지 않은 상태로 유지되면 이 단계의 이전 실행 결과가 재사용됩니다. 단계를 재사용할 때, 컴퓨팅할 작업을 제출하는 대신 이전 실행의 결과를 후속 단계에 즉시 사용할 수 있습니다. Azure Machine Learning 데이터 세트를 입력으로 사용하는 경우 재사용은 기본 데이터가 변경되었는지 여부가 아니라 데이터 세트의 정의가 변경되었는지 여부에 따라 결정됩니다.

기본값: True
version
str

모듈의 기능 변경을 나타내는 선택적 버전 태그입니다.

기본값: None
name
필수
str

[필수] 단계의 이름입니다.

hyperdrive_config
필수

[필수] HyperDrive 실행에 대한 구성을 정의하는 HyperDriveConfig입니다.

estimator_entry_script_arguments
필수

예측 도구 항목 스크립트에 대한 명령줄 인수 목록입니다. 예측 도구의 입력 스크립트가 명령줄 인수를 허용하지 않는 경우 이 매개 변수 값을 빈 목록으로 설정합니다.

inputs
필수

입력 포트 바인딩 목록입니다.

outputs
필수

출력 포트 바인딩 목록입니다.

metrics_output
필수

HyperDrive 실행 메트릭을 JSON 파일로 저장할 위치를 지정하는 선택적 값입니다.

allow_reuse
필수

동일한 설정으로 다시 실행할 때 단계에서 이전 결과를 재사용해야 하는지 여부를 나타냅니다. 기본적으로 재사용하도록 설정됩니다. 단계 내용(스크립트/종속성)과 입력 및 매개 변수가 변경되지 않은 상태로 유지되면 이 단계의 이전 실행 결과가 재사용됩니다. 단계를 재사용할 때, 컴퓨팅할 작업을 제출하는 대신 이전 실행의 결과를 후속 단계에 즉시 사용할 수 있습니다. Azure Machine Learning 데이터 집합을 입력으로 사용하는 경우 재사용은 기본 데이터가 변경되었는지 여부가 아니라 데이터 집합의 정의가 변경되었는지 여부에 따라 결정됩니다.

version
필수
str

버전

설명

예측 도구 개체(예: TensorFlow 개체)에 사용된 입력 스크립트에 대한 인수는 HyperDriveStep을 인스턴스화할 때 estimator_entry_script_arguments 매개 변수를 사용하여 목록으로 지정해야 합니다. 예측 도구 매개 변수 script_params는 사전을 허용합니다. 그러나 estimator_entry_script_argument 매개 변수는 인수를 목록으로 예상합니다.

HyperDriveStep 초기화에는 inputs 매개 변수를 사용하여 DataReference 개체 목록을 지정하는 작업이 포함됩니다. Azure ML Pipelines 파이프라인 단계에서는 다른 단계의 출력 또는 DataReference 개체를 입력으로 사용할 수 있습니다. 따라서 HyperDriveStep을 만들 때 Estimator 개체에 지정된 inputs 매개 변수를 재정의하는 outputsinputs 매개 변수를 명시적으로 설정해야 합니다.

HyperDriveStep을 사용하는 모범 사례는 스크립트 및 단계와 연결된 모든 종속 파일에 별도의 폴더를 사용하고, 해당 폴더를 예측 도구 개체의 source_directory로 지정하는 것입니다. 예를 들어 TensorFlow 클래스의 source_directory 매개 변수를 참조하세요. 이렇게 하면 두 가지 이점이 있습니다. 첫째, 단계에 필요한 것만 스냅샷이 생성되므로 단계에 대해 만들어지는 스냅샷의 크기를 줄이는 데 도움이 됩니다. 둘째, source_directory에서 스냅샷의 재업로드를 트리거하는 변경이 없는 경우 이전 실행 단계의 출력을 재사용할 수 있습니다.

다음 예제에서는 Azure Machine Learning 파이프라인에서 HyperDriveStep을 사용하는 방법을 보여 줍니다.


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

전체 샘플은 https://github.com/Azure/MachineLearningNotebooks/blob/master/how-to-use-azureml/machine-learning-pipelines/intro-to-pipelines/aml-pipelines-parameter-tuning-with-hyperdrive.ipynb에서 사용할 수 있습니다.

메서드

create_node

HyperDrive 단계에서 노드를 만들고 주어진 그래프에 추가합니다.

이 메서드는 직접 사용할 수 없습니다. 이 단계에서 파이프라인이 인스턴스화되면 Azure ML은 이 메서드를 통해 필요한 매개 변수를 자동으로 전달하므로 워크플로를 나타내는 파이프라인 그래프에 단계를 추가할 수 있습니다.

create_node

HyperDrive 단계에서 노드를 만들고 주어진 그래프에 추가합니다.

이 메서드는 직접 사용할 수 없습니다. 이 단계에서 파이프라인이 인스턴스화되면 Azure ML은 이 메서드를 통해 필요한 매개 변수를 자동으로 전달하므로 워크플로를 나타내는 파이프라인 그래프에 단계를 추가할 수 있습니다.

create_node(graph, default_datastore, context)

매개 변수

Name Description
graph
필수

노드를 추가할 그래프 개체입니다.

default_datastore
필수

기본 데이터 저장소입니다.

context
필수
<xref:azureml.pipeline.core._GraphContext>

그래프 컨텍스트입니다.

반환

형식 Description

만들어진 노드입니다.