티스토리 뷰

 

 

 

 

Tensor Board로 딥네트웍 들여다보기

In [1]:
from PIL import Image
Image.open('board.png')
Out[1]:
 
  • 그래프가 복잡하고 wide하고 deep할 때 모양을 확인할 수 있다.(Visualize you TF graph)
  • 어떤 값들의 그림을 바로 그려줄 수 있다. (Plot quantitative metircs)
  • show additional data
 

숫자로 출력되니 너무 복잡해서 확인하기가 너무 어려워!!!

In [2]:
Image.open('old.png')
Out[2]:
 

TensorBoard를 사용하기 위한 5가지 스텝

 

1. From TF graph, decide which tensors you want to log

w2_hist = tf.summary.histogram("weight2", W2)
cost_summ = tf.summary.scalar("cost", cost)

2. Merge all summaries

summary = tf.summary.merge_all()

3. Create write and add graph

# Create summary writer
writer = tf.summary.FileWriter('.logs')
writer.add_graph(sess.graph)

4. Run summary merge and add_summary

s, _ = sess.run([summary, optimizer], feed_dict=feed_dict)
writer.add_summary(s, global_step=global_step)

5. Launch TensorBoard

tensorboard --logdir=./logs
 

1. 무엇을 로그할지 정한다

In [4]:
Image.open('example1.png')
Out[4]:
In [5]:
Image.open('example2.png')
Out[5]:
In [6]:
Image.open('example3.png')
Out[6]:
 

2, 3. Merge summaries and create writer after creating session

 
# Summary (다 합쳐)
summary = tf.summary.merge_all() 

# initialize (세션을 연다)
sess = tf.Session()
sess.run(tf.global_variables_initializer())

# Create summary writer (어느곳에 쓸 것인지 정한다. 그 후 세션 그래프를 골라 넣어줘)
writer = tf.summary.FileWriter(TB_SUMMARY_DIR)
writer.add_graph(sess.graph) # Add graph in the tensorboard
 

4. Run merged summary and write (add summary)

 
s, _ = sess.run([summary, optimizer], feed_dict=feed_dict) 
서머리를 실행시키고 실행시켜 얻은 값 s를 add_summary에 넣어준다.

writer.add_summary(s, global_step=global_step)  
학습하면서 0부터 n까지 변하는 값이 global_step

global_step += 1 
 

5. Launch tensorboard (local)

 
writer = tf.summary.FileWriter("./logs/xor_logs")


------------commend line-------------
$ tensorboard --logdir=./logs/xor_logs

Starting TensorBoard b'41' on port 6006

(You can navigate to http://127.0.0.1:6006)
 

local이 아니라 remote server에서 돌릴 경우

 
ssh -L local_port:127.0.0.1:remote_port username@server.com


--------------commend line-------------
local>  $ ssh -L 7007:121.0.0.0:6006 hunkim@server.com
server> $ tensorboard -logdir=./logs/xor_logs

(You can navigate to http://127.0.0.1:7007)
In [7]:
Image.open('result1.png')
Out[7]:
 

가끔 같은 형태의 모델을 돌리지만 옵션을 다르게 해서 돌리고 싶다. 그리고 값을 2개 3개 비교해보고 싶을 때

In [8]:
Image.open('multiple.png')
Out[8]:
 
tensorboard -logdir=./logs/xor_logs
    train = tf.train.GradientDescentOptimizer(learning_rate=0.1).minimize(cost)
    ...
    writer = tf.summary.FileWriter("./logs/xor_logs")
tensorboard -logdir=./logs/xor_logs_r0_01
    train = tf.train.GradientDescentOptimizer(learning_rate=0.01).minimize(cost)
    ...
    writer = tf.summary.FileWriter(""./logs/xor_logs_r0_01"")
tensorboard -logdir=./logs
 

MNIST가 학습되는 과정에 tensorboard를 이용해보자.

공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/12   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31
글 보관함