

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

# 이미지 분류 - TensorFlow 알고리즘의 입력/출력 인터페이스
<a name="IC-TF-inputoutput"></a>

TensorFlow Hub 모델에 나열된 사전 훈련된 각 모델은 이미지 클래스의 개수에 관계없이 모든 데이터세트에 맞게 미세 조정할 수 있습니다. 이미지 분류 - TensorFlow 모델에 입력하기 위해 훈련 데이터의 형식을 지정하는 방법에 유의하세요.
+ **훈련 데이터 입력 형식:** 훈련 데이터는 클래스 개수만큼 많은 하위 디렉터리가 있는 디렉터리여야 합니다. 각 하위 디렉터리에는 해당 클래스에 속하는 이미지가 .jpg, .jpeg 또는.png 형식으로 포함되어야 합니다.

다음은 입력 디렉터리 구조의 예제입니다. 이 예제 데이터세트에는 `roses` 및 `dandelion`이라는 두 개의 클래스가 있습니다. 각 클래스 폴더의 이미지 파일 이름은 임의로 지정할 수 있습니다. 입력 디렉터리는 `s3://bucket_name/input_directory/`와 비슷한 경로를 가진 Amazon S3 버킷에 호스팅되어야 합니다. 단, 후행 `/`는 필수입니다.

```
input_directory
    |--roses
        |--abc.jpg
        |--def.jpg
    |--dandelion
        |--ghi.jpg
        |--jkl.jpg
```

훈련된 모델은 클래스 폴더 이름을 출력 클래스 확률 목록의 인덱스에 매핑하는 레이블 매핑 파일을 출력합니다. 매핑은 알파벳 순서로 표시됩니다. 예를 들어, 위 예제에서 dandelion 클래스는 인덱스 0이고 roses 클래스는 인덱스 1입니다.

훈련 후에는 증분 훈련을 사용하여 추가로 훈련하거나 추론을 위해 배포할 수 있는 미세 조정된 모델을 갖게 됩니다. 이미지 분류 - TensorFlow 알고리즘은 미세 조정된 모델에 전처리 및 후처리 서명을 자동으로 추가하여 이미지를 입력으로 받고 클래스 확률을 반환할 수 있습니다. 클래스 인덱스를 클래스 레이블에 매핑하는 파일은 모델과 함께 저장됩니다.

## 증분 훈련
<a name="IC-TF-incremental-training"></a>

이전에 SageMaker AI로 훈련시킨 모델의 아티팩트를 새 모델의 훈련을 위한 시드로 지정할 수 있습니다. 증분 훈련은 동일하거나 유사한 데이터로 새 모델을 훈련하려는 경우 훈련 시간을 절감시켜 줍니다.

**참고**  
SageMaker 이미지 분류 - TensorFlow 모델을 SageMaker AI에서 훈련한 다른 이미지 분류 - TensorFlow 모델에만 시드할 수 있습니다.

클래스 세트가 동일하게 유지되는 한 어떤 데이터세트라도 증분 훈련에 사용할 수 있습니다. 증분 훈련 단계는 미세 조정 단계와 비슷하지만, 사전 훈련 모델로 시작되는 대신 기존의 미세 조정 모델로 시작됩니다. SageMaker AI 이미지 분류 - TensorFlow 알고리즘을 사용한 증분 훈련의 예는 [Introduction to SageMaker TensorFlow - Image Classification](https://github.com/aws/amazon-sagemaker-examples/blob/main/introduction_to_amazon_algorithms/image_classification_tensorflow/Amazon_TensorFlow_Image_Classification.ipynb) 샘플 노트북을 참조하세요.

## 이미지 분류 - TensorFlow 알고리즘을 이용한 추론
<a name="IC-TF-inference"></a>

추론을 위한 TensorFlow 이미지 분류 훈련의 결과로 미세 조정된 모델을 호스팅할 수 있습니다. 추론을 위한 모든 입력 이미지는 `.jpg`, `jpeg` 또는 `.png` 형식이어야 하며 콘텐츠 유형 `application/x-image`이어야 합니다. 이미지 분류 - TensorFlow 알고리즘은 입력 이미지의 크기를 자동으로 조정합니다.

추론을 실행하면 확률 값, 모든 클래스의 클래스 레이블, 그리고 가장 확률이 높은 클래스 인덱스에 해당하는 예측 레이블이 JSON 형식으로 인코딩됩니다. 이미지 분류 - TensorFlow 모델은 요청당 단일 이미지를 처리하므로 한 줄만 출력합니다. 다음은 JSON 형식 응답 예제입니다.

```
accept: application/json;verbose

 {"probabilities": [prob_0, prob_1, prob_2, ...],
  "labels":        [label_0, label_1, label_2, ...],
  "predicted_label": predicted_label}
```

`accept`가 `application/json`으로 설정된 경우 모델은 확률만 출력합니다. 이미지 분류 - TensorFlow 알고리즘을 사용한 훈련 및 추론의 자세한 내용은 [SageMaker TensorFlow - 이미지 분류 소개](https://github.com/aws/amazon-sagemaker-examples/blob/main/introduction_to_amazon_algorithms/image_classification_tensorflow/Amazon_TensorFlow_Image_Classification.ipynb) 샘플 노트북을 참조하세요.