first commit
This commit is contained in:
@@ -0,0 +1,81 @@
|
||||
from clearml import PipelineController
|
||||
|
||||
# ---------------------------------------------------------
|
||||
# 1. 인라인(Inline) 파이썬 함수 형태의 Step
|
||||
# (PipelineDecorator.component 대신 순수 함수로 작성 후 Controller에서 래핑)
|
||||
# ---------------------------------------------------------
|
||||
def generate_number() -> int:
|
||||
import random
|
||||
random.seed(None)
|
||||
num = random.randint(1, 10)
|
||||
print(f"Generated number: {num}")
|
||||
return num
|
||||
|
||||
def evaluate_number(num: int) -> str:
|
||||
if num > 5:
|
||||
result = 'Max'
|
||||
else:
|
||||
result = 'Min'
|
||||
print(f"Input number {num} is '{result}'.")
|
||||
return result
|
||||
|
||||
# ---------------------------------------------------------
|
||||
# 2. PipelineController를 이용한 파이프라인 뼈대 생성
|
||||
# ---------------------------------------------------------
|
||||
pipe = PipelineController(
|
||||
name='Test Pipeline v1',
|
||||
project='My Pipeline Project11',
|
||||
version='1.1',
|
||||
repo='https://git.devcafe.kr/ClearML/task1.git',
|
||||
repo_branch='main',
|
||||
add_pipeline_tags=False
|
||||
)
|
||||
|
||||
# 기본 실행 큐 설정
|
||||
pipe.set_default_execution_queue('default')
|
||||
|
||||
# ---------------------------------------------------------
|
||||
# 3. Step 추가: 일반 함수(로컬 로직)와 외부 Git Task(원격 로직) 혼용
|
||||
# ---------------------------------------------------------
|
||||
|
||||
# Step 1: 위에서 정의한 파이썬 함수를 파이프라인 Step으로 추가 (Decorator 역할 대체)
|
||||
# pipe.add_function_step(
|
||||
# name='generate_step',
|
||||
# function=generate_number,
|
||||
# function_return=['number'],
|
||||
# )
|
||||
|
||||
# # Step 2: Step 1의 결과를 파라미터로 받는 또 다른 함수 Step
|
||||
# pipe.add_function_step(
|
||||
# name='evaluate_step',
|
||||
# function=evaluate_number,
|
||||
# # Step 1의 출력값(number)을 evaluate_number의 인자(num)로 전달 (템플릿 문법 사용)
|
||||
# function_kwargs={'num': '${generate_step.number}'},
|
||||
# function_return=['size_label'],
|
||||
# parents=['generate_step'], # 의존성: generate_step이 끝나야 실행됨
|
||||
# )
|
||||
|
||||
pipe.add_step(
|
||||
name='external_git_step',
|
||||
# parents=['evaluate_step'],
|
||||
# 여기에 위에서 만든 태스크의 위치를 지정합니다.
|
||||
base_task_project='Normal_Object_Detection',
|
||||
base_task_name='model-yolo26-human',
|
||||
# 파라미터는 똑같이 오버라이드 가능합니다.
|
||||
parameter_override={
|
||||
'Args/image_url': "https://acai.ketidev.kr:20443/detect/image/202606/20260619_145116_image.jpg"
|
||||
}
|
||||
)
|
||||
|
||||
# print(pipe.artifacts['final_result'])
|
||||
|
||||
# ---------------------------------------------------------
|
||||
# 실행 부
|
||||
# ---------------------------------------------------------
|
||||
if __name__ == '__main__':
|
||||
# 로컬에서 실행 테스트
|
||||
# pipe.start_locally(run_pipeline_steps_locally=True)
|
||||
|
||||
# 또는 원격 큐로 전송하여 파이프라인 전체를 원격 실행
|
||||
pipe.start(queue='default')
|
||||
|
||||
Reference in New Issue
Block a user