

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

# Debugger 자습서
<a name="debugger-tutorial"></a>

다음 주제에서는 Debugger를 사용하여 SageMaker 훈련 작업을 모니터링, 프로파일링 및 디버깅하는 기본 사용 사례부터 고급 사용 사례까지의 자습서를 다룹니다. Debugger 기능을 살펴보고 디버거를 사용하여 기계 학습 모델을 효율적으로 디버깅하고 개선하는 방법을 알아봅니다.

**Topics**
+ [Debugger 자습 비디오](debugger-videos.md)
+ [Debugger 예제 노트북](debugger-notebooks.md)
+ [Debugger 고급 데모 및 시각화](debugger-visualization.md)

# Debugger 자습 비디오
<a name="debugger-videos"></a>

다음 동영상은 SageMaker Studio 및 SageMaker AI 노트북 인스턴스를 사용하는 Amazon SageMaker Debugger 기능에 대한 둘러보기를 제공합니다.

**Topics**
+ [Studio Classic에서 Amazon SageMaker Debugger로 모델 디버깅하기](#debugger-video-get-started)
+ [Amazon SageMaker Debugger 및 SageMaker AI Model Monitor에 대한 심층 분석](#debugger-video-dive-deep)

## Studio Classic에서 Amazon SageMaker Debugger로 모델 디버깅하기
<a name="debugger-video-get-started"></a>

*Julien Simon, AWS Technical Evangelist \$1 길이: 14분 17초*

이 자습서 비디오에서는 Amazon SageMaker Debugger를 사용하여 훈련 모델에서 디버깅 정보를 캡처하고 검사하는 방법을 보여 줍니다. 이 비디오에서 사용되는 예제 훈련 모델은 TensorFlow 백엔드가 있는 Keras를 기반으로 하는 단순한 컨볼루션 신경망(CNN)입니다. Debugger 및 TensorFlow 프레임워크의 SageMaker AI를 사용하면 훈련 스크립트를 사용하여 직접 예측기를 구축하고 훈련 작업을 디버깅할 수 있습니다.

[![AWS Videos](http://img.youtube.com/vi/https://www.youtube.com/embed/MqPdTj0Znwg/0.jpg)](http://www.youtube.com/watch?v=https://www.youtube.com/embed/MqPdTj0Znwg)


작성자가 제공한 [이 Studio 데모 리포지토리](https://gitlab.com/juliensimon/amazon-studio-demos/-/tree/master)에서 비디오의 노트북 예를 찾을 수 있습니다. `debugger.ipynb` 노트북 파일과 `mnist_keras_tf.py` 훈련 스크립트를 SageMaker Studio 또는 SageMaker Notebook 인스턴스에 복제해야 합니다. 두 파일을 복제한 후 `debugger.ipynb` 노트북 내의 `mnist_keras_tf.py` 파일을 `keras_script_path` 경로로 지정합니다. 예를 들어 동일한 디렉터리에 두 파일을 복제한 경우에는 이를 `keras_script_path = "mnist_keras_tf.py"`로 설정합니다.

## Amazon SageMaker Debugger 및 SageMaker AI Model Monitor에 대한 심층 분석
<a name="debugger-video-dive-deep"></a>

*Julien Simon, AWS Technical Evangelist \$1 길이: 44분 34초*

이 비디오 세션에서는 모델의 생산성과 품질을 향상시키는 데 도움이 되는 Debugger 및 SageMaker Model Monitor의 고급 기능에 대해 살펴봅니다. 먼저 이 비디오에서는 훈련 문제를 감지 및 수정하고, 텐서를 시각화하고, Debugger를 사용하여 모델을 개선하는 방법을 보여 줍니다. 다음으로 동영상의 22:41에서는 프로덕션 환경에서 모델을 모니터링하고 예측 문제(예: SageMaker AI Model Monitor를 사용할 때 기능 누락 또는 데이터 드리프트)를 식별하는 방법을 보여줍니다. 마지막으로 기계 학습 예산을 최대한 활용하는 데 도움이 되는 비용 최적화 팁을 제공합니다.

[![AWS Videos](http://img.youtube.com/vi/https://www.youtube.com/embed/0zqoeZxakOI/0.jpg)](http://www.youtube.com/watch?v=https://www.youtube.com/embed/0zqoeZxakOI)


작성자가 제공한 [이 AWS Dev Days 2020 리포지토리](https://gitlab.com/juliensimon/awsdevdays2020/-/tree/master/mls1)의 비디오에서 예제 노트북을 찾아볼 수 있습니다.

# Debugger 예제 노트북
<a name="debugger-notebooks"></a>

[SageMaker Debugger 예제 노트북](https://github.com/aws/amazon-sagemaker-examples/tree/master/sagemaker-debugger/)은 [aws/amazon-sagemaker-examples](https://github.com/aws/amazon-sagemaker-examples) 리포지토리에서 제공됩니다. 디버거 예제 노트북은 디버깅 및 프로파일링 훈련 작업의 기본부터 고급 사용 사례까지 안내합니다.

대부분의 예시는 Amazon EC2, Amazon S3, Amazon SageMaker Python SDK를 포함하여 SageMaker AI 에코시스템에서의 훈련 작업을 위해 설계되었으므로 SageMaker Studio 또는 SageMaker Notebook 인스턴스에서 예시 노트북을 실행하는 것이 좋습니다.

예제 리포지토리를 SageMaker Studio에 복제하려면 Amazon [SageMaker Studio Tour](https://docs.aws.amazon.com/sagemaker/latest/dg/gs-studio-end-to-end.html)의 지침을 따르세요.

**중요**  
새로운 디버거 기능을 사용하려면 SageMaker Python SDK와 `SMDebug` 클라이언트 라이브러리를 업그레이드해야 합니다. iPython 커널, Jupyter Notebook 또는 JupyterLab 환경에서 다음 코드를 실행하여 최신 버전의 라이브러리를 설치하고 커널을 다시 시작합니다.  

```
import sys
import IPython
!{sys.executable} -m pip install -U sagemaker smdebug
IPython.Application.instance().kernel.do_shutdown(True)
```

## 훈련 작업을 프로파일링하기 위한 디버거 예제 노트북
<a name="debugger-notebooks-profiling"></a>

다음 목록은 다양한 기계 학습 모델, 데이터세트 및 프레임워크에 대한 훈련 작업을 모니터링하고 프로파일링할 수 있는 Debugger의 적응성을 소개하는 Debugger 예제 노트북입니다.


| 노트북 제목 | 프레임워크 | 모델 | 데이터세트 | 설명 | 
| --- | --- | --- | --- | --- | 
|  [Amazon SageMaker Debugger 프로파일링 데이터 분석](https://sagemaker-examples.readthedocs.io/en/latest/sagemaker-debugger/debugger_interactive_analysis_profiling/interactive_analysis_profiling_data.html)  |  TensorFlow  |  Keras ResNet50  | Cifar-10 |  이 노트북은 SageMaker Debugger에서 캡처한 프로파일링된 데이터의 대화형 분석을 소개합니다. `SMDebug` 대화형 분석 도구의 전체 기능을 살펴봅니다.  | 
|  [Amazon SageMaker Debugger를 사용한 기계 학습 훈련 프로파일링하기](https://sagemaker-examples.readthedocs.io/en/latest/sagemaker-debugger/tensorflow_nlp_sentiment_analysis/sentiment-analysis-tf-distributed-training-bringyourownscript.html)  |  TensorFlow  |  1차원 컨벌루션 신경망  |  IMDB 데이터세트  |  긍정적 또는 부정적 정서가 있는 것으로 분류된 영화 리뷰로 구성된 IMDB 데이터의 감정 분석을 위해 TensorFlow 1-D CNN을 프로파일링합니다. 스Studio Debugger 인사이트 및 Debugger 프로파일링 보고서를 살펴봅니다.  | 
|  [다양한 분산형 훈련 설정을 사용하여 TensorFlow ResNet 모델 훈련을 프로파일링하기](https://github.com/aws/amazon-sagemaker-examples/tree/master/sagemaker-debugger/tensorflow_profiling)  |  TensorFlow  | ResNet50 | Cifar-10 |  다양한 분산형 훈련 설정으로 TensorFlow 훈련 작업을 실행하고, 시스템 리소스 사용률을 모니터링하고, 디버거를 사용하여 모델 성능을 프로파일링합니다.  | 
|  [다양한 분산형 훈련 설정을 사용하여 PyTorch ResNet 모델 훈련을 프로파일링하기](https://github.com/aws/amazon-sagemaker-examples/tree/master/sagemaker-debugger/pytorch_profiling)   | PyTorch |  ResNet50  | Cifar-10 |  다양한 분산형 훈련 설정으로 PyTorch 훈련 작업을 실행하고, 시스템 리소스 사용률을 모니터링하고, Debugger를 사용하여 모델 성능을 프로파일링합니다.  | 

## 모델 매개변수 분석을 위한 디버거 예제 노트북
<a name="debugger-notebooks-debugging"></a>

다음 목록은 다양한 기계 학습 모델, 데이터세트 및 프레임워크에 대한 디버그 훈련 작업에 대한 디버거의 적응성을 소개하는 디버거 예제 노트북입니다.


| 노트북 제목 | 프레임워크 | 모델 | 데이터세트 | 설명 | 
| --- | --- | --- | --- | --- | 
|  [Amazon SageMaker Debugger - 기본 제공된 규칙 사용](https://github.com/aws/amazon-sagemaker-examples/tree/master/sagemaker-debugger/tensorflow_builtin_rule)  |  TensorFlow  |  컨볼루션 신경망  | MNIST |  Amazon SageMaker Debugger가 기본 제공하는 규칙을 사용하여 TensorFlow 모델을 디버깅합니다.  | 
|  [Amazon SageMaker Debugger - Tensorflow 2.1](https://github.com/aws/amazon-sagemaker-examples/tree/master/sagemaker-debugger/tensorflow2)  |  TensorFlow  |  ResNet50  | Cifar-10 |  Amazon SageMaker Debugger 후크 구성과 기본 제공된 규칙을 사용하여 Tensorflow 2.1 프레임워크로 모델을 디버깅합니다.  | 
|  [MXNet 훈련의 디버깅 텐서 시각화](https://github.com/aws/amazon-sagemaker-examples/tree/master/sagemaker-debugger/mnist_tensor_plot)  |  MXNet  |  글루온 컨벌루션 신경망  | Fashion MNIST |  훈련 작업을 실행하고 이 작업의 모든 텐서를 저장하도록 SageMaker Debugger를 구성한 다음, 노트북에서 해당 텐서를 시각화합니다.  | 
|  [Amazon SageMaker Debugger로 스팟 훈련 활성화하기](https://github.com/aws/amazon-sagemaker-examples/tree/master/sagemaker-debugger/mxnet_spot_training)   | MXNet |  글루온 컨벌루션 신경망  | Fashion MNIST |  Debugger가 스팟 인스턴스의 훈련 작업에서 텐서 데이터를 수집하는 방법과 Debugger의 기본 제공 규칙을 관리형 스팟 훈련과 함께 사용하는 방법을 알아봅니다.  | 
| [Amazon SageMaker Debugger를 사용하여 개인의 소득을 예측하는 XGBoost 모델을 설명합니다.](https://sagemaker-examples.readthedocs.io/en/latest/sagemaker-debugger/xgboost_census_explanations/xgboost-census-debugger-rules.html) | XGBoost |  XGBoost 회귀  |  [성인 인구 조사 데이터세트](https://archive.ics.uci.edu/ml/datasets/adult)  | 디버거 후크와 기본 제공된 규칙을 사용하여 손실 값, 특징, SHAP 값과 같은 XGBoost 회귀 모델에서 텐서 데이터를 수집하고 시각화하는 방법을 알아봅니다. | 

모델 매개변수 및 사용 사례에 대한 고급 시각화를 찾으려면 [Debugger 고급 데모 및 시각화](debugger-visualization.md)에서 다음 주제를 참고하세요.

# Debugger 고급 데모 및 시각화
<a name="debugger-visualization"></a>

다음 데모에서는 Debugger를 이용한 고급 사용 사례 및 시각화 스크립트를 안내합니다.

**Topics**
+ [Amazon SageMaker Experiments 및 Debugger를 이용한 모델 훈련 및 정리](#debugger-visualization-video-model-pruning)
+ [[SageMaker Debugger를 사용하여 컨볼루션 자동 인코더 모델 훈련 모니터링](https://sagemaker-examples.readthedocs.io/en/latest/sagemaker-debugger/model_specific_realtime_analysis/autoencoder_mnist/autoencoder_mnist.html)](#debugger-visualization-autoencoder_mnist)
+ [[SageMaker Debugger를 사용하여 BERT 모델 훈련에서 주의 모니터링](https://sagemaker-examples.readthedocs.io/en/latest/sagemaker-debugger/model_specific_realtime_analysis/bert_attention_head_view/bert_attention_head_view.html)](#debugger-visualization-bert_attention_head_view)
+ [[SageMaker Debugger를 사용하여 컨볼루션 신경망(CNNs)에서 클래스 활성화 맵 시각화](https://sagemaker-examples.readthedocs.io/en/latest/sagemaker-debugger/model_specific_realtime_analysis/cnn_class_activation_maps/cnn_class_activation_maps.html)](#debugger-visualization-cnn_class_activation_maps)

## Amazon SageMaker Experiments 및 Debugger를 이용한 모델 훈련 및 정리
<a name="debugger-visualization-video-model-pruning"></a>

*Nathalie Rauschmayr 박사, AWS 응용 과학자 \$1 길이: 49분 26초*

[![AWS Videos](http://img.youtube.com/vi/https://www.youtube.com/embed/Tnv6HsT1r4I/0.jpg)](http://www.youtube.com/watch?v=https://www.youtube.com/embed/Tnv6HsT1r4I)


Amazon SageMaker Experiments 및 Debugger로 훈련 작업 관리를 간소화할 수 있는 방법을 알아보세요. Amazon SageMaker Debugger는 훈련 작업을 투명하게 시각화하고 훈련 지표를 Amazon S3 버킷에 저장합니다. SageMaker Experiments는 사용자가 SageMaker Studio를 통해 훈련 정보를 *평가*로 호출할 수 있게 하고 훈련 작업의 시각화를 지원합니다. 이렇게 하면 중요도 순위에 따라 중요도가 낮은 파라미터를 줄이면서 모델 품질을 우수하게 유지할 수 있습니다.

이 동영상에서는 모델 정확도에 대한 높은 표준을 유지하면서 사전 훈련된 ResNet50 및 AlexNet 모델을 가볍고 경제적으로 만드는 *모델 정리* 기법을 보여줍니다.

SageMaker AI 예측기는 PyTorch 프레임워크를 이용하여 AWS 딥 러닝 컨테이너의 PyTorch 모델 Zoo에서 제공되는 알고리즘을 훈련시키며, Debugger는 훈련 프로세스에서 훈련 지표를 추출합니다.

또한이 동영상에서는 정리된 모델의 정확도를 모니터링하고, 정확도가 임계값에 도달하면 Amazon CloudWatch 이벤트와 AWS Lambda 함수를 트리거하고, 중복 반복을 방지하기 위해 정리 프로세스를 자동으로 중지하도록 Debugger 사용자 지정 규칙을 설정하는 방법을 보여줍니다.

학습 목표는 다음과 같습니다.
+  SageMaker AI를 이용하여 ML 모델 훈련을 가속화하고 모델 품질을 개선하는 방법을 알아봅니다.
+  입력 파라미터, 구성 및 결과를 자동으로 캡처하여 SageMaker Experiments를 통해 훈련 반복을 관리하는 방법을 알아보세요.
+  Debugger를 사용해 가중치, 그라데이션, 합성곱 신경망의 활성화 출력 등 여러 지표에서 실시간 텐서 데이터를 자동으로 캡처하여 훈련 프로세스를 투명하게 만드는 방법을 알아보세요.
+ Debugger가 문제를 발견하면 CloudWatch를 사용하여 Lambda를 트리거하세요.
+  SageMaker Experiments 및 Debugger를 사용하여 SageMaker 훈련 프로세스를 마스터하세요.

이 동영상에서 사용된 노트북 및 훈련 스크립트는 [SageMaker Debugger PyTorch 반복 모델 정리](https://github.com/awslabs/amazon-sagemaker-examples/tree/master/sagemaker-debugger/pytorch_iterative_model_pruning)에서 확인할 수 있습니다.

다음 이미지는 반복 모델 정리 프로세스를 이용해 활성화 출력 및 그라데이션에 의해 평가된 중요도 순위를 기반으로 중요도가 가장 낮은 100개의 필터를 잘라내어 AlexNet의 크기를 줄이는 방법을 보여줍니다.

정리 프로세스를 통해 초기 5,000만 개의 파라미터가 1,800만 개의 파라미터로 줄어들었습니다. 또한 예상 모델 크기가 201MB에서 73MB로 줄어들었습니다.

![\[모델 정리 결과 출력 시각화가 포함된 이미지\]](http://docs.aws.amazon.com/ko_kr/sagemaker/latest/dg/images/debugger/debugger-model-pruning-results-alexnet.gif)


모델 정확도 역시 추적해야 합니다. 다음 이미지는 SageMaker Studio의 파라미터 수에 따라 모델 정확도의 변경사항을 시각화하기 위해 모델 정리 프로세스를 표시하는 방법을 보여줍니다.

![\[SageMaker Studio의 Debugger를 이용한 텐서 시각화에 대한 이미지\]](http://docs.aws.amazon.com/ko_kr/sagemaker/latest/dg/images/debugger/debugger-model-pruning-studio.png)


SageMaker Studio에서 **실험** 탭을 선택하고 Debugger가 정리 프로세스에서 저장한 텐서의 목록을 선택한 다음, **평가 구성 요소 목록** 패널을 구성하세요. 반복 10개를 모두 선택한 다음 **차트 추가**를 선택하여 **평가 구성 요소 차트**를 생성하세요. 배포할 모델을 결정한 후 평가 구성 요소를 선택하고, 작업을 수행할 메뉴를 선택하거나 **모델 배포**를 선택하세요.

**참고**  
다음 노트북 예제를 사용하여 SageMaker Studio를 통해 모델을 배포하려면 `train.py` 스크립트의 `train` 함수 끝 부분에 한 줄을 추가하세요.  

```
# In the train.py script, look for the train function in line 58.
def train(epochs, batch_size, learning_rate):
    ...
        print('acc:{:.4f}'.format(correct/total))
        hook.save_scalar("accuracy", correct/total, sm_metric=True)

    # Add the following code to line 128 of the train.py script to save the pruned models
    # under the current SageMaker Studio model directory
    torch.save(model.state_dict(), os.environ['SM_MODEL_DIR'] + '/model.pt')
```

## [SageMaker Debugger를 사용하여 컨볼루션 자동 인코더 모델 훈련 모니터링](https://sagemaker-examples.readthedocs.io/en/latest/sagemaker-debugger/model_specific_realtime_analysis/autoencoder_mnist/autoencoder_mnist.html)
<a name="debugger-visualization-autoencoder_mnist"></a>

이 노트북은 SageMaker Debugger가 수기로 쓴 숫자로 구성된 MNIST 이미지 데이터세트에서 감독되지 않은(또는 자체 감독된) 학습 프로세스의 텐서를 시각화하는 방법을 보여줍니다.

이 노트북의 훈련 모델은 MXNet 프레임워크가있는 컨볼루션 자동 인코더입니다. 컨볼루션 자동 인코더에는 인코더 부분과 디코더 부분으로 구성된 병목 모양의 컨볼루션 신경망이 있습니다.

이 예제의 인코더에는 입력 이미지의 압축 표현(잠재적 변수)을 생성하는 두 개의 컨볼루션 계층이 있습니다. 이 경우 인코더는 원래 입력 이미지 크기(28, 28)에서 크기(1, 20)의 잠재적 변수를 생성하고 훈련을 위해 데이터 크기를 40배까지 크게 줄입니다.

디코더는 두 개의 *디컨볼루션* 계층을 포함하고 있으며 잠재적 변수가 출력 이미지를 재구성하여 주요 정보를 유지하도록 보장합니다.

합성곱 인코더는 입력 데이터 크기가 작은 클러스터링 알고리즘을 가동시키고 k-means, k-NN, t-SNE(t-Distributed Stochastic Neighbor Embedding) 등 여러 클러스터링 알고리즘의 성능을 구현합니다.

이 노트북 예제에서는 다음 애니메이션과 같이 Debugger를 사용하여 잠재적 변수를 시각화하는 방법을 보여줍니다. 또한 t-SNE 알고리즘이 잠재적 변수를 10개의 클러스터로 분류하여 2차원 공간으로 투영하는 방법을 보여줍니다. 이미지 오른쪽의 산점도 색 구성표는 실제 값을 반영하여 BERT 모델 및 t-SNE 알고리즘이 잠재적 변수를 클러스터에 얼마나 잘 구성하는지를 보여줍니다.

![\[컨볼루션 자동 인코더의 개념적 이미지\]](http://docs.aws.amazon.com/ko_kr/sagemaker/latest/dg/images/debugger/debugger-cnn-autoencoder-plot.gif)


## [SageMaker Debugger를 사용하여 BERT 모델 훈련에서 주의 모니터링](https://sagemaker-examples.readthedocs.io/en/latest/sagemaker-debugger/model_specific_realtime_analysis/bert_attention_head_view/bert_attention_head_view.html)
<a name="debugger-visualization-bert_attention_head_view"></a>

BERT(Bidirectional Encode Representations from Transformers)는 언어 표현 모델입니다. 모델 이름이 나타내는 바와 같이 BERT 모델은 NLP(자연어 처리)를 위해 *전이 학습* 및 *변환기 모델*을 바탕으로 빌드됩니다.

BERT 모델은 문장에서 누락된 단어를 예측하거나 이전 문장을 자연스럽게 따르는 다음 문장을 예측하는 것과 같이 감독되지 않은 작업에 대한 사전 훈련을 받습니다. 훈련 데이터에는 Wikipedia, 전자 서적 등의 출처에서 발췌한 영어 텍스트 33억 단어(토큰)가 포함되어 있습니다. 간단한 예를 들어, BERT 모델은 주제 토큰의 적절한 동사 토큰 또는 대명사 토큰에 높은 *어텐션*을 지정할 수 있습니다.

사전 훈련된 BERT 모델을 추가 출력 계층으로 미세 조정하면 질문에 대한 자동 응답, 텍스트 분류 및 기타 여러 가지 NLP 작업의 최첨단 모델 훈련을 달성할 수 있습니다.

Debugger는 미세 조정 프로세스에서 텐서를 수집합니다. NLP의 컨텍스트에서는 뉴런의 가중치를 *어텐션*이라고 합니다.

이 노트북은 Stanford Question and Answering 데이터세트의 [GluonNLP 모델 Zoo에서 사전 훈련된 BERT 모델](https://gluon-nlp.mxnet.io/model_zoo/bert/index.html)을 사용하는 방법과 SageMaker Debugger를 설정하여 훈련 작업을 모니터링하는 방법을 보여줍니다.

쿼리 및 주요 벡터에 *어텐션 점수* 및 개별 뉴런을 표시하면 잘못된 모델 예측의 원인을 식별하는 데 도움이 될 수 있습니다. SageMaker AI Debugger를 사용하면 텐서를 검색하고, 훈련이 진행됨에 따라 실시간으로 *어텐션 헤드 뷰*를 표시하며, 모델이 학습하는 내용을 파악할 수 있습니다.

다음 애니메이션은 노트북 예제에 제공된 훈련 작업에서 10회 반복에 대해 처음 20개 입력 토큰의 어텐션 점수를 보여줍니다.

![\[어텐션 점수를 보여주는 애니메이션\]](http://docs.aws.amazon.com/ko_kr/sagemaker/latest/dg/images/debugger/debugger-attention_scores.gif)


## [SageMaker Debugger를 사용하여 컨볼루션 신경망(CNNs)에서 클래스 활성화 맵 시각화](https://sagemaker-examples.readthedocs.io/en/latest/sagemaker-debugger/model_specific_realtime_analysis/cnn_class_activation_maps/cnn_class_activation_maps.html)
<a name="debugger-visualization-cnn_class_activation_maps"></a>

이 노트북은 SageMaker Debugger를 사용하여 합성곱 신경망(CNN)의 이미지 감지 및 분류를 위해 클래스 활성화 맵을 표시하는 방법을 보여줍니다. 딥 러닝에서 *합성곱 신경망(CNN 또는 ConvNet)*은 일종의 심층 신경망을 가리키며, 시각적 이미지 분석에 가장 흔하게 적용됩니다. 클래스 활성화 맵을 채택한 애플리케이션 중 하나가 바로 자율주행 자동차입니다. 이 애플리케이션에서는 교통 표지판, 도로, 장애물 등의 이미지를 즉각적으로 감지하고 분류해야 합니다.

이 노트북에서 PyTorch ResNet 모델은 40개 이상의 교통 관련 물체와 총 50,000개 이상의 이미지가 포함된 [독일 교통 표지 데이터세트](http://benchmark.ini.rub.de/)에 대한 훈련을 받았습니다.

![\[CNN 클래스 활성화 맵의 애니메이션\]](http://docs.aws.amazon.com/ko_kr/sagemaker/latest/dg/images/debugger/debugger-cnn-class-activation-maps.gif)


훈련 프로세스가 진행되는 동안 SageMaker Debugger가 텐서를 수집하여 클래스 활성화 맵을 실시간으로 표시합니다. 애니메이션 이미지에서와 같이 클래스 활성화 맵(*Saliency 맵*이라고도 함)은 활성화가 높은 영역을 빨간색으로 강조 표시합니다.

Debugger가 캡처한 텐서를 사용하여 모델 훈련 중에 활성화 맵이 어떻게 진화하는지를 시각화할 수 있습니다. 이 모델은 훈련 작업 시작 시 왼쪽 하단 모서리의 엣지를 감지하는 것으로 시작됩니다. 훈련이 진행됨에 따라 초점이 중심으로 이동하고 속도 제한 기호를 감지하며 모델은 97%의 신뢰도 수준으로 Class 3(60km/h 속도 제한 표지 클래스)으로 입력 이미지를 성공적으로 예측합니다.