TensorFlow

TensorFlow는 Google에서 만든 기계 학습을 위한 오픈 소스 프레임워크입니다. CPU, GPU 및 GPU 클러스터에 대한 딥 러닝 및 일반 숫자 계산을 지원합니다. Apache 라이선스 2.0의사용 약관이 적용됩니다.

Machine Learning 대한 Databricks Runtime TensorFlow 및 TensorBoard를 포함하므로 패키지를 설치하지 않고도 이러한 라이브러리를 사용할 수 있습니다. 사용 중인 Databricks Runtime ML 버전에 설치된 TensorFlow 버전은 릴리스 정보 를 참조하세요. Databricks Runtime 사용하거나 다른 버전의 TensorFlow를 설치해야 하는 경우 지침은 TensorFlow 설치 또는 다운그레이드를 참조하세요.

참고

이 가이드는 TensorFlow에 대한 포괄적인 가이드가 아닙니다. TensorFlow 웹 사이트를 참조하세요.

단일 노드 및 분산 학습

단일 컴퓨터 워크플로를 테스트하고 마이그레이션하려면 단일 노드 클러스터를 사용합니다.

딥 러닝에 대한 분산 학습 옵션은 분산 학습을참조하세요.

예제 Notebook

다음 Notebook에서는 단일 노드 클러스터에서 TensorBoard 모니터링을 통해 TensorFlow(1.x 및 2.x)를 실행하는 방법을 보여 줍니다.

TensorFlow 1.15/2.x Notebook

Notebook 가져오기

TensorBoard

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

TensorBoard 사용

Databricks Runtime 7.2 이상에서 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 started in populated log directory

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

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

Databricks Runtime 7.1 이하에서 TensorBoard 사용

Notebook에서 TensorBoard를 시작하려면 dbutils.tensorboard 유틸리티를 사용합니다.

dbutils.tensorboard.start("/tmp/tensorflow_log_dir")

이 명령은 클릭하면 새 탭에서 TensorBoard를 여는 링크를 표시합니다.

이 API TensorBoard 사용을 시작하면 에서 중지하거나 클러스터를 종료할 때까지 계속 dbutils.tensorboard.stop() 실행됩니다.

참고

TensorFlow를 클러스터에 Azure Databricks 라이브러리로 연결하는 경우 TensorBoard를 시작하기 전에 Notebook을 다시 연결해야 할 수 있습니다.

TensorBoard 로그 및 디렉터리

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

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

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

TensorBoard 프로세스 관리

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

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

알려진 문제

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

TensorFlow 설치 또는 다운그레이드

Machine Learning 대한 Databricks Runtime TensorFlow가 포함됩니다. 각 Databricks Runtime ML 버전에 설치된 TensorFlow 버전은 릴리스 정보 를 참조하세요.

TensorFlow를 사용하려는 경우 Databricks는 Machine Learning Databricks Runtime사용하는 것이 좋습니다. 그러나 Databricks Runtime를 사용해야 하는 경우 TensorFlow를 수동으로 설치할 수 있습니다. 이 섹션에서는 Databricks Runtime 에 TensorFlow를 설치하고 Machine LearningDatabricks Runtime 설치된 버전을 다운그레이드하기 위한지침을 제공합니다.