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
필수
|
[필수] 단계의 이름입니다. |
hyperdrive_config
필수
|
[필수] HyperDrive 실행에 대한 구성을 정의하는 HyperDriveConfig입니다. |
estimator_entry_script_arguments
|
예측 도구 항목 스크립트에 대한 명령줄 인수 목록입니다. 예측 도구의 입력 스크립트가 명령줄 인수를 허용하지 않는 경우 이 매개 변수 값을 빈 목록으로 설정합니다. Default value: None
|
inputs
|
list[Union[InputPortBinding, PipelineOutputAbstractDataset, DataReference, PortDataReference, PipelineData, DatasetConsumptionConfig]]
입력 포트 바인딩 목록입니다. Default value: None
|
outputs
|
출력 포트 바인딩 목록 Default value: None
|
metrics_output
|
HyperDrive 실행 메트릭을 JSON 파일로 저장할 위치를 지정하는 선택적 값입니다. Default value: None
|
allow_reuse
|
동일한 설정으로 다시 실행할 때 단계에서 이전 결과를 재사용해야 하는지 여부를 나타냅니다. 기본적으로 재사용하도록 설정됩니다. 단계 내용(스크립트/종속성)과 입력 및 매개 변수가 변경되지 않은 상태로 유지되면 이 단계의 이전 실행 결과가 재사용됩니다. 단계를 재사용할 때, 컴퓨팅할 작업을 제출하는 대신 이전 실행의 결과를 후속 단계에 즉시 사용할 수 있습니다. Azure Machine Learning 데이터 세트를 입력으로 사용하는 경우 재사용은 기본 데이터가 변경되었는지 여부가 아니라 데이터 세트의 정의가 변경되었는지 여부에 따라 결정됩니다. Default value: True
|
version
|
모듈의 기능 변경을 나타내는 선택적 버전 태그입니다. Default value: None
|
name
필수
|
[필수] 단계의 이름입니다. |
hyperdrive_config
필수
|
[필수] HyperDrive 실행에 대한 구성을 정의하는 HyperDriveConfig입니다. |
estimator_entry_script_arguments
필수
|
예측 도구 항목 스크립트에 대한 명령줄 인수 목록입니다. 예측 도구의 입력 스크립트가 명령줄 인수를 허용하지 않는 경우 이 매개 변수 값을 빈 목록으로 설정합니다. |
inputs
필수
|
list[Union[InputPortBinding, PipelineOutputAbstractDataset, DataReference, PortDataReference, PipelineData, DatasetConsumptionConfig]]
입력 포트 바인딩 목록입니다. |
outputs
필수
|
출력 포트 바인딩 목록입니다. |
metrics_output
필수
|
HyperDrive 실행 메트릭을 JSON 파일로 저장할 위치를 지정하는 선택적 값입니다. |
allow_reuse
필수
|
동일한 설정으로 다시 실행할 때 단계에서 이전 결과를 재사용해야 하는지 여부를 나타냅니다. 기본적으로 재사용하도록 설정됩니다. 단계 내용(스크립트/종속성)과 입력 및 매개 변수가 변경되지 않은 상태로 유지되면 이 단계의 이전 실행 결과가 재사용됩니다. 단계를 재사용할 때, 컴퓨팅할 작업을 제출하는 대신 이전 실행의 결과를 후속 단계에 즉시 사용할 수 있습니다. Azure Machine Learning 데이터 집합을 입력으로 사용하는 경우 재사용은 기본 데이터가 변경되었는지 여부가 아니라 데이터 집합의 정의가 변경되었는지 여부에 따라 결정됩니다. |
version
필수
|
버전 |
설명
예측 도구 개체(예: TensorFlow 개체)에 사용된 입력 스크립트에 대한 인수는 HyperDriveStep을 인스턴스화할 때 estimator_entry_script_arguments
매개 변수를 사용하여 목록으로 지정해야 합니다. 예측 도구 매개 변수 script_params
는 사전을 허용합니다. 그러나 estimator_entry_script_argument
매개 변수는 인수를 목록으로 예상합니다.
HyperDriveStep 초기화에는 inputs
매개 변수를 사용하여 DataReference 개체 목록을 지정하는 작업이 포함됩니다. Azure ML Pipelines 파이프라인 단계에서는 다른 단계의 출력 또는 DataReference 개체를 입력으로 사용할 수 있습니다. 따라서 HyperDriveStep을 만들 때 Estimator 개체에 지정된 inputs
매개 변수를 재정의하는 outputs
및 inputs
매개 변수를 명시적으로 설정해야 합니다.
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 |
---|---|
만들어진 노드입니다. |