개발환경/Docker

[Docker] Docker 컨테이너에서 Tensorboard 사용하기

Ella_K 2022. 6. 18. 18:56

Tensorboard에 log 기록 (Pytorch)

 

1. Docker image에 tensorboard 설치

pip install tensorboardX

 

2. 모델 학습하면서 log 기록

# SummaryWriter import
from tensorboardX import SummaryWriter

# train_log_dir : log 저장 장소
train_writer = SummaryWriter(logdir=train_log_dir)


##### 학습 중 log 저장 #####

# ex
train_writer.add_scalar('lr', optim.param_groups[0]['lr'], epoch)
train_writer.add_scalar('val_psnr', mean_psnr, epoch)
train_writer.add_images('result', image, epoch)

###########################

# 학습 종료 후 train_writer 종료
train_writer.close()

 

*기록 용어 간단 정리*

1. add_scalars
train_writer.add_scalars('변수 이름', 변수(y축), x축 값)

2. add_image
train_writer.add_image('변수 이름', image, x축 값)
image는 tensor image (c, h, w), numpy image (c, h, w)

3. add_images
train_writer.add_images('변수 이름', images, x축 값)
image는 tensor images (n, c, h, w), numpy images (n, c, h, w)

더 많은건 https://pytorch.org/docs/stable/tensorboard.htm 참고

 


 

Tensorboard 실행

 

3. docker run 할때 호스트와 포트를 연결

nvidia-docker run -v <마운트할 디렉토리> -p 6000-6010:6000-6010 -it --name <container 이름> --rm <이미지 이름>:<tag> /bin/bash
-p 6000-6010:6000-6010 는 6000~6010 사이 포트를 모두 연결
-p 6010:6010 는 6010포트를 연결

 

4. Tensorboard 실행

tensorboard --logdir=log위치 --port=연결한 포트번호 

 

5.  웹 브라우저에서 http://서버주소:연결한 포트번호/  접속