

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

# TensorBoard에서 Amazon SageMaker Debugger 출력 텐서 시각화하기
<a name="debugger-enable-tensorboard-summaries"></a>

**참고**  
Amazon SageMaker Debugger는 더 이상 신규 고객에게 공개되지 않습니다. 기존 고객은 서비스를 정상적으로 계속 사용할 수 있습니다.는 AWS Debugger의 보안 및 가용성 개선에 계속 투자하지만 새로운 기능을 도입할 계획은 없습니다. 자세한 내용은 [디버거 가용성 변경](debugger-availability-change.md) 단원을 참조하십시오.

**중요**  
이 페이지는 TensorBoard가 탑재된 Amazon SageMaker AI로 전환되어 지원이 중단됩니다. 이 페이지에서는 SageMaker 훈련 및 SageMaker AI 도메인의 액세스 제어 기능과 통합된 포괄적인 TensorBoard 경험을 제공합니다. 자세한 내용은 [Amazon SageMaker AI의 TensorBoard](tensorboard-on-sagemaker.md)를 참조하세요.

SageMaker Debugger를 사용하여 TensorBoard와 호환되는 출력 텐서 파일을 생성할 수 있습니다. 파일을 로드하여 TensorBoard에서 시각화하고 SageMaker 훈련 작업을 분석할 수 있습니다. Debugger는 TensorBoard와 호환되는 출력 텐서 파일을 자동으로 생성합니다. 출력 텐서를 저장하기 위해 사용자 지정하는 모든 후크 구성에 대해 Debugger는 TensorBoard로 가져올 수 있는 스칼라 요약, 분포, 히스토그램에 대한 유연성을 갖추고 있습니다.

