PythonScriptStep 클래스
Python 스크립트를 실행하는 Azure ML 파이프라인 단계를 만듭니다.
PythonScriptStep을 사용하는 예제는 Notebook https://aka.ms/pl-get-started을 참조하세요.
Python 스크립트를 실행하는 Azure ML 파이프라인 단계를 만듭니다.
- 상속
-
azureml.pipeline.core._python_script_step_base._PythonScriptStepBasePythonScriptStep
생성자
PythonScriptStep(script_name, name=None, arguments=None, compute_target=None, runconfig=None, runconfig_pipeline_params=None, inputs=None, outputs=None, params=None, source_directory=None, allow_reuse=True, version=None, hash_paths=None)
매개 변수
Name | Description |
---|---|
script_name
필수
|
[필수] |
name
|
단계의 이름입니다. 지정하지 않으면 Default value: None
|
arguments
|
Python 스크립트 파일에 대한 명령줄 인수입니다. 이 인수는 RunConfiguration의 Default value: None
|
compute_target
|
[필수] 사용할 컴퓨팅 대상입니다. 지정하지 않으면 runconfig의 대상이 사용됩니다. 이 매개 변수는 작업 영역의 컴퓨팅 대상 개체 또는 컴퓨팅 대상의 문자열 이름으로 지정할 수 있습니다. 필요에 따라 파이프라인을 만들 때 컴퓨팅 대상을 사용할 수 없는 경우 컴퓨팅 대상 개체를 가져오지 않도록 ('컴퓨팅 대상 이름', '컴퓨팅 대상 형식') 튜플을 지정할 수 있습니다(AmlCompute 형식은 'AmlCompute'이고 RemoteCompute 형식은 'VirtualMachine'). Default value: None
|
runconfig
|
사용할 선택적 RunConfiguration입니다. RunConfiguration을 사용하여 conda 종속성 및 docker 이미지와 같은 실행에 대한 추가 요구 사항을 지정할 수 있습니다. 지정하지 않으면 기본 runconfig가 만들어집니다. Default value: None
|
runconfig_pipeline_params
|
런타임에 각각 runconfig 속성의 이름과 해당 속성의 PipelineParameter가 있는 키-값 쌍을 사용하여 runconfig 속성을 재정의합니다. 지원되는 값: 'NodeCount', 'MpiProcessCountPerNode', 'TensorflowWorkerCount', 'TensorflowParameterServerCount' Default value: None
|
inputs
|
list[Union[InputPortBinding, DataReference, PortDataReference, PipelineData, PipelineOutputFileDataset, PipelineOutputTabularDataset, DatasetConsumptionConfig]]
입력 포트 바인딩 목록입니다. Default value: None
|
outputs
|
list[Union[PipelineData, OutputDatasetConfig, PipelineOutputFileDataset, PipelineOutputTabularDataset, OutputPortBinding]]
출력 포트 바인딩 목록입니다. Default value: None
|
params
|
"AML_PARAMETER_"를 사용하여 환경 변수로 등록된 이름-값 쌍의 사전입니다. Default value: None
|
source_directory
|
Python 스크립트, conda 환경 및 단계에서 사용된 기타 리소스가 포함된 폴더입니다. Default value: None
|
allow_reuse
|
동일한 설정으로 다시 실행할 때 단계에서 이전 결과를 재사용해야 하는지 여부를 나타냅니다. 기본적으로 재사용하도록 설정됩니다. 단계 내용(스크립트/종속성)과 입력 및 매개 변수가 변경되지 않은 상태로 유지되면 이 단계의 이전 실행 결과가 재사용됩니다. 단계를 재사용할 때, 컴퓨팅할 작업을 제출하는 대신 이전 실행의 결과를 후속 단계에 즉시 사용할 수 있습니다. Azure Machine Learning 데이터 집합을 입력으로 사용하는 경우 재사용은 기본 데이터가 변경되었는지 여부가 아니라 데이터 집합의 정의가 변경되었는지 여부에 따라 결정됩니다. Default value: True
|
version
|
단계의 기능 변경을 나타내는 선택적 버전 태그입니다. Default value: None
|
hash_paths
|
사용되지 않음: 더 이상 필요하지 않습니다. 단계 내용의 변경 내용을 확인할 때 해시할 경로 목록입니다. 검색된 변경 내용이 없으면 파이프라인은 이전 실행의 단계 내용을 재사용합니다. 기본적으로 Default value: None
|
script_name
필수
|
[필수] |
name
필수
|
단계의 이름입니다. 지정하지 않으면 |
arguments
필수
|
[str]
Python 스크립트 파일에 대한 명령줄 인수입니다. 이 인수는 RunConfiguration의 |
compute_target
필수
|
[필수] 사용할 컴퓨팅 대상입니다. 지정하지 않으면 runconfig의 대상이 사용됩니다. 이 매개 변수는 작업 영역의 컴퓨팅 대상 개체 또는 컴퓨팅 대상의 문자열 이름으로 지정할 수 있습니다. 필요에 따라 파이프라인을 만들 때 컴퓨팅 대상을 사용할 수 없는 경우 컴퓨팅 대상 개체를 가져오지 않도록 ('컴퓨팅 대상 이름', '컴퓨팅 대상 형식') 튜플을 지정할 수 있습니다(AmlCompute 형식은 'AmlCompute'이고 RemoteCompute 형식은 'VirtualMachine'). |
runconfig
필수
|
사용할 선택적 RunConfiguration입니다. RunConfiguration을 사용하여 conda 종속성 및 Docker 이미지와 같은 실행에 대한 추가 요구 사항을 지정할 수 있습니다. 지정하지 않으면 기본 runconfig가 만들어집니다. |
runconfig_pipeline_params
필수
|
런타임에 각각 runconfig 속성의 이름과 해당 속성의 PipelineParameter가 있는 키-값 쌍을 사용하여 runconfig 속성을 재정의합니다. 지원되는 값: 'NodeCount', 'MpiProcessCountPerNode', 'TensorflowWorkerCount', 'TensorflowParameterServerCount' |
inputs
필수
|
list[Union[InputPortBinding, DataReference, PortDataReference, PipelineData, PipelineOutputFileDataset, PipelineOutputTabularDataset, DatasetConsumptionConfig]]
입력 포트 바인딩 목록입니다. |
outputs
필수
|
list[Union[PipelineData, OutputDatasetConfig, PipelineOutputFileDataset, PipelineOutputTabularDataset, OutputPortBinding]]
출력 포트 바인딩 목록입니다. |
params
필수
|
<xref:<xref:{str: str}>>
이름-값 쌍의 사전입니다. ">>AML_PARAMETER_<<"을 사용하여 환경 변수로 등록됩니다. |
source_directory
필수
|
Python 스크립트, conda 환경 및 단계에서 사용된 기타 리소스가 포함된 폴더입니다. |
allow_reuse
필수
|
동일한 설정으로 다시 실행할 때 단계에서 이전 결과를 재사용해야 하는지 여부를 나타냅니다. 기본적으로 재사용하도록 설정됩니다. 단계 내용(스크립트/종속성)과 입력 및 매개 변수가 변경되지 않은 상태로 유지되면 이 단계의 이전 실행 결과가 재사용됩니다. 단계를 재사용할 때, 컴퓨팅할 작업을 제출하는 대신 이전 실행의 결과를 후속 단계에 즉시 사용할 수 있습니다. Azure Machine Learning 데이터 집합을 입력으로 사용하는 경우 재사용은 기본 데이터가 변경되었는지 여부가 아니라 데이터 집합의 정의가 변경되었는지 여부에 따라 결정됩니다. |
version
필수
|
단계의 기능 변경을 나타내는 선택적 버전 태그입니다. |
hash_paths
필수
|
사용되지 않음: 더 이상 필요하지 않습니다. 단계 내용의 변경 내용을 확인할 때 해시할 경로 목록입니다. 검색된 변경 내용이 없으면 파이프라인은 이전 실행의 단계 내용을 재사용합니다. 기본적으로 |
설명
PythonScriptStep은 컴퓨팅 대상에서 Python 스크립트를 실행하기 위한 기본 제공 단계입니다. 스크립트 이름과 기타 선택적 매개 변수(예: 스크립트, 컴퓨팅 대상, 입력 및 출력에 대한 인수)를 사용합니다. 컴퓨팅 대상을 지정하지 않으면 작업 영역의 기본 컴퓨팅 대상이 사용됩니다. RunConfiguration을 사용하여 conda 종속성 및 docker 이미지와 같은 PythonScriptStep에 대한 요구 사항을 지정할 수도 있습니다.
PythonScriptStep을 사용하는 모범 사례는 스크립트 및 단계와 연결된 모든 종속 파일에 별도의 폴더를 사용하고, source_directory
매개 변수를 사용하여 해당 폴더를 지정하는 것입니다.
이 모범 사례에 따르면 두 가지 이점이 있습니다. 첫째, 단계에 필요한 것만 스냅숏이 생성되므로 단계에 대해 생성되는 스냅숏의 크기를 줄이는 데 도움이 됩니다. 둘째, source_directory
에서 스냅샷의 재업로드를 트리거하는 변경이 없는 경우 이전 실행 단계의 출력을 재사용할 수 있습니다.
다음 코드 예제에서는 기계 학습 시나리오에서 PythonScriptStep을 사용하는 방법을 보여 줍니다. 이 예에 대한 자세한 내용은 https://aka.ms/pl-first-pipeline을 참조하세요.
from azureml.pipeline.steps import PythonScriptStep
trainStep = PythonScriptStep(
script_name="train.py",
arguments=["--input", blob_input_data, "--output", output_data1],
inputs=[blob_input_data],
outputs=[output_data1],
compute_target=compute_target,
source_directory=project_folder
)
PythonScriptSteps는 다양한 입출력 형식을 지원합니다. 여기에는 입력용 DatasetConsumptionConfig와 입출력용 OutputDatasetConfig, PipelineOutputAbstractDataset 및 PipelineData가 포함됩니다.
다음은 Dataset을 단계 입출력으로 사용하는 예입니다.
from azureml.core import Dataset
from azureml.pipeline.steps import PythonScriptStep
from azureml.pipeline.core import Pipeline, PipelineData
# get input dataset
input_ds = Dataset.get_by_name(workspace, 'weather_ds')
# register pipeline output as dataset
output_ds = PipelineData('prepared_weather_ds', datastore=datastore).as_dataset()
output_ds = output_ds.register(name='prepared_weather_ds', create_new_version=True)
# configure pipeline step to use dataset as the input and output
prep_step = PythonScriptStep(script_name="prepare.py",
inputs=[input_ds.as_named_input('weather_ds')],
outputs=[output_ds],
compute_target=compute_target,
source_directory=project_folder)
다른 입력/출력 형식을 사용하는 예는 해당 설명서 페이지를 참조하세요.
메서드
create_node |
PythonScriptStep에 대한 노드를 만들고 지정된 그래프에 추가합니다. 이 메서드는 직접 사용할 수 없습니다. 이 단계에서 파이프라인이 인스턴스화되면 Azure ML은 이 메서드를 통해 필요한 매개 변수를 자동으로 전달하므로 워크플로를 나타내는 파이프라인 그래프에 단계를 추가할 수 있습니다. |
create_node
PythonScriptStep에 대한 노드를 만들고 지정된 그래프에 추가합니다.
이 메서드는 직접 사용할 수 없습니다. 이 단계에서 파이프라인이 인스턴스화되면 Azure ML은 이 메서드를 통해 필요한 매개 변수를 자동으로 전달하므로 워크플로를 나타내는 파이프라인 그래프에 단계를 추가할 수 있습니다.
create_node(graph, default_datastore, context)
매개 변수
Name | Description |
---|---|
graph
필수
|
노드를 추가할 그래프 개체입니다. |
default_datastore
필수
|
기본 데이터 저장소입니다. |
context
필수
|
<xref:azureml.pipeline.core._GraphContext>
그래프 컨텍스트입니다. |
반환
형식 | Description |
---|---|
만들어진 노드입니다. |