다음을 통해 공유


HyperDriveStep 클래스

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

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

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

생성자

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

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

Default value: None
inputs

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

Default value: None
outputs

출력 포트 바인딩 목록

Default value: None
metrics_output

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

Default value: None
allow_reuse

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

Default value: True
version
str

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

Default value: None
name
필수
str

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

hyperdrive_config
필수

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

estimator_entry_script_arguments
필수

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

inputs
필수

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

outputs
필수

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

metrics_output
필수

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

allow_reuse
필수

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

version
필수
str

버전

설명

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

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

HyperDriveStep을 사용하는 가장 좋은 방법은 스크립트 및 단계와 연결된 모든 종속 파일에 별도의 폴더를 사용하고 해당 폴더를 추정기 개체 source_directory로 지정하는 것입니다. 예를 들어 클래스의 source_directory 매개 변수를 참조하세요 TensorFlow . 이렇게 하면 두 가지 이점이 있습니다. 먼저 단계에 필요한 것만 스냅샷으로 만들어지므로 단계에 대해 만든 스냅샷의 크기를 줄이는 데 도움이 됩니다. 둘째, snaphot의 다시 업로드를 트리거하는 변경 내용 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

만든 노드입니다.