2017년 12월 4일 월요일

Tensorflow 의 로그로 tensorboard 사용하기

Tensorboard 를 사용하면 Tensorflow 수행 후 남아있는 로그들을 이용하여 loss, learning rate 등을 손쉽게 그래프로 확인할 수 있습니다.

단, Tensorflow를 수행하는 python 코드에 나중에 tensorboard로 그래프화 할 수 있게끔 timestamp, 수행 로그 등을 남겨주는 코드가 미리 삽입되어 있어야 합니다.

해당 내용은 아래의 링크를 참조하세요.

저는 이미 training 시의 이벤트 로그를 남기도록 되어있는 python script를 가지고 Tensorflow를 수행했습니다.
이후, tensorboard를 수행하며 log가 위치한 path 정보를 --log dir 인자값으로 넘겨줍니다.

b7p284za@p10login1:/gpfs/gpfs_gl4_16mb/b7p284za/benchmark/tensorflow/train_log_single$ tensorboard --logdir=./
TensorBoard 0.1.8 at http://p10login1:6006 (Press CTRL+C to quit)
W1129 01:09:46.680698 Reloader tf_logging.py:86] Found more than one graph event per run, or there was a metagraph containing a graph_def, as well as one or more graph events.  Overwriting the graph with the newest event.

위와 같이 tensorboard 데몬이 실행되면, 브라우저를 통해 위 URL로 접근해봅니다. (POK 센터는 http://p10login1.pbm.ihost.com:6006 으로 접근합니다.)

다음과 같이 해당 logdir에 위치한 event log의 정보들을 읽어오고, 그래프로 표현해줍니다.
저의 경우, 여러차례 동일 스크립트를 수행하는 바람에 로그가 duplicate 되어 warning 메시지가 발생하였습니다만, logdir에 각 수행되는 TF job 별로 하부 directory를 지정하여 로그를 기록하면 위와 같은 문제는 없을것이라 생각합니다.

예를들어, 기본 로그 디렉토리를 /train_log_dir로 설정하는 경우, 각 수행하는 TF job 별로 하부 디렉토리를 구분하여 적재하면 아래와 같이 Tensorboard에서 Runs의 toggle을 구분하여 그래프를 볼수 있습니다.

(예) logdir = /train_log_dir
tf1 Job은 /train_log_dir/tf1_job_log
tf2 Job은 /train_log_dir/tf2_job_log



댓글 없음:

댓글 쓰기