강의 소개
PyTorch를 이용한 학습 시 metric등을 기록할 때, cli에 출력하는 print문 외에 사용할 수 있는 Tensorboard, weight & biases를 학습합니다. 이를 통해 딥러닝 모델 학습 실험들을 파라미터와 Metric들을 자동으로 저장하는 실험 관리 프로세스를 익힐 수 있고, 코드 버저닝, 협업 관리, 더 나아가 MLOps의 전체적인 흐름을 확인할 수 있습니다.
긴 학습 시간동안 목표로 했던 metric, loss등을 관리하기 위해 다양한 도구가 지원되고 있음.
- Tensorboard vs weight & biases(wandb)
Tensorboard
- TensorFlow의 프로젝트로 만들어진 시각화 도구
- 학습 그래프(computational graph), metric, 학습 결과의 시각화 지원
- PyTorch도 연결 가능 -> DL 시각화 핵심이자 기본 도구
- 다양한 형태의 값을 저장할 수 있지만, 아래 예시된 형태가 가장 많이 쓰임
- scalar : metric(acc,loss,precision,f1) 등 상수 값의 연속(epoch)을 표시
- graph : 모델의 computational graph 표시
- histogram : weight 등 값의 분포를 표현
- image,text : 에측값과 실제값을 비교 표시
- mesh : 3D 형태의 데이터를 표현하는 도구
- log 데이터를 저장한 directory 생성
- SummaryWriter() 모듈 호출하여 기록할 위치만 지정
- 지정한 모듈명 + "."(dot)_type => ex, writer.add_scalar()
- close() or flush()하여 write
- tensorboard --logdir{실제경로}하면 tensorboard가 6006 포트로 자동으로 생성
- load_ext tensorboard를 하면 jupyter나 colab에서 tensorboard 바로 사용 가능

wandb(Weight & biases)
- ML, DL 실험을 원활히 지원하기 위한 상용 도구로, MLOps 도구
- 협업, code versioning, 실험 결과 기록 등 제공
- git에서 코드, 모델, 데이터 부분을 나눠서 쓰는 것처럼 사용하며, metric board를 제공하여 실시간으로 모델의 점수를 올릴 수 있는 기능을 제공
- MLOps의 대표적인 툴로 저변 확대 중
- wnadb 설치
- config : 파라미터 정보, 이 부분은 for loop을 통해 다양하게 변경 가능
- wandb init(), 이겨서 config 부분은 이전에 project 파일에 넣어줘서 관리하면 편함
- 이후 wandb.log를 통해 tensorboard의 add_처럼 사용 하면 됨
