본문 바로가기

PROJECT

[딥러닝 + TensorFlow] Tensor Board 사용해보기

참고 동영상 : https://youtu.be/eDKxY5Z5dVQ

 

▶ 지금까지 우리는 아래와 같이 Hypothesis값과 predicted로 정확도의 값, 그리고 Accuracy의 값을 단순히 print 형식을 사용해서 숫자로 확인하였다. 하지만 네트워크가 커지고 수행시간이 길어지면 보기 힘들어질 것이다. TensorBoard를 사용하면 이것을 시각화해서 한번에 볼 수 이다.

 

 

 

 

▶TensorBord를 사용하기위한 5단계

 

1. 그래프에서 어떤것을 출력하고 싶은지. 

   - with tf.name_scope("test") as scope : 에서 "test"는 노드의 이름

   - tf.histogram_summary("weight",W),tf.scalar_summary("accuracy",accuracy) : scalar는 백터가 아닌 값들을 말한다.  즉,  Hypothesis, predicted, Accuracy 갑들이라고 볼수있고, (레이블이름,변수이름)으로 선언해준다. histogram은

그 나머지 값들을 이용할 때 사용한다.

 

2.  merard : 실행시키고 싶은 것들을 모아준다.

 

3. writer : 쓰고싶은 위치를 지정해준다.

   위에서는 "/tmp/minist_logs"라는 디렉토리 위치를 지정해주었다.

 

4. summary : 세션 실행

 

5. cmd창에서 tensorboard --logdir= 선정한 디렉토리 path

 

 

   

▶예제

위에서 우리가 사용하는 변수에 naem=변수이름 이렇게 정해주어야한다. 

 

 

-그리고 위에 처럼 변수들을 Grouping을 할 필요가 있다. 위의 사진은 layer1만 관계된것, cost만 관계된것, train만 관계된것등을 구분해서 Grouping을 해주었다.

-summary : 변수에 성격에 맞춰 각각 histogram과 scalar로 묶어주면된다.

 

- merged_summary : 그동안 실행시키기위해 선언했던 것들을 모아준다.

- writer : 디렉토리 위치를 선정해준다.

- summary값을 writer에 넣어준다. 단, 학습은 매번하지만 조건문을 주어서 정해진 순간만 기록하게한다.

 

 

▶결과

-graph

graph탭에 들어가면 나타나는 그림이다.

이렇게 나타난 이유는 텐서플로우는 모든 연산을 그래프화해서 처리해서 그렇다. 그렇기에 자동적으로 backpropagation을 할 수 있는 것이다.

 

 

-add history

histogram에 대한 값들이 그래프로 나타난 것들을 볼 수 있다.

 

 

-scalar

가장 관심있는 값이 이 scalar로 지정된 값들일것이다. 위에 그림을 보면 cost는 점점 줄어들과 accuracy는 위로 증가하는 가장 이상적인 형태들을 시각적으로 볼 수 있을 것이다.

 

 

※ 더 자세한 코드는 위에 첨부된 동영상을 통해 확인할 수 있다.