CometML에서 실험 생성·실행하기
CometML에서 실험 생성·실행하기
CometML에서 훈련 실행(run) 하나는 곧 하나의 실험이에요. 실험을 시작하면 코드 실행에 딸린 속성들을 URL로 보여 주는 화면에서 대화형으로 분석하고, 시간이 지나면서 실험 상태를 관리할 수 있게 돼요. 이 페이지에서는 실험을 만들고 메트릭·파라미터·이미지 같은 데이터를 로깅하는 가장 기본적인 흐름을 따라가 볼게요.
실험 시작하기
실험을 시작하면 CometML이 곧바로 코드 실행과 관련된 모든 속성을 추적하기 시작해요. 처음 시작하기 전에 comet_ml.login()을 호출하는 걸 권장해요. 아직 API 키가 저장돼 있지 않다면 이 메서드가 키를 입력받도록 안내해 줄 거예요. API 키 설정에 대한 자세한 내용은 Configure the Comet SDK에서 확인할 수 있어요.
그다음 comet_ml.start()로 훈련 실행을 로깅하기 시작하면 돼요:
import comet_ml
comet_ml.login()
exp = comet_ml.start()
이전에 실행했던 실험을 이어서 로깅하고 싶다면 experiment_key 인자에 이전 실험 키를 넘겨주면 돼요:
import comet_ml
comet_ml.login()
exp = comet_ml.start(experiment_key=PREVIOUS_EXPERIMENT_KEY)
실험 시작 시 자동 로깅되는 항목
실험을 시작하면 CometML이 자동으로 로깅을 시작해요:
- 통합(integrations) 덕분에 잡히는 메트릭과 하이퍼파라미터
- 실험을 만든 코드 파일
- git 저장소 안에서 실행 중이라면 git 커밋과 패치(커밋되지 않은 파일들)
- 콘솔 출력 로그
- 설치된 파이썬 패키지 목록
- 시스템 메트릭(메모리 사용량, GPU 사용량 등)
메트릭·파라미터·에셋 로깅하기
CometML이 자동으로 잡는 데이터 외에도 직접 원하는 데이터를 로깅 메서드로 올릴 수 있어요. 아래 예시는 메트릭 하나와 이미지를 로깅하는 코드예요:
import comet_ml
from PIL import Image
import requests
comet_ml.login()
exp = comet_ml.start()
# Log a metric
exp.log_metric('my_metric', 0.99)
# Log a parameter
exp.log_parameter('my_parameter', 0.001)
# Log an image
image_url = "https://cdn.pixabay.com/photo/2016/12/04/21/58/rabbit-1882699_1280.jpg"
response = requests.get(image_url)
pil_image = Image.open(io.BytesIO(response.content))
exp.log_image(image_data=pil_image, name="example_pil")
여기서 my_metric, my_parameter, my_image.png는 자동으로 exp 객체가 나타내는 실험에 연결돼요.