텐서보드 예제

이제 로그 이벤트가 기록되었으므로 텐서보드를 열 수 있습니다. 텐서보아는 포트 6006에서 실행됩니다 (주피터는 포트 8888에서 실행됩니다). MacOs 사용자에 대한 터미널 또는 Windows 사용자에 대한 Anaconda 프롬프트를 사용할 수 있습니다. 텐서보드는 이 URL에 http://localhost:6006 기본 아이디어를 얻기 위한 매우 간단한 예제를 살펴보겠습니다. 예제에서 가중치가 어떻게 변경되는지 확인할 수 있습니다. 코드를 보면 잘린_normal_initializer()를 사용하여 가중치를 초기화합니다. 예를 들어 MNIST 숫자를 인식하기 위한 컨볼루션 신경망을 교육한다고 가정합니다. 학습 속도가 시간에 따라 어떻게 달라지는지, 그리고 객관적인 함수가 어떻게 변화하고 있는지 를 기록하고 싶습니다. 학습 속도와 손실을 각각 출력하는 노드에 tf.summary.scalar ops를 연결하여 수집합니다. 그런 다음 각 scalar_summary에 `학습 속도` 또는 `손실 함수`와 같은 의미 있는 태그를 지정합니다. 히스토그램은 시간이 지남에 따라 값의 변화를 관찰하거나 싶다면 유용합니다. 비 스칼라 텐서의 값의 히스토그램을 플로팅하는 데 사용됩니다. 이렇게 하면 텐서 값의 히스토그램(및 분포)이 시간이 지남에 따라 변경되는 방식을 볼 수 있습니다.

신경망의 경우 일반적으로 가중치 및 편향 분포의 변화를 모니터링하는 데 사용됩니다. 네트워크 매개 변수의 불규칙한 동작을 감지하는 데 매우 유용합니다(예: 가중치가 비정상적으로 폭발하거나 축소되는 경우). MNIST 데이터 집합을 예로 사용하여 데이터를 정규화하고 이미지를 10개 클래스로 분류하기 위한 간단한 Keras 모델을 만드는 함수를 작성합니다. 이제 이전 예제로 돌아가 히스토그램 요약을 추가해 보겠습니다. TensorBoard를 사용하려면 먼저 추론 중에 로그를 저장하기 위한 디렉터리를 지정해야 합니다. 예를 들어 수동으로 추론을 제어하는 경우 모델의 문제를 신속하게 감지하는 한 가지 방법은 모델에서 일어나는 일을 실시간으로 그래픽 시각화하는 것입니다(예: 100회 반복마다). 따라서 모델이 이상하게 작동하면 명확하게 표시됩니다. 이것이 바로 텐서보드가 제공하는 것입니다. 표시해야 할 값을 결정할 수 있으며 학습 중에 해당 값의 실시간 시각화를 유지합니다. 이름에서 알 수 있듯이 이러한 유형의 요약은 텐서를 이미지로 작성하고 시각화하는 데 사용됩니다. 신경망의 경우, 일반적으로 네트워크에 공급되는 이미지(각 배치에서 말)나 출력에서 생성된 이미지(예: 자동 엔코더의 재구성된 이미지 또는 생성기 모델에서 만든 가짜 이미지)를 추적하는 데 사용됩니다. 생성 불리한 네트워크).

그러나 일반적으로 텐서 플롯에 사용할 수 있습니다. 예를 들어 크기 30×40의 가중치 행렬을 30×40 픽셀 이미지로 시각화할 수 있습니다. 이 튜토리얼에서는, 당신은 텐서 보드를 사용하는 방법을 보았다. 먼저 명령 프롬프트 (Windows) 또는 터미널 (우분투 / Mac)을 통해 서비스를 시작하는 방법을 배웠습니다. 다음으로, 텐서보드에서 제공하는 데이터의 다양한 뷰를 살펴보았습니다. 그런 다음 스칼라 값(예: 손실/정확도)을 시각화하는 코드를 살펴보고 피드포워드 신경망 모델을 사용하여 스칼라 값 시각화의 사용을 구체적으로 이해했습니다. 강력한 반면, TensorFlow 계산 그래프는 매우 복잡해질 수 있습니다. 그래프를 시각화하면 그래프를 이해하고 디버깅하는 데 도움이 됩니다.