다음을 통해 공유


TensorBoard

TensorBoard 는 TensorFlow, PyTorch, Hugging Face Transformers 및 기타 기계 학습 프로그램을 디버깅, 최적화 및 이해하기 위한 시각화 도구 모음입니다.

TensorBoard 사용

Azure Databricks에서 TensorBoard를 시작하는 것은 로컬 컴퓨터의 Jupyter Notebook에서 시작하는 것과 다르지 않습니다.

  1. %tensorboard 매직 명령을 로드하고 로그 디렉터리를 정의합니다.

    %load_ext tensorboard
    experiment_log_dir = <log-directory>
    
  2. %tensorboard 매직 명령을 호출합니다.

    %tensorboard --logdir $experiment_log_dir
    

    TensorBoard 서버가 시작되고 Notebook에 인라인으로 사용자 인터페이스가 표시됩니다. 또한 새 탭에서 TensorBoard를 여는 링크도 제공합니다.

    다음 스크린샷은 채워진 로그 디렉터리에서 시작된 TensorBoard UI를 보여 줍니다.

    채워진 로그 디렉터리에서 시작된 TensorBoard UI

TensorBoard의 Notebook 모듈을 직접 사용하여 TensorBoard를 시작할 수도 있습니다.

from tensorboard import notebook
notebook.start("--logdir {}".format(experiment_log_dir))

TensorBoard 로그 및 디렉터리

TensorBoard는 TensorBoard 또는 PyTorch의 TensorBoard 콜백 및 함수에 의해 생성된 로그를 읽어 기계 학습 프로그램을 시각화합니다. 다른 기계 학습 라이브러리에 대한 로그를 생성하려면 TensorFlow 파일 작성기를 사용하여 직접 로그를 작성할 수 있습니다(TensorFlow 2.x의 경우 모듈: tf.summary를 참조하고 TensorFlow 1.x의 이전 API의 경우 모듈: tf.compat.v1.summary 참조).

실험 로그가 안정적으로 저장되도록 하기 위해 Databricks는 임시 클러스터 파일 시스템이 아닌 클라우드 스토리지에 로그를 작성하는 것이 좋습니다. 각 실험에 대해 고유한 디렉터리에서 TensorBoard를 시작합니다. 로그를 생성하는 실험에서 기계 학습 코드의 각 실행에 대해 TensorBoard 콜백 또는 파일 작성기가 실험 디렉터리의 하위 디렉터리에 쓰도록 설정합니다. 이렇게 하면 TensorBoard UI의 데이터가 실행으로 구분됩니다.

TensorBoard를 사용하여 기계 학습 프로그램에 대한 정보를 기록하려면 공식 TensorBoard 설명서를 참조하세요.

TensorBoard 프로세스 관리

Azure Databricks Notebook 내에서 시작된 TensorBoard 프로세스는 Notebook이 분리되거나 REPL이 다시 시작될 때(예: Notebook의 상태를 지울 때) 종료되지 않습니다. TensorBoard 프로세스를 수동으로 종료하려면 %sh kill -15 pid를 사용하여 종료 신호를 보냅니다. 잘못 종료된 TensorBoard 프로세스가 손상 notebook.list()될 수 있습니다.

현재 클러스터에서 실행 중인 TensorBoard 서버를 해당 로그 디렉터리 및 프로세스 ID와 함께 나열하려면 TensorBoard Notebook 모듈에서 notebook.list()를 실행합니다.

알려진 문제

  • 인라인 TensorBoard UI는 iframe 안에 있습니다. 브라우저 보안 기능은 새 탭에서 링크를 열지 않는 한 UI 내의 외부 링크가 작동하지 않도록 합니다.
  • TensorBoard의 --window_title 옵션은 Azure Databricks에서 재정의됩니다.
  • 기본적으로 TensorBoard는 수신할 포트를 선택하기 위해 포트 범위를 검사합니다. 클러스터에서 실행 중인 TensorBoard 프로세스가 너무 많은 경우 포트 범위의 모든 포트를 사용할 수 없을 수 있습니다. --port 인수로 포트 번호를 지정하여 이 제한을 해결할 수 있습니다. 지정된 포트는 6006에서 6106 사이여야 합니다.
  • 다운로드 링크의 경우 탭에서 TensorBoard를 열어야 합니다.
  • TensorBoard 1.15.0을 사용할 때 프로젝터 탭이 비어 있습니다. 해결 방법으로 프로젝터 페이지를 직접 방문하려면 URL에서 #projectordata/plugin/projector/projector_binary.html로 바꿉니다.
  • TensorBoard 2.4.0에는 업그레이드할 경우 TensorBoard 렌더링에 영향을 줄 수 있는 알려진 문제가 있습니다.
  • TensorBoard 관련 데이터를 DBFS 또는 UC 볼륨에 로깅하는 경우 다음과 같은 No dashboards are active for the current data set오류가 발생할 수 있습니다. 이 오류를 해결하려면 데이터를 기록하는 데 사용한 후 호출 writer.flush()writer.close() 하는 writer 것이 좋습니다. 이렇게 하면 기록된 모든 데이터가 올바르게 작성되고 TensorBoard에서 렌더링할 수 있습니다.