꺼내먹는지식 준

딥러닝 툴 및 팁 본문

카테고리 없음

딥러닝 툴 및 팁

알 수 없는 사용자 2022. 2. 23. 12:52

로그 기반으로 실험이 유효하다, 모델이 학습이 잘 되었다등의 구조를 확인할 수 있는 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 

 

 

Comments