Post

잡다한 모델 학습 tools

모델 학습에 직접적인 영향을 미치지는 않기만 모델을 더 효율적으로 학습하기 위해 사용한 툴

1. nohub

1
nohup python {train_model.py} > {training_log.txt} 2>&1 &
  • no hang up의 약자
  • > 또는 >>와 같은 리다이렉션을 이용해서 다른 파일에 출력
  • & 를 프로그램 실행시에 명령어 맨 끝에 붙여주면 해당 프로그램이 백그라운드로 실행
    1
    2
    
    ps -ef | grep python
    kill -9 {PID}
    
  • 위 명령어를 통해서 백그라운드로 돌고 있는 것을 확인
  • 이 명령어로 nvidia-smi으로 확인이 안되는 프로세스도 확인해서 kill할 수 있다.

2. tqdm

Progress bar 이중으로 활용하기

  • position 활용
  • leave=False : 반복문 완료시 진행률 출력을 남기지 않음
    1
    2
    3
    
    for sub in tqdm(dir_path, desc="Total progress : ", position=0):
      for f in tqdm(os.listdir(dir_path), desc=f"{sub} : ", leave = False, position=1):
      	print(f)
    

3. wandb

머신러닝 Experiment tracking tool 주로 모델의 학습 과정을 실시간으로 시각화하여 볼 수 있는 기능을 사용했다.

  • 머신러닝 모델 실험을 추적하기 위한 Dashboard 제공
  • Data를 loging하여 W&B로 시각화하고 query하는 데 사용
  • 실험을 document로 정리하여 collaborators와 공유


참고

This post is licensed under CC BY 4.0 by the author.