Pipeline: 변환 등록과 탐색
transforms.api.Pipeline은 여러 Transform 객체를 묶습니다. 변환 객체는 데코레이터로 만든 뒤 직접 등록하거나 패키지에서 탐색하여 등록합니다.
add_transforms(*transforms)
주어진 Transform 객체들을 이 Pipeline에 등록합니다. 다음 두 경우에는 ValueError가 발생합니다.
- 여러 Transform이 같은 Output alias에 기록합니다.
- 여러 Transform의 compute 함수 참조가 같습니다.
출력 alias와 compute 함수 참조는 각각 파이프라인 안에서 고유해야 합니다.
discover_transforms(*modules)
시작 모듈의 __path__에서 모듈을 재귀적으로 찾고 import합니다. 찾은 모듈의 속성 중 데코레이터가 구성한 Transform 인스턴스를 모두 등록합니다. 모듈 수준에서 선언한 변환을 대상으로 합니다.
다음은 Python 저장소에 myproject 패키지가 있는 경우의 등록 예시입니다.
from transforms.api import Pipeline
import myproject
pipeline = Pipeline()
pipeline.discover_transforms(myproject)
탐색 중 각 모듈을 import하므로 모듈 최상위에서 외부 호출이나 데이터 처리를 실행하지 않도록 구성합니다. compute 함수 본문에 넣어야 할 작업을 import 시점에 실행하는 코드와 구분합니다.
transforms
등록한 변환들의 list[Transform]을 반환하는 속성입니다. 리소스 입출력 명세와 출력 고유성 조건은 입출력 참조를 따릅니다.