꺼내먹는지식 준

Tensorboard, Weight & Biases 간단 사용 본문

AI/PyTorch

Tensorboard, Weight & Biases 간단 사용

알 수 없는 사용자 2022. 1. 26. 14:12

학습이 잘 되는지 않되는지를 관찰할 수 있는 좋은 Monitoring Tool이 있다. 

Loss 값의 변화, Accuracy의 변화 등을 관찰 할 수 있다. 

학습은 오랜 시간이 걸리기 때문에 관측이 필수이다. 

 

보통 Tensorboard, Weight & Biases 를 사용한다. 

 

Tensorboard 

TensorFlow의 프로젝트로 만들어진 시각화 도구 

학습 그래프, metric, 학습 결과의 시각화 지원 

Pytorch도 연결이 가능해서 DL 시각화의 기본 핵심 기능이다. 

 

1) scalar : metric 등 상수 값의 연속(epoch)을 표시 

2) graph : 모델의 computational graph 표시 

3) hisogram: weight 등 값의 분포를 표현 (보통 정규분포가 나오기를 기대한다.)

4) image: 예측 값과 실제 값을 비교 표시 

5) mesh: 3d 형태의 데이터를 표현하는 도구 

 

보통 디렉토리 명을 "실험 프로젝트명/실험의 이름" 으로 적는다. 

 

%tensorboard --logdir{logs_base_dir} 
6006 port 에 자동 생성 

 

폴더 명을 돌릴 때 마다 다르게 저장 하고 나면, 다음과 같이 tensorboard에 반영되어서, 각 실험을 비교해보며 볼 수 있다. 

 

한 그래프에 여러 정보를 밀어 넣는 방법도 있다. 

for i in range(100):
	writer.add_scalars('run_14h'), {'xsinx': i*np.sin(i/r), 'xcosx': i*np.cos(i/r), 'tanx': 'np.tan(i/r)'}

histogram 

for i in range(10):
	x.np.random.radom(100)
    writer.add_histogram('distribution centers', x+i, i)

img_batch = np.zeros((16, 3, 100, 100))
for i in range(16):
    img_batch[i, 0] = np.arange(0, 10000).reshape(100, 100) / 10000 / 16 * i
    img_batch[i, 1] = (1 - np.arange(0, 10000).reshape(100, 100) / 10000) / 16 * i

writer = SummaryWriter(logs_base_dir)
writer.add_images('my_image_batch', img_batch, 0)
writer.close()

Hyper parameter 값을 같이 기록해주자

Weight & Biases 

머신러닝 실험을 원할히 지원하기 위한 상용도구 

협업, code versioning, 실험 결과 기록 등 제공 

MLOps의 대표적인 툴로 저변 확대 중 

 

config 를 project template에 넣어놓으면 관리가 편하다. 

 

TensorBoard 에서 제공하는 기능들을 거의다 동일하게 제공을 해준다. 

프로젝트 형태로 저장되어 공유도 가능하고, 접근이 편하다는 점에서 좋지만, 유료다. 

 

 

Comments