TensorBoard를 사용한 모델 시각화

전통적인 프로그래밍과 달리 머신러닝은 종종 예측할 수 없는 경우가 많습니다. 선택해야하는 많은 파라미터를 포함하여 모델의 뉘앙스와 함께 데이터의 품질은 모두 학습 과정의 성공 또는 실패에 광범위한 영향을 미칩니다.
학습 과정을 통해 이러한 측정 항목 중 일부를 추적 할 수 있는 방법이 있을뿐 아니라 만든 모델의 구조를 살펴보면 모델을 조정하고 표시되는 문제를 디버깅 할 수 있습니다.

이 추상 프로세스는 시각화하기가 어려울 수 있지만 운좋게도 TensorFlow에는 내장된 솔루션이 있습니다.
TensorBoard는TensorFlow에서 기본 제공되는 시각화 기능을 통해 모델 구조를 보는 것부터 학습 진행 상황을 확인하는 것까지 광범위한 작업을 수행 할 수 있습니다.

 

 

TensorFlow는 후드 아래에서 연산 그래프의 개념을 사용합니다.

즉, 기존의 의미에서 두개의 숫자를 추가하는 대신 add 연산자를 생성하고 추가되는 값을 입력으로 전달합니다.

따라서 TensorFlow를 모델로 훈련 할 때 실제로 모든 것을 “그래프”의 일부로 실행합니다. TensorBoard는 이러한 모델 그래프를 시각화하여 원하는 모양을 볼 수 있으며 더 중요한 것은 원하는대로 모든 조각을 연결했는지 확인할 수 있습니다.

 

 

다음은 TensorFlow가 시각화한보다 복잡한 모델 그래프의 예입니다. TensorBoard를 사용하면 요소를 확대/축소하고 이동하고 확장하여 세부 정보를 볼 수 있습니다. 즉, 시각적 복잡성을 줄이는 데 도움이 되는 다양한 추상화 계층에서 모델을 볼 수 있습니다.

그러나 TensorBoard는 모델 구조를 보여주는 것만이 아닙니다. 또한 좋은 그래프에 메트릭의 진행을 플로팅 할 수 있습니다. 일반적으로 정확도, 손실, 교차 엔트로피 등을 표시합니다. 모델에 따라 다른 측정 항목이 중요 할 수 있습니다. TensorFlow의 미리 준비된 estimator에는 TensorBoard에 표시되도록 미리 구성된 많은 값이 있으므로 시작하기에 좋습니다.

TensorBoard는 히스토그램, 분포, 삽입, 오디오, 그림 및 텍스트 데이터를 비롯한 다양한 기타 정보를 표시 할 수 있습니다.

지금까지 사용해온 선형 모델을 사용한 TensorBoard의 예를 살펴 보겠습니다. 먼저 TensorBoard를 시작하고 다음을 실행하여 모델 구조와 체크포인트 파일이 저장된 디렉토리를 가리킵니다.

tensorboard –logdir=”/tmp/iris_model/”

그러면 포트 6006에서 로컬 서버가 시작됩니다. 로컬 호스트의 TensorBoard를 보려면 localhost : 6006으로 이동하십시오.

 

 

두번 클릭하면 축소 할 수 있습니다. 우리의 훈련은 손실이 감소하면서 진행되는 것을 볼 수 있습니다. 손실이 여전히 좋은 속도로 감소하고 있기 때문에 학습이 완전히 완료되지 않았음을 분명히 알 수 있습니다. 따라서 이 모델을 최대한 활용하려면 학습 과정을 조금 더 오래 실행시키는 것이 도움이됩니다.

이제 그래프 탭으로 가보겠습니다. 화면에서의 그래프는 매우 단순합니다.

 

 

더 자세한 내용을 보려면 (+) 기호를 클릭하여 각 블록을 확장 할 수 있습니다. 예를 들어 ‘선형’블록을 확장하면 여러 개의 하위 구성 요소로 구성됩니다. 스크롤하여 확대 및 축소하고 클릭한 채로 드래그 하여 이동할 수 있습니다.

또한 우리의 feature 컬럼인 “flower_features”라는 이름은 명명된 그래프 구성 요소로 나타납니다.

 

 

이렇게하면 디버깅을하고 그래프가 연결되는 방법을 식별하는 데 도움이 됩니다. 대부분의 TensorFlow 작업에는 이름을 지정할 수 있으므로 모델을 명확히 할 수 있는 좋은 방법이 될 수 있습니다.

원문
https://medium.com/…/visualizing-your-model-using-tensorboa…

Tags:

tensorflow

TensorBoard

시각화

디버깅

텐서보드