Skip to content
cover-dataengineering

JupyterHub에 Tensorboard 연동하기

  • DataEngineering

📅 October 23, 2021

⏱️1 min read

이 글에서는 JupyterHub 사용자 환경에 tensorboard를 proxy 형태로 연동하는 방법에 대해 정리해보려고 합니다. 연동 과정으로 jupyter-server-proxy 라는 extension을 사용합니다.


기존 연동 방식

Jupyter Notebook에 Tensorboard를 연동하는 가장 쉬운 방법은 공식문서에 나와있는 %tensorboard 를 사용하는 방법입니다.

%load_ext tensorboard
%tensorboard --logdir logs

이 방법은 간단하지만 노트북 내에서 접근하거나 IP주소:포트번호를 통해 접근하게 됩니다.

따라서 JupyterHub와 같이 여러 사용자가 쓰는 환경이라면 나의 Tensorboard 프로세스에 어떤 주소를 통해 접근해야 하는지 매번 찾아야 합니다. 또한 JupyterHub는 인증 과정을 거치는 반면 프로세스로 직접 띄우는 텐서보드는 인증 없이 접근이 가능해집니다.


jupyter-server-proxy

jupyter-server-proxy는 외부 웹 서비스의 프록시를 지원하는 extension 입니다. jupyter-server-proxy를 통해 연동하면 다음과 같은 이점을 가질 수 있습니다.

  • tensorboard 프로세스는 JupyterLab Launcher를 통해 생성됩니다
  • 프록시를 통해 /hub/proxy/ 하위의 주소로 연결되므로 인증이 그대로 사용됩니다

jupyter-tensorboard-proxy 설치

# pip install jupyter-tensorboard-proxy

# log path
log_dir = "/home/jovyan/logs/" + datetime.datetime.now().strftime("%Y%m%d-%H%M")
tensorboard_callback = tf.keras.callbacks.TensorBoard(log_dir=log_dir, histogram_freq=1)

설치 방법은 아주 간단합니다. singleuser profile 이미지에 위의 패키지만 설치해주면 됩니다. 기본으로 바라보는 로그 경로는 $HOME/logs 입니다. 따라서 tensorflow 코드에서 로그 경로를 연결해주어야 합니다.

jupyter-ext


정리

tensorboard가 아니더라도 jupyter-server-proxy를 사용하면 Spark UI, R Studio Session 등 다양한 외부 웹 서비스들과 연동할 수 있습니다.

← PrevNext →
  • Powered by Contentful
  • COPYRIGHT © 2020 by @swalloow