2016년 4월 25일 월요일

TensorFlow - TensorBoard 로 Tensor Graph 및 각종 정보 시각화 해보기

TensorFlow 는 명령형 인터페이스 이외에도, 웹상에서 상태를 볼 수 있는 TensorBoard 를 제공한다. TensorBoard를 이용하면, TensorFlow Graph 를 시각화 해 볼 수도 있고, Quantitative metrics 를 차트(plot) 형태로 볼 수도 있으며, understand, debug, optimize 등에 활용 가능하다.

아래는 TensorBoard 를 구동 및 활용하는 방법이다.


  1. TensorBoad 데몬 구동
    1. sudo tensorboard --logdir=/home/spiccato/tensorboard &
  2. OS 내부 방화벽 해제 
    1. iptables -F : 걍 귀찮으니까 다 끈다...
  3. 외부에서 접속해 보자.
    1. http://서버URL:6006
  4. 소스에서 로그를 남겨보자.
    1. TensorBoard 는 자동으로 모든 Training 이나 Test 를 시각화 해주진 않는다. 원하는 Log 를 Serialize ( TensorBoard 는 구글 답게 Protobuf 객체로 Serialize 한다. ) 하여 적절하게 객체에 담아 Disk 에 써 주면, 해당 Serialize Data 가 존재하는 위치를 LogDirectory 로 인지하여 데몬이 구동되어야, 시각화가 가능하다.
    2. 한가지 다행인 것은 디렉토리 관리가 가능하다는 점이다.
    3. 복수의 모델을 TensorBoard 로 관리하고자 할때, LogDirectory 안에 모델별로 디렉토리가 존재하고 해당 디렉토리를 내려가야 파일이 존재한다면, 해당 ParentDirectory 를 지정하는 경우 메뉴화 접근이 가능하다.
    4. 소스에서 로그를 남기는 부분에 대한 설명은 아래에 잘 명기 되어 있음.
      1. https://www.tensorflow.org/versions/r0.8/how_tos/summaries_and_tensorboard/index.html
      2. Log 의 Summary Write 메소드 수행시 경로 직정을 적절하게 잘 해주어야 함.
        1. train_writer = tf.train.SummaryWriter(FLAGS.summaries_dir + '/train', sess.graph)
        2. test_writer = tf.train.SummaryWriter(FLAGS.summaries_dir + '/test')
  5. 위에서 지정한 logdir 로 tensorboard 구동
    1. 아래 처럼 TensorFlow Graph 시각화 가능.
      1. CNN알고리즘 for MNIST
      2. Hidden Node 를 (+)클릭하여 Drill Down 상세화 해보기
      3. 아래는 x entropy mean 값 polt 그래프

댓글 없음:

댓글 쓰기