Windows tensorboard 사용하기

1. 먼저 anaconda(64bit 권장)을 설치하세요.
링크 : https://www.anaconda.com/download/

2. tensorflow(cpu 혹은 gpu 설치하기)
먼저 anaconda prompt를 열어서


cpu 버전(nvidia gpu가 없는 경우)
pip install --upgrade tensorflow

gpu 버전(nvidia cuda 9.0, cudnn 7.0버전의 설치가 필요해요. 다른 버전일 경우 에러)
pip install --upgrade tensorflow-gpu

tensorflow 설치가 완료되면...
anaconda prompt에 먼저 python을 치시구요

import tensorflow as tf
hello = tf.constant('Hello, TensorFlow!')
sess = tf.Session()
print(sess.run(hello))

코드가 정상 작동되면 일단 tensorflow 설치는 정상적으로 된 셈이에요.

3. tensorboard 코드 실행시키기
anaconda prompt에 tensorboard --logdir=path/to/log-directory 를 치시면 됩니다.
--logdir=텐서보드 로그 경로구요.


텐서보드가 성정적으로 돌아가면 이런 식으로 나오게 되는데요.
1.7.0버전 기준으로 Tensorboard 1.7.0 at 뒤의 경로를 입력하면 tensorboard를 보실 수 있어요.
주의점은 tensorboard가 실행되는 drive와 tensorboard log 위치 드라이브가 동일해야 합니다.

성공적으로 로그가 실행되면

이런 식으로 실행 정확도와 그래프 등을 보실 수 있어요.
tensorboard 를 사용하기 위해서는 tensorflow 상에 로그를 남기는 코드를 추가해야 하는데요.
주석이 달린 아래의 mnist 예제 코드를 보시면, 추가해야 하는 코드들을 아실 수 있으실 듯요.


import tensorflow as tf

from tensorflow.examples.tutorials.mnist import input_data
mnist = input_data.read_data_sets("MNIST_data/", one_hot=True)

#MNIST 예시 프로그램
# with tf.name.scope() as scope는 tensorboard에 log를 남기기 위해 네트워크 단계별로 로그를 남기는 코드입니다.
# Layer 1 - softmax - cross_entropy - Train 순서로 돌아갑니다.
with tf.name_scope('Layer1') as scope:
    x = tf.placeholder(tf.float32, [None, 784])
    W = tf.Variable(tf.zeros([784, 10]))
    b = tf.Variable(tf.zeros([10]))

with tf.name_scope('Softmax') as scope:
    y = tf.nn.softmax(tf.matmul(x, W) + b)
    y_ = tf.placeholder(tf.float32, [None, 10])

with tf.name_scope('cross_entropy') as scope:
    cross_entropy = tf.reduce_mean(-tf.reduce_sum(y_ * tf.log(y), reduction_indices=[1]))

with tf.name_scope('Train') as scope:
    train_step = tf.train.GradientDescentOptimizer(0.5).minimize(cross_entropy)


init = tf.global_variables_initializer()
# 코드 돌리는 부분, sess.run()
sess = tf.Session()
sess.run(init)

# (1) 로그로 남길 값을 등록
tf.summary.scalar("loss",  cross_entropy)
# (2) 하나의 표현으로 병합
summ = tf.summary.merge_all()
# (3) 작성자 생성하면서 그래프 추가
writer = tf.summary.FileWriter('./logs_MN/loss_result2', sess.graph)

# 1000 회 iteration
for i in range(1000):
  batch_xs, batch_ys = mnist.train.next_batch(100)
  
  s, _ =  sess.run([summ,train_step], feed_dict={x: batch_xs, y_: batch_ys})
  #Tensorboard log writer with sess.run
  writer.add_summary(s, global_step=i)


correct_prediction = tf.equal(tf.argmax(y, 1), tf.argmax(y_, 1))
accuracy = tf.reduce_mean(tf.cast(correct_prediction, tf.float32))

# 결과 print
print(sess.run(accuracy, feed_dict={x: mnist.test.images, y_: mnist.test.labels}))

tensorboard 함수 참고자료
http://byungjin-study.blogspot.kr/2016/08/tensorboard.html

tensorboard api 원문 설명 자료
https://www.tensorflow.org/api_docs/python/index.html

댓글 없음:

댓글 쓰기

글에 대한 의문점이나 요청점, 남기고 싶은 댓글이 있으시면 남겨 주세요. 단 악성 및 스팸성 댓글일 경우 삭제 및 차단될 수 있습니다.

모든 댓글은 검토 후 게시됩니다.

Translate