yolov5나 mmcv 등을 사용하면서 학습 과정을 매 에폭마다 확인할 수 있고 결과까지 예쁘고(? 편하게 볼 수 있어 wandb를 연동하여 사용하고 있다.
회원가입을 하고 init이라는 아주 간단한 것만 해주면 학습 과정 및 결과를 기록하고 저장하기 편하다.
1️⃣ 회원 가입 & wandb 설치
위 사이트에서 wandb에 회원가입을 먼저 해야 한다. 구글과 깃허브 계정으로 쉽고 빠르게 회원 가입이 가능하다.
회원 가입을 한 후에 wandb를 설치 해 주어야 한다.
wandb를 사용할 가상환경에 접속한 후
pip install wandb
이렇게 wandb를 설치 해 주고 나면 아래와 같이 로그인을 위해 api를 입력하라는 메세지가 뜬다.
wandb login
wandb: You can find your API key in your browser here: https://app.wandb.ai/authorize
wandb: Paste an API key from your profile and hit enter:
https://app.wandb.ai/authorize
위 사이트에서 개인 api를 확인할 수 있고 이 api를 복사 붙여넣기 하면 wandb 로그인이 완료 된다.
2️⃣ pytorch에서 wandb 사용하기
◾ wandb init
pytorch에서 wandb를 사용하기 위해
wandb init
wandb init으로 wandb를 시작해 준다.
처음 실행하는 거라면 wandb에서 config 파일이 있는지 확인하고 config 파일이 있다면 This directory has been configured previously, should we re-configure it? 해당 문구가 뜨는데 이때 y를 입력하면 된다.
y를 입력하고 나면 project 이름을 새로 만들건지 랜덤으로 지정할 건지 물어본다. (처음 실행하는 거라면 위 사진과 달리 project 이름들이 없을 것이다. 나는 wandb를 자주 사용해서 선택지가 다양한 것이다.)
새로운 project 이름을 만들고 싶다면 해당 번호를 입력하고 원하는 이름을 입력하면 실행 시킬 코드에 입력할 코드를 알려준다.
◾ 코드 실행
위에서 알려준 코드를 실행할 코드에 추가 해주기만 하면 wandb 연동은 끝이다.
import wandb
wandb.init(project="생성한 project 이름", config={
"learning_rate": 0.0001,
"dropout": 0.2,
"architecture": "CNN",
"dataset": "COCO",
})
config = wandb.config
wandb.log({"acc":acc, "loss":loss})
나는 위에서 project 이름을 'test'로 생성하였기 때문에 project="생성한 project 이름"에서 test를 입력하면 되는 것이다.
이때 config라는 인자에 파라미터 튜닝에 필요한 변수들을 넣어준다. 또, log를 기록하고 싶다면 wandb.log를 사용하여 설정 할 수도 있다. 이때 wandb.log는 무조건 딕셔너리 형태로 들어가야만 한다.
wandb 설정을 실행시킬 코드에서 완료하였다면 이제 코드를 실행시키면 된다.
혹여나 코드 실행 시 wandb 오류가 난다면 내 경험 상 90%는 wandb 버전 문제였다.
https://github.com/wandb/wandb/issues/1409
해당 이슈를 보고 wandb 버전 문제에 따른 에러를 해결하였으니 혹시나 에러가 난다면 참고하는 것도 좋다.
3️⃣ wandb에서 확인
코드를 실행 시키고 나면 wandb 홈페이지에 내가 설정한 project 이름으로 project가 생성된 것을 확인할 수 있다. 나는 test project로 실행을 시키진 않아 과거에 진행했던 project들이 사진 속에 있는데,
여기서 dandy, lilac 등과 같이 생뚱맞은 name들은 wandb 실행 시 project 이름을 지정해 주지 않아 project 명이 uncategorized로 설정되어 랜덤으로 생성된 이름들이다.
해당 project들을 클릭하면
이렇게 학습 결과들을 확인할 수 있다.
metric 뿐 만 아니라 images도 확인 가능하며 개인이 커스텀하여 꾸밀 수도 있다.
더 많은 wandb 사용법 및 활용법은
https://github.com/wandb/examples
해당 사이트에서 볼 수 있다.