76 lines
2.9 KiB
Python
76 lines
2.9 KiB
Python
from clearml import PipelineDecorator
|
|
|
|
|
|
# @PipelineDecorator.component(
|
|
# return_values=['number'],
|
|
# cache=False,
|
|
# repo='ssh://git@cmlgit.mxm.kr:20104/ACAI/model-yolo26-human.git', # 원격 실행 시 가져올 Git URL
|
|
# repo_branch='main' # 사용할 브랜치 (지정하지 않으면 기본 브랜치)
|
|
# # repo_commit='<특정_커밋_해시>' # 특정 커밋 버전으로 고정할 경우 추가
|
|
# )
|
|
# def getHumanDetectionModel():
|
|
|
|
|
|
|
|
|
|
# ---------------------------------------------------------
|
|
# Task 1: 1~10 중 랜덤한 숫자를 출력하고 반환하는 컴포넌트
|
|
# ---------------------------------------------------------
|
|
@PipelineDecorator.component(return_values=['number'], cache=False)
|
|
def generate_number() -> int:
|
|
import random
|
|
random.seed(None)
|
|
# 1에서 10 사이의 랜덤 정수 생성
|
|
num = random.randint(1, 10)
|
|
print(f"Generated number: {num}")
|
|
return num
|
|
|
|
# ---------------------------------------------------------
|
|
# Task 2: 파라미터로 받은 숫자가 5 이하인지 초과인지 판별하는 컴포넌트
|
|
# ---------------------------------------------------------
|
|
@PipelineDecorator.component(return_values=['size_label'], cache=False)
|
|
def evaluate_number(num: int) -> str:
|
|
# 받은 파라미터가 5 이하인지 초과인지 체크
|
|
if num > 5:
|
|
result = 'Max'
|
|
else:
|
|
result = 'Min'
|
|
|
|
print(f"Input number {num} is '{result}'.")
|
|
return result
|
|
|
|
# ---------------------------------------------------------
|
|
# 파이프라인 정의: 위 두 Task를 연결
|
|
# ---------------------------------------------------------
|
|
@PipelineDecorator.pipeline(
|
|
name='Number Evaluation Pipeline111',
|
|
project='My Pipeline Project11',
|
|
version='1.0',
|
|
default_queue='default', # 1. 개별 Task(Step)들이 실행될 원격 큐 이름
|
|
pipeline_execution_queue='default' # 2. 파이프라인 전체를 관리할 Controller가 실행될 큐 (기본값 'services'))
|
|
)
|
|
|
|
def my_pipeline():
|
|
|
|
|
|
# 1. 첫 번째 Task 실행 및 결과 받기
|
|
generated_num = generate_number()
|
|
|
|
# 2. 첫 번째 Task의 결과를 두 번째 Task의 입력으로 전달
|
|
final_result = evaluate_number(generated_num)
|
|
# 2. 첫 번째 Task의 결과를 두 번째 Task의 입력으로 전달
|
|
final_result = evaluate_number(generated_num)
|
|
# 2. 첫 번째 Task의 결과를 두 번째 Task의 입력으로 전달
|
|
final_result = evaluate_number(generated_num)
|
|
|
|
print(f"파이프라인 최종 결과: {final_result}")
|
|
|
|
# ---------------------------------------------------------
|
|
# 실행 부
|
|
# ---------------------------------------------------------
|
|
if __name__ == '__main__':
|
|
# 로컬에서 코드를 바로 실행하면서 ClearML 서버에 로깅되도록 설정
|
|
PipelineDecorator.run_locally()
|
|
# PipelineDecorator.run_on_queue(queue_name='default')
|
|
# 파이프라인 실행
|
|
my_pipeline() |