0. 먼저 tensorflow가 깔려있어야 함.
ex)conda create -n tb python=2.7
conda activate tb
conda install -c anaconda tensorflow
conda install tensorboardXdfdfdf
1. tensorboard를 그대로 활용하기(5분 사용법)
https://medium.com/@anthony_sarkis/tensorboard-quick-start-in-5-minutes-e3ec69f673af위 링크에 잘 나와있다. 아래는 그것을 요약한 것이다.
a. 값을 알고 싶은 부분에 아래 코드를 삽입한다.
pred = tf.nn.softmax( ... )
tf.summary.histogram('pred', pred)
loss = ...
tf.summary.scalar('loss', loss)
b. tf.Session()에 writer를 정의하고, training loop에 merge 및 writing하는 코드를 삽입한다.
with tf.Session() as sess:
train_writer = tf.summary.FileWriter('저장경로', sess.graph)
for i in range(70000):
merge = tf.summary.merge_all()
summary, total_loss, ... = sess.run([merge, loss, ...], ...)
train_writer.add_summary(summary, i)
c. 학습을 시작한 이후, terminal에 tensorboard --logdir 저장경로(혹은 그 상위 경로)에 입력 후,
주어지는 링크를 클릭하면 됨.
d. 이상하게 위의 코드를 사용하면 몇 iteration을 못 돌고, 시스템이 죽어(아마도 메모리문제로), 아래 코드를 대신 사용함.
2. tensorboardX를 활용하는 방법(3분)
https://github.com/lanpa/tensorboardXtensorboardX는 tensorboard를 쉽게, 다른 framework에서도 사용하도록 만든 library로 위에 사용법이 나와있다. 아래는 그 사용법을 요약한 것이다.
a. pip install tensorboardX 로 다운받는다.
b. 아래 코드를 삽입한다(위의 코드에 대응하는 부분은 bold로 표시).
from tensorboardX import SummaryWriter
writer = SummaryWriter('저장경로디렉토리')
# '저장경로디렉토리' 대신 comment='태그'으로 하면 현재 날짜-태그 형식으로 저장함.
for i in range(70000):
total_loss, ... = sess.run([loss, ...], ...)
writer.add_histogram('pred', pred, i)
writer.add_scalar('loss', total_loss, i)
writer.add_image('img', img, i)
ftr = ... [100, 784]
writer.add_embedding(ftr, metadata=label, label_img=images.unsqueeze(1))
# scalar값은 아래와 같이 json파일로 저장도 가능.
writer.export_scalars_to_json(json파일경로)
writer.close()
c. 학습을 시작한 이후, terminal에 tensorboard --logdir 저장경로(혹은 그 상위 경로)에 입력 후,
주어지는 링크를 클릭하면 됨.
d. 이상하게 위의 코드를 사용하면 몇 iteration을 못 돌고, 시스템이 죽어(아마도 메모리문제로), 아래 코드를 대신 사용함.