텐서보드 예제

텐서 보드는 텐서 플로우 응용 프로그램에 대한 정보를 볼 수있는 웹 응용 프로그램입니다. 데이터는 텐서 플로우에 기록되고 텐서 보드에 의해 읽습니다. 기본 아이디어를 얻기 위해 매우 간단한 예제를 살펴보겠습니다. MNIST 데이터 집합을 예로 사용하여 데이터를 정규화하고 이미지를 10개 클래스로 분류하기 위한 간단한 Keras 모델을 만드는 함수를 작성합니다. Tensorboard는 모델을 이해하고 디버깅하고 최적화하기 위해 그래프 및 기타 도구를 시각화하는 데 사용되는 인터페이스입니다. 이제 로그 이벤트가 기록되었으므로 텐서보드를 열 수 있습니다. 텐서보아는 포트 6006에서 실행됩니다 (주피터는 포트 8888에서 실행됩니다). MacOs 사용자에 대한 터미널 또는 Windows 사용자에 대한 Anaconda 프롬프트를 사용할 수 있습니다. MNIST 분류는 가장 간단한 예 중 하나이며 여전히 5계층 신경망으로 해결할 수 없습니다. MNIST의 경우 5년 미만의 경우 90% 이상의 정확도를 달성하는 것이 어렵지 않습니다. 이는 텐서보드가 로그 파일을 찾을 수 없음을 의미합니다. CD를 올바른 경로로 가리키거나 로그 이벤트가 생성되었는지 다시 확인합니다. 그렇지 않은 경우 코드를 다시 실행합니다.

완성된 예제는 Jupyter 노트북으로 사용할 수 있습니다. 예를 들어 MNIST 숫자를 인식하기 위한 컨볼루션 신경망을 교육한다고 가정합니다. 학습 속도가 시간에 따라 어떻게 달라지는지, 그리고 객관적인 함수가 어떻게 변화하고 있는지 를 기록하고 싶습니다. 학습 속도와 손실을 각각 출력하는 노드에 tf.summary.scalar ops를 연결하여 수집합니다. 그런 다음 각 scalar_summary에 `학습 속도` 또는 `손실 함수`와 같은 의미 있는 태그를 지정합니다. TensorBoard의 이름을 정리하려면 추가 단계를 수행해야 합니다. 특히 계산 그래프에서 임의 변수 및 텐서에 대한 이름을 구성할 수 있습니다. 구체적인 예제를 제공하기 위해 레이블이 지정된 예제 ({(x_n, y_n)}}에서 숨겨진 구조를 유추하는 학습 학습 자습서를 확장합니다. 참고: TensorBoard는 동일한 디렉터리에서 여러 이벤트 파일을 보는 것을 좋아하지 않습니다. 이것은 디스플레이에 매우 끔찍한 곡선을 얻기로 이어질 수 있습니다. 따라서 데이터를 저장하려면 각 다른 예제(예: 요약/첫 번째, 요약/초,…)에 대해 별도의 폴더를 만들어야 합니다. 또 다른 명심해야 할 점은 실험을 다시 실행하려면(즉, 이미 채워진 폴더에 이벤트 파일을 저장) 먼저 기존 이벤트 파일을 삭제해야 한다는 것입니다.

강력한 반면, TensorFlow 계산 그래프는 매우 복잡해질 수 있습니다. 그래프를 시각화하면 그래프를 이해하고 디버깅하는 데 도움이 됩니다. 다음은 TensorFlow 웹 사이트에서 작업하는 시각화의 예입니다. 아래 예제에서는 모델을 작업 디렉토리( 예: 전자 필기장 또는 파이썬 파일을 저장하는 위치)에 저장합니다. 이 경로 내에서 TensorFlow는 자식 폴더 이름 linreg가 있는 train이라는 폴더를 만듭니다. 항목이 표준 정규 분포에서 온 크기 30×40의 행렬을 추가하여 이전 예제를 계속합니다. 이 행렬을 100번 초기화하고 시간에 따라 해당 항목의 분포를 플로팅합니다. 변형 추론을 통해 손실 함수 및 개별 용어로의 분해와 같은 정보도 포함됩니다. 이 특정 예제에서는 n_samples=1이 n_samples=5보다 분산이 더 높은 경향이 있지만 여전히 동일한 솔루션으로 수렴한다는 것을 보여 주며, 이는 여전히 동일한 솔루션으로 수렴됩니다.

아래 코드 예제는 간단한 MNIST 자습서를 수정한 것으로, 요약 작전을 추가하고 10단계마다 실행합니다. 이 것을 실행한 다음 텐서보드 –logdir=/tmp/tensorflow/mnist를 시작하면 교육 중에 가중치 또는 정확도가 어떻게 달라지는지와 같은 통계를 시각화할 수 있습니다.