InformationSecurity-Study

[모두의 딥러닝] Tensor Board로 딥 네트워크 들여다보기 LAB02 본문

인공지능

[모두의 딥러닝] Tensor Board로 딥 네트워크 들여다보기 LAB02

-Shinwoo- 2019. 5. 2. 11:34

 

 

지난 실습에서 Neural Net을 이용하여 XOR문제를 해결해보았다. 

학습을 많이 할 때 진행상황을 한 눈에 볼 수 있게 하는 것이 TensorBoard이다. 

 

이전의 방법은 많은 숫자를 화면에 출력함으로써 값의 변화들을 보았는데, 숫자가 많으니 복잡한 경향이 있다.

 

 

5 steps of using TensorBoard

Tensorboard는 Step에 따라 Loss의 변화를 한 눈에 보여준다. 이를 사용하기 위한 5단계의 Step이 있다.

 

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

우선 TensorFlow로부터, 어떤 것을 Logging할 것인지 정하는 게 우선이다.

 

 

Step 2/3: Merge summaries and create writer After creating session

Merge summaries and create writer / After creating Session

어떤 것을 Logging할 것인지 정하고 일일이 쓰지 않고 한번에 쓰기 위해서 merge병합한다. 

그런 다음에 세션에 들어가서 어디에 summary를 기록할 지 파일의 위치를 정하고 세션의 그래프를 넣어준다.

그 후 이 summary 자체도 sess.run에 넣어주고 이를 실행시켜서 나오는 s를 summary에 추가해준다.

TensorBoard 실행시킬 때, 이 Summary가 저장되어 있는 Logging파일로 지정해주면 된다. 

 

 

 

Add scope for better graph hierarchy

Histogram은 여러 개의 값이니까 Step이 될 것이고 weight 값의 분포를 보여준다. 

그래프로 보고싶을 때 그래프를 한꺼번에 펼쳐놓으면 가시성이 떨어지기에 name_scope()함수로 계층별로

정렬이 가능하다. Layer1과 Layer2를 구분하여 볼 수 있는 장점이 있다.

 

 

 

 

Run merged summary and write (add summary)

summary를 실행시켜서 가져온 값인 S를 writer.add_summary에 넣어주면 된다. 

학습시키면서 변화하는 0~n까지의 step값을 넣어서 이에 따라 그래프가 생성된다.  

 

 

Step 5: Launch tensorboard (local/remote server) 

마지막으로 저장된 logging 파일을 Tensor Board로 실행시키면 끝이다!

 

 

 

Using Options!: Multiple runs

같은 형태의 모델을 돌리지만 다른 옵션을 적용하고 싶을 때 사용하면 된다. 

ex) Learning_rate을 달리하고 싶을 때, 두 개의 learning rate에 따른 학습 형태를 비교해볼 수 있다. 

 

 

LAB이라고 하긴 어렵지만 정리를 해보았다.

Tensorboard를 사용하면 눈으로 확인할 수 있다는 점에서 강점을 가지고 있다.

일반적으로 Jupyter나 Spyder를 이용해서 소스코드를 실행하면 입력에 따른 출력값만 보여주기에

잘 실행되고 있는 지 과정과정들을 확인하기 어려운데, 이 때 Tensorboard를 사용하면 좋을 것 같다.