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 및 Module: 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()될 수 있습니다.

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

알려진 문제

  • 인라인 TensorBoard UI는 iframe 내에 있습니다. 브라우저 보안 기능은 새 탭에서 링크를 열지 않는 한 UI 내의 외부 링크가 작동하지 않도록 합니다.
  • --window_title TensorBoard 옵션은 Azure Databricks에서 재정의됩니다.
  • 기본적으로 TensorBoard는 수신 대기할 포트를 선택하기 위해 포트 범위를 검색합니다. 클러스터에서 실행 중인 TensorBoard 프로세스가 너무 많으면 포트 범위의 모든 포트를 사용할 수 없을 수 있습니다. 인수를 사용하여 포트 번호를 --port 지정하여 이 제한을 해결할 수 있습니다. 지정된 포트는 6006에서 6106 사이여야 합니다.
  • 다운로드 링크가 작동하려면 탭에서 TensorBoard를 열어야 합니다.
  • TensorBoard 1.15.0을 사용하는 경우 프로젝터 탭이 비어 있습니다. 해결 방법으로 프로젝터 페이지를 직접 방문하려면 URLdata/plugin/projector/projector_binary.html에서 를 로 바꿀 #projector 수 있습니다.
  • TensorBoard 2.4.0에는 업그레이드된 경우 TensorBoard 렌더링에 영향을 줄 수 있는 알려진 문제가 있습니다.