Docker 실습 강의노트

랫서·2025년 9월 17일

MLOps

목록 보기
7/11

docker 접속
docker ps -a #상태 체크
docker start <컨테이너명> #실행 (백그라운드에서 켜기)
docker exec -it <컨테이너명> bash #접속


apt install -y tree

상위에서 하위로 찾아가는 것만 가능
(하위 -> 상위도 가능하나 패키지 꼬일 가능성 높음)

파이썬은 현재 실행경로 기준으로 하위 경로만 참조
퍄 상위->하위로 가는 형태로 구성을 해야 모듈의 임포트 구성이 꼬이지 않음

sys.path.append(
os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
) 

해결 방법 : system path에 root디렉토리 등록해줌


  • 라인 넘버 보기 : :set nu

pip install icecream

추가 정보들을 식별하기 위해 print 함수 내에 여러가지 정보들을 맞춰줘야 됨 -> 매우 불편 귀찮 번거로움
그 대안으로 나온 모듈이 icecream
print 구문 대신 ic()로 대체하여 사용

해당 변수가 정리되어 보기 좋게 출력됨


pip install tqdm

추적관리 용이


pickle(pkl) 포맷으로 저장하기

import os
import pickle
import datetime

from src.utils.utils import model_dir


def model_save(model, model_params, epoch, loss, scaler, label_encoder):
    save_dir = model_dir(model.name)
    os.makedirs(save_dir, exist_ok=True)

    current_time = datetime.datetime.now().strftime("%y%m%d%H%M%S")
    dst = os.path.join(save_dir, f"E{epoch}_T{current_time}.pkl")

    save_data = {
        "epoch": epoch,
        "model_params": model_params,
        "model_state_dict": {
            "weights1": model.weights1,
            "bias1": model.bias1,
            "weights2": model.weights2,
            "bias2": model.bias2,
        },
        "loss": loss,
        "scaler": scaler,
        "label_encoder": label_encoder,
    }

    # 데이터 저장
    with open(dst, "wb") as f:
        pickle.dump(save_data, f)

    print(f"Model saved to {dst}")
# ... 학습 수행 코드

model_save(
   model=model,
   model_params=model_params,
   epoch=num_epochs,
   loss=train_loss,
   scaler=train_dataset.scaler,
   label_encoder=train_dataset.label_encoder,
)


피클 파일 생성됨 확인


pip install fire

파이썬 코드를 간단하게 커맨드라인 툴(CLI)로 바꿔주는 라이브러리.
함수나 클래스, 객체를 정의해두면 fire가 자동으로 파라미터를 분석해서 터미널에서 실행할 수 있게 만들어줌

import fire

def greet(name="world", times=1):
    for _ in range(times):
        print(f"Hello, {name}!")

if __name__ == "__main__":
    fire.Fire(greet)
python hello.py --name=SOEUN --times=3
Hello, SOEUN!
Hello, SOEUN!
Hello, SOEUN!

(python main.py train --model_name movie_predictor -n 2)


history 옵션 : 이제까지 실행한 명령어 목록 확인할 수 있음


Ctrl+R : 특정 키워드가 들어간 명령 찾기


pip install wandb (https://wandb.ai/)
머신러닝/딥러닝 실험 관리 도구.
모델 학습하면서 생기는 로그, 메트릭, 하이퍼파라미터, 모델 가중치, 시각화 결과 등을 자동으로 기록하고 웹 대시보드에서 확인할 수 있게 해줌


run이 많아졌을때 특정 실험의 비교가 아주 쉬워짐
버전관리 용이
run

profile
개발자로 다시 성장하고 싶은 사람입니다.

0개의 댓글