![Debugger 출력 텐서 저장 메커니즘의 아키텍처 다이어그램.](https://docs.aws.amazon.com/ko_kr/sagemaker/latest/dg/images/debugger/debugger-tensorboard-concept.png)


`ModelTrainer`에 `DebuggerHookConfig` 및 `TensorBoardOutputConfig` 객체를 전달하여 이를 활성화할 수 있습니다.

다음 절차는 스칼라, 가중치 및 편향을 TensorBoard로 시각화할 수 있는 전체 텐서, 히스토그램 및 분포로 저장하는 방법을 설명합니다. Debugger는 이를 훈련 컨테이너의 로컬 경로(기본 경로는 `/opt/ml/output/tensors`)에 저장하고 Debugger 출력 구성 객체를 통해 전달된 Amazon S3 위치에 동기화합니다.

**Debugger를 사용하여 TensorBoard 호환 출력 텐서 파일을 저장하려면**

1. Debugger `TensorBoardOutputConfig` 클래스를 사용하여 TensorBoard 출력을 저장하도록 `tensorboard_output_config` 구성 객체를 설정합니다. `s3_output_path` 파라미터에는 현재 SageMaker AI 세션의 기본 S3 버킷 또는 선호하는 S3 버킷을 지정합니다. 이 예제에서는 `container_local_output_path` 파라미터를 추가하지 않고 대신 기본 로컬 경로 `/opt/ml/output/tensors`로 설정합니다.

   ```
   from sagemaker.core.debugger import TensorBoardOutputConfig
   from sagemaker.core.helper.session_helper import Session
   
   bucket = Session().default_bucket()
   tensorboard_output_config = TensorBoardOutputConfig(
       s3_output_path='s3://{}'.format(bucket)
   )
   ```

   자세한 내용은 [Amazon SageMaker Python SDK](https://sagemaker.readthedocs.io/en/stable)의 Debugger `[TensorBoardOutputConfig](https://sagemaker.readthedocs.io/en/stable/api/training/debugger.html#sagemaker.debugger.TensorBoardOutputConfig)` API를 참고하세요.

1. Debugger 후크를 구성하고 후크 파라미터 값을 사용자 지정합니다. 예를 들어, 다음 코드는 훈련 단계에서는 100단계마다, 검증 단계에서는 10단계마다 모든 스칼라 출력을 저장하고, `weights` 파라미터는 500단계마다(텐서 컬렉션을 저장하는 기본 `save_interval` 값은 500), 글로벌 단계가 500에 도달할 때까지 10개의 글로벌 단계마다 `bias` 파라미터를 저장하도록 Debugger 후크를 구성합니다.

   ```
   from sagemaker.debugger import CollectionConfig, DebuggerHookConfig
   
   hook_config = DebuggerHookConfig(
       hook_parameters={
           "train.save_interval": "100",
           "eval.save_interval": "10"
       },
       collection_configs=[
           CollectionConfig("weights"),
           CollectionConfig(
               name="biases",
               parameters={
                   "save_interval": "10",
                   "end_step": "500",
                   "save_histogram": "True"
               }
           ),
       ]
   )
   ```

   Debugger 구성 API에 대한 자세한 내용은 [Amazon SageMaker Python SDK](https://sagemaker.readthedocs.io/en/stable)의 Debugger `[CollectionConfig](https://sagemaker.readthedocs.io/en/stable/api/training/debugger.html#sagemaker.debugger.CollectionConfig)` 및 `[DebuggerHookConfig](https://sagemaker.readthedocs.io/en/stable/api/training/debugger.html#sagemaker.debugger.DebuggerHookConfig)` API를 참고하세요.

1. 구성 객체를 전달하는 Debugger 파라미터를 사용하여 SageMaker AI ModelTrainer를 구성합니다. 다음 예제 템플릿은 일반 SageMaker AI ModelTrainer를 생성하는 방법을 보여줍니다. 이 기능에 사용할 수 있는 ModelTrainer 프레임워크는 `[TensorFlow](https://sagemaker.readthedocs.io/en/stable/api/sagemaker_train.html)`, `[PyTorch](https://sagemaker.readthedocs.io/en/stable/api/sagemaker_train.html)`및 입니다`[MXNet](https://sagemaker.readthedocs.io/en/stable/api/sagemaker_train.html)`.

   ```
   from sagemaker.train import ModelTrainer
   
   model_trainer = ModelTrainer(
       ...
       # Debugger parameters
       debugger_hook_config=hook_config,
       tensorboard_output_config=tensorboard_output_config
   )
   model_trainer.train()
   ```

   `model_trainer.train()` 메서드는 훈련 작업을 시작하고 Debugger는 출력 텐서 파일을 Debugger S3 출력 경로와 TensorBoard S3 출력 경로에 실시간으로 씁니다. 출력 경로를 검색하려면 다음 ModelTrainer 메서드를 사용합니다.
   + Debugger S3 출력 경로의 경우, `model_trainer.latest_job_debugger_artifacts_path()`를 사용하세요.
   + TensorBoard S3 출력 경로의 경우 `model_trainer.latest_job_tensorboard_artifacts_path()`를 사용하세요.

1. 훈련이 완료되면 저장된 출력 텐서의 이름을 확인합니다.

   ```
   from smdebug.trials import create_trial
   trial = create_trial(model_trainer.latest_job_debugger_artifacts_path())
   trial.tensor_names()
   ```

1. Amazon S3에서 TensorBoard 출력 데이터를 확인합니다.

   ```
   tensorboard_output_path=model_trainer.latest_job_tensorboard_artifacts_path()
   print(tensorboard_output_path)
   !aws s3 ls {tensorboard_output_path}/
   ```

1. TensorBoard 출력 데이터를 노트북 인스턴스에 다운로드합니다. 예를 들어 다음 AWS CLI 명령은 TensorBoard 파일을 노트북 인스턴스의 현재 작업 디렉터리 `/logs/fit` 아래에 있는에 다운로드합니다.

   ```
   !aws s3 cp --recursive {tensorboard_output_path} {{./logs/fit}}
   ```

1. 파일 디렉터리를 TAR 파일로 압축하여 로컬 컴퓨터에 다운로드합니다.

   ```
   !tar -cf logs.tar logs
   ```

1. Tensorboard TAR 파일을 다운로드하여 장치의 디렉터리에 압축을 풀고, Jupyter notebook 서버를 시작하고, 새 노트북을 열고, TensorBoard 앱을 실행합니다.

   ```
   !tar -xf logs.tar
   %load_ext tensorboard
   %tensorboard --logdir logs/fit
   ```

다음 애니메이션 스크린샷은 5\~8단계를 보여주는 스크린샷입니다. Debugger TensorBoard TAR 파일을 다운로드하고 로컬 기기의 Jupyter notebook에 파일을 로드하는 방법을 보여줍니다.

![Debugger TensorBoard 파일을 로컬 컴퓨터에 다운로드하고 로드하는 방법을 보여주는 애니메이션입니다.](https://docs.aws.amazon.com/ko_kr/sagemaker/latest/dg/images/debugger/debugger-tensorboard.gif)
