꺼내먹는지식 준
딥러닝 툴 및 팁 본문
로그 기반으로 실험이 유효하다, 모델이 학습이 잘 되었다등의 구조를 확인할 수 있는 ToolKits
Training Visualization
log를 항상 tracking할 수 있는 방식이 필요하다.
visualization tool 소개
Tensorboard
from torch.utils.tensorboard import SummaryWriter
logger = SummaryWriter(log, dir = f'results/{name}')
#해당 위치에 tensorboard 관련 로그가 저장 된다.
#학습 진행하면서 쌓인 로그를 다른 터미널에서 디렉토리 연결을 통해 로그를 트랙킹해서 볼 수 있다.
\
logger.add.scalar("Train/loss", train_loss, epoch*len(train_loader)+idx)
logger.add_scalar("Train/Accuracy" .... )
이미지가 학습되면서 batch에 따라 augmentation이 다르게 될 때, 어떤 식으로 이미지가 학습이 되었는가 바로 보기 어렵다. 하지만 이러한 것들을 보고 싶을 때, train batch loader 에서 나오는 이미지를 grid 형식으로 tensorboard에 추가하여 그래프를 그릴 수 있다.
아 이런걸로 학습을 시켰구나, 하고 알 수 있다.
이 외에도 여러 기능이 있다.
tensorboard
--logdir PATH log가 저장된 경로
--host ADDR 원격 서버에서 사용 시 0.0.0.0(default: localhost)
--port PORT 포트 번호
$\rightarrow$ 웹페이지에서 확인도 가능 서버에서 확인하려하면 로컬 호스트로 작동이 잘 안된다. 그래서 보통 원격 서버를 사용하는데, 이 때 다음과 같이 오픈해서 열려져있는 포트를 통해 tensorboard를 사용한다.
wandb
딥러닝 로그 깃허브 느낌
프로젝트 창이 나오면, 여러 각 프로젝트 확인할 수 있는 방식
사용 방식
pip install wandb 이후 위의 코드 실행
wandb 로그인을 먼저 해야 한다. 계정인증을 하는 과정
로그가 계정에 쌓일 수 있도록
처음에 여러 config 파일이 들어간다. 어떠한 로그가 발생한다 정해놓기 위한 config
Machine Learning Project
Jupyter Notebook
데이터 한번만 로드 해놓으면 이것저것 할 수 있다.
편리하고 interactive하다.
바로 결과 확인 가능
인터넷이 꺼지거나 중간에 끊기면 날라가기도한다. - 불안정성
Python IDLE
코드를 패키지화 하고 필요할 때 가져다 쓰는걸 python idle 이라 한다.
재사용이 가능하다. 쥬피터도 가능은 하지만, 환경 자체가 빠르게 실행하는 환경이고, IDLE 은 다음의 과정을 코드 베이스로 진행하게 된다.
강력한 디버깅 툴이 존재한다. (쥬피터도 3.0부터 존재는 하지만 ..)
어떤 코드도 어떻게 변화하나 트랙킹이 가능하다.
break point 를 찍는 등, 디버깅은 기본으로 할 줄 알아야 한다.
또한 실험 핸들링이 간단하다. (arg pass)
scheduling 돌려놓고 딴거 하면 된다.
팁들
EDA 를 볼 때 분석 코드를 보기보다는 설명글을 유심히 보세요.
필자의 생각, 의도를 알 수 있습니다.
추후 아이디에이션 할 때 스스로 정의할 수 있게 된다.
코드 볼 때는 디테일하게 보고, 언제나 활용 가능하도록 습득하자.
구성 요소를 풀어해쳐가며 library를 공부해야만 한다.
코드를 잊어도 원리를 기억해야 빠른 검색이 가능하다!
최신 논문 과 그 코드 참고할 수 있는 사이트
Paper with Codes