PythonScriptStep 클래스
Python 스크립트를 실행하는 Azure ML 파이프라인 단계를 만듭니다.
PythonScriptStep을 사용하는 예제는 Notebook https://aka.ms/pl-get-started을 참조하세요.
Python 스크립트를 실행하는 Azure ML 파이프라인 단계를 만듭니다.
생성자
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
필수
|
[필수] 를 기준으로 하는 Python 스크립트의 이름입니다 |
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 env 및 기타 리소스를 포함하는 폴더입니다. Default value: None
|
allow_reuse
|
동일한 설정으로 다시 실행할 때 단계가 이전 결과를 다시 사용해야 하는지 여부를 나타냅니다. 재사용은 기본적으로 사용하도록 설정됩니다. 단계 내용(스크립트/종속성)과 입력 및 매개 변수가 변경되지 않은 상태로 유지되면 이 단계의 이전 실행의 출력이 다시 사용됩니다. 단계를 다시 사용할 때 작업을 컴퓨팅에 제출하는 대신 이전 실행의 결과를 후속 단계에서 즉시 사용할 수 있습니다. Azure Machine Learning 데이터 세트를 입력으로 사용하는 경우 다시 사용은 기본 데이터가 변경되었는지 여부가 아니라 데이터 세트의 정의가 변경되었는지 여부에 따라 결정됩니다. Default value: True
|
version
|
단계의 기능 변경을 나타내는 선택적 버전 태그입니다. Default value: None
|
hash_paths
|
사용되지 않음: 더 이상 필요하지 않습니다. 단계 내용의 변경 내용을 확인할 때 해시할 경로 목록입니다. 변경 내용이 검색되지 않은 경우 파이프라인은 이전 실행의 단계 내용을 다시 사용합니다. 기본적으로 Default value: None
|
script_name
필수
|
[필수] 를 기준으로 하는 Python 스크립트의 이름입니다 |
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 env 및 기타 리소스를 포함하는 폴더입니다. |
allow_reuse
필수
|
동일한 설정으로 다시 실행할 때 단계가 이전 결과를 다시 사용해야 하는지 여부를 나타냅니다. 재사용은 기본적으로 사용하도록 설정됩니다. 단계 내용(스크립트/종속성)과 입력 및 매개 변수가 변경되지 않은 상태로 유지되면 이 단계의 이전 실행의 출력이 다시 사용됩니다. 단계를 다시 사용할 때 작업을 컴퓨팅에 제출하는 대신 이전 실행의 결과를 후속 단계에서 즉시 사용할 수 있습니다. Azure Machine Learning 데이터 세트를 입력으로 사용하는 경우 다시 사용은 기본 데이터가 변경되었는지 여부가 아니라 데이터 세트의 정의가 변경되었는지 여부에 따라 결정됩니다. |
version
필수
|
단계의 기능 변경을 나타내는 선택적 버전 태그입니다. |
hash_paths
필수
|
사용되지 않음: 더 이상 필요하지 않습니다. 단계 내용의 변경 내용을 확인할 때 해시할 경로 목록입니다. 변경 내용이 검색되지 않은 경우 파이프라인은 이전 실행의 단계 내용을 다시 사용합니다. 기본적으로 |
설명
PythonScriptStep은 컴퓨팅 대상에서 Python 스크립트를 실행하는 기본 제공 단계입니다. 스크립트 이름 및 스크립트, 컴퓨팅 대상, 입력 및 출력에 대한 인수와 같은 기타 선택적 매개 변수를 사용합니다. 컴퓨팅 대상이 지정되지 않은 경우 작업 영역의 기본 컴퓨팅 대상이 사용됩니다. conda 종속성 및 docker 이미지와 같은 PythonScriptStep에 대한 요구 사항을 지정하는 데 사용할 RunConfiguration 수도 있습니다.
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 |
---|---|
만든 노드입니다. |