다음을 통해 공유


PythonScriptStep 클래스

Python 스크립트를 실행하는 Azure ML 파이프라인 단계를 만듭니다.

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

Python 스크립트를 실행하는 Azure ML 파이프라인 단계를 만듭니다.

상속
azureml.pipeline.core._python_script_step_base._PythonScriptStepBase
PythonScriptStep

생성자

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
필수
str

[필수] source_directory과 관련된 Python 스크립트의 이름입니다.

name
str

단계의 이름입니다. 지정하지 않으면 script_name이 사용됩니다.

Default value: None
arguments

Python 스크립트 파일에 대한 명령줄 인수입니다. 이 인수는 RunConfiguration의 arguments 매개 변수를 통해 컴퓨팅에 전달됩니다. 특수 기호와 같은 인수를 처리하는 방법에 대한 자세한 내용은 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

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

Default value: None
outputs

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

Default value: None
params

"AML_PARAMETER_"를 사용하여 환경 변수로 등록된 이름-값 쌍의 사전입니다.

Default value: None
source_directory
str

Python 스크립트, conda 환경 및 단계에서 사용된 기타 리소스가 포함된 폴더입니다.

Default value: None
allow_reuse

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

Default value: True
version
str

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

Default value: None
hash_paths

사용되지 않음: 더 이상 필요하지 않습니다.

단계 내용의 변경 내용을 확인할 때 해시할 경로 목록입니다. 검색된 변경 내용이 없으면 파이프라인은 이전 실행의 단계 내용을 재사용합니다. 기본적으로 source_directory의 내용은 .amlignore 또는 .gitignore에 나열된 파일을 제외하고 해시됩니다.

Default value: None
script_name
필수
str

[필수] source_directory과 관련된 Python 스크립트의 이름입니다.

name
필수
str

단계의 이름입니다. 지정하지 않으면 script_name이 사용됩니다.

arguments
필수
[str]

Python 스크립트 파일에 대한 명령줄 인수입니다. 이 인수는 RunConfiguration의 arguments 매개 변수를 통해 컴퓨팅에 전달됩니다. 특수 기호와 같은 인수를 처리하는 방법에 대한 자세한 내용은 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
필수

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

outputs
필수

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

params
필수
<xref:<xref:{str: str}>>

이름-값 쌍의 사전입니다. ">>AML_PARAMETER_<<"을 사용하여 환경 변수로 등록됩니다.

source_directory
필수
str

Python 스크립트, conda 환경 및 단계에서 사용된 기타 리소스가 포함된 폴더입니다.

allow_reuse
필수

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

version
필수
str

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

hash_paths
필수

사용되지 않음: 더 이상 필요하지 않습니다.

단계 내용의 변경 내용을 확인할 때 해시할 경로 목록입니다. 검색된 변경 내용이 없으면 파이프라인은 이전 실행의 단계 내용을 재사용합니다. 기본적으로 source_directory의 내용은 .amlignore 또는 .gitignore에 나열된 파일을 제외하고 해시됩니다.

설명

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, PipelineOutputAbstractDatasetPipelineData가 포함됩니다.

다음은 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

만들어진 노드입니다.