

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

# 데이터 세트 삭제
<a name="md-delete-dataset"></a>

프로젝트에서 훈련 및 테스트 데이터 세트를 삭제할 수 있습니다.

**Topics**
+ [데이터 세트 삭제(콘솔)](#md-delete-dataset-console)
+ [Amazon Rekognition Custom Labels 데이터 세트 삭제(SDK)](#md-delete-dataset-sdk)

## 데이터 세트 삭제(콘솔)
<a name="md-delete-dataset-console"></a>

데이터 세트를 삭제하려면 다음 절차를 따르세요. 이후, 프로젝트에 데이터 세트(훈련 또는 테스트)가 하나 남아 있으면 프로젝트 세부 정보 페이지가 표시됩니다. 프로젝트에 남은 데이터 세트가 없는 경우 **데이터 세트 생성** 페이지가 표시됩니다.

훈련 데이터 세트를 삭제한 경우 모델을 훈련하기 전에 프로젝트에 사용할 새 훈련 데이터 세트를 만들어야 합니다. 자세한 내용은 [이미지를 사용하여 훈련 및 테스트 데이터 세트 생성](md-create-dataset.md) 단원을 참조하십시오.

테스트 데이터 세트를 삭제하면 새 테스트 데이터 세트를 만들지 않고도 모델을 훈련할 수 있습니다. 훈련 중, 훈련 데이터 세트가 분할되어 프로젝트에 사용할 새 테스트 데이터 세트가 생성됩니다. 훈련 데이터 세트를 분할하면 훈련에 사용할 수 있는 이미지 수가 줄어듭니다. 품질을 유지하려면 모델을 훈련하기 전에 새 테스트 데이터 세트를 만드는 것이 좋습니다. 자세한 내용은 [프로젝트에 데이터 세트 추가](md-add-dataset.md) 단원을 참조하십시오.

**데이터 세트를 삭제하려면**

1. [https://console.aws.amazon.com/rekognition/](https://console.aws.amazon.com/rekognition/)에서 Amazon Rekognition 콘솔을 엽니다.

1. 왼쪽 창에서 **사용자 지정 레이블** 사용을 선택합니다. Amazon Rekognition Custom Labels 랜딩 페이지가 표시됩니다.

1. 왼쪽 탐색 창에서 **프로젝트**를 선택합니다. 프로젝트 보기가 표시됩니다.

1. 삭제하려는 데이터 세트가 들어 있는 프로젝트를 선택합니다.

1. 왼쪽 탐색 창의 프로젝트 이름 아래에서 **데이터 세트**를 선택합니다.

1. **작업**을 선택합니다.

1. 훈련 데이터 세트를 삭제하려면 **훈련 데이터 세트 삭제**를 선택합니다.

1. 테스트 데이터 세트를 삭제하려면 **테스트 데이터 세트 삭제**를 선택합니다.

1. **훈련 또는 테스트** 데이터 세트 삭제** 대화 상자에 **삭제**를 입력하여 데이터 세트 삭제를 확인합니다.

1. **훈련 또는 테스트** 데이터 세트 삭제**를 선택하여 데이터 세트를 삭제합니다.

## Amazon Rekognition Custom Labels 데이터 세트 삭제(SDK)
<a name="md-delete-dataset-sdk"></a>

Amazon Rekognition Custom Labels 데이터 세트를 삭제할 때는 [DeleteDataset](https://docs.aws.amazon.com/rekognition/latest/APIReference/API_DeleteDataset)를 직접 호출하고 삭제할 데이터 세트의 Amazon 리소스 이름(ARN)을 제공하여 삭제할 수 있습니다. 프로젝트 내 훈련 및 테스트 데이터 세트의 ARN을 가져오려면 [DescribeProjects](https://docs.aws.amazon.com/rekognition/latest/APIReference/API_DescribeProjects)를 직접 호출하세요. 응답에는 [ProjectDescription](https://docs.aws.amazon.com/rekognition/latest/APIReference/API_ProjectDescription) 객체 배열이 포함됩니다. 데이터 세트 ARN(`DatasetArn`) 및 데이터 세트 유형(`DatasetType`)이 `Datasets` 목록에 있습니다.

훈련 데이터 세트를 삭제한 경우 모델을 훈련하기 전에 프로젝트에 사용할 새 훈련 데이터 세트를 만들어야 합니다. 테스트 데이터 세트를 삭제한 경우 모델을 훈련하기 전에 새 테스트 데이터 세트를 만들어야 합니다. 자세한 내용은 [프로젝트에 데이터 세트 추가(SDK)](md-add-dataset.md#md-add-dataset-sdk) 단원을 참조하십시오.

**데이터 세트를 삭제하려면(SDK)**

1. 아직 설치하지 않은 경우 및 AWS SDKs AWS CLI 를 설치하고 구성합니다. 자세한 내용은 [4단계: AWS CLI 및 AWS SDKs 설정](su-awscli-sdk.md) 단원을 참조하십시오.

1. 다음 코드를 사용하여 데이터 세트를 삭제하세요.

------
#### [ AWS CLI ]

   `dataset-arn`의 값을 삭제하려는 데이터 세트의 ARN으로 변경합니다.

   ```
   aws rekognition delete-dataset --dataset-arn {{dataset-arn}} \
     --profile custom-labels-access
   ```

------
#### [ Python ]

   다음 코드를 사용합니다. 다음 명령줄 파라미터를 제공하세요.
   + dataset\_arn: 삭제하려는 데이터 세트의 ARN입니다.

   ```
   # Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
   # SPDX-License-Identifier: Apache-2.0
   
   """
   Purpose
   Shows how to delete an Amazon Rekognition Custom Labels dataset.
   """
   import argparse
   import logging
   import time
   import boto3
   
   from botocore.exceptions import ClientError
   
   logger = logging.getLogger(__name__)
   
   
   def delete_dataset(rek_client, dataset_arn):
       """
       Deletes an Amazon Rekognition Custom Labels dataset.
       :param rek_client: The Amazon Rekognition Custom Labels Boto3 client.
       :param dataset_arn: The ARN of the dataset that you want to delete.
       """
   
       try:
           # Delete the dataset,
           logger.info("Deleting dataset: %s", dataset_arn)
   
           rek_client.delete_dataset(DatasetArn=dataset_arn)
   
           deleted = False
   
           logger.info("waiting for dataset deletion %s", dataset_arn)
   
           # Dataset might not be deleted yet, so wait.
           while deleted is False:
               try:
                   rek_client.describe_dataset(DatasetArn=dataset_arn)
                   time.sleep(5)
               except ClientError as err:
                   if err.response['Error']['Code'] == 'ResourceNotFoundException':
                       logger.info("dataset deleted: %s", dataset_arn)
                       deleted = True
                   else:
                       raise
   
           logger.info("dataset deleted: %s", dataset_arn)
   
           return True
   
       except ClientError as err:
           logger.exception("Couldn't delete dataset - %s: %s",
                            dataset_arn, err.response['Error']['Message'])
           raise
   
   
   def add_arguments(parser):
       """
       Adds command line arguments to the parser.
       :param parser: The command line parser.
       """
   
       parser.add_argument(
           "dataset_arn", help="The ARN of the dataset that you want to delete."
       )
   
   
   def main():
   
       logging.basicConfig(level=logging.INFO,
                           format="%(levelname)s: %(message)s")
   
       try:
   
           # Get command line arguments.
           parser = argparse.ArgumentParser(usage=argparse.SUPPRESS)
           add_arguments(parser)
           args = parser.parse_args()
   
           print(f"Deleting dataset: {args.dataset_arn}")
   
           # Delete the dataset.
           session = boto3.Session(profile_name='custom-labels-access')
           rekognition_client = session.client("rekognition")
   
           delete_dataset(rekognition_client,
                          args.dataset_arn)
   
           print(f"Finished deleting dataset: {args.dataset_arn}")
   
       except ClientError as err:
           error_message = f"Problem deleting dataset: {err}"
           logger.exception(error_message)
           print(error_message)
   
   
   if __name__ == "__main__":
       main()
   ```

------
#### [ Java V2 ]

   다음 코드를 사용합니다. 다음 명령줄 파라미터를 제공하세요.
   + dataset\_arn: 삭제하려는 데이터 세트의 ARN입니다.

   ```
   /*
      Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
      SPDX-License-Identifier: Apache-2.0
   */
   package com.example.rekognition;
   
   import java.util.logging.Level;
   import java.util.logging.Logger;
   
   import software.amazon.awssdk.auth.credentials.ProfileCredentialsProvider;
   import software.amazon.awssdk.regions.Region;
   import software.amazon.awssdk.services.rekognition.RekognitionClient;
   import software.amazon.awssdk.services.rekognition.model.DeleteDatasetRequest;
   import software.amazon.awssdk.services.rekognition.model.DeleteDatasetResponse;
   import software.amazon.awssdk.services.rekognition.model.DescribeDatasetRequest;
   import software.amazon.awssdk.services.rekognition.model.RekognitionException;
   
   public class DeleteDataset {
   
       public static final Logger logger = Logger.getLogger(DeleteDataset.class.getName());
   
       public static void deleteMyDataset(RekognitionClient rekClient, String datasetArn) throws InterruptedException {
   
           try {
   
               logger.log(Level.INFO, "Deleting dataset: {0}", datasetArn);
   
               // Delete the dataset
   
               DeleteDatasetRequest deleteDatasetRequest = DeleteDatasetRequest.builder().datasetArn(datasetArn).build();
   
               DeleteDatasetResponse response = rekClient.deleteDataset(deleteDatasetRequest);
   
               // Wait until deletion finishes
   
               DescribeDatasetRequest describeDatasetRequest = DescribeDatasetRequest.builder().datasetArn(datasetArn)
                       .build();
   
               Boolean deleted = false;
   
               do {
   
                   try {
   
                       rekClient.describeDataset(describeDatasetRequest);
                       Thread.sleep(5000);
                   } catch (RekognitionException e) {
                       String errorCode = e.awsErrorDetails().errorCode();
                       if (errorCode.equals("ResourceNotFoundException")) {
                           logger.log(Level.INFO, "Dataset deleted: {0}", datasetArn);
                           deleted = true;
                       } else {
                           logger.log(Level.SEVERE, "Client error occurred: {0}", e.getMessage());
                           throw e;
                       }
   
                   }
   
               } while (Boolean.FALSE.equals(deleted));
   
               logger.log(Level.INFO, "Dataset deleted: {0} ", datasetArn);
   
           } catch (
   
           RekognitionException e) {
               logger.log(Level.SEVERE, "Client error occurred: {0}", e.getMessage());
               throw e;
           }
   
       }
   
       public static void main(String args[]) {
   
           final String USAGE = "\n" + "Usage: " + "<dataset_arn>\n\n" + "Where:\n"
                   + "   dataset_arn - The ARN of the dataset that you want to delete.\n\n";
   
           if (args.length != 1) {
               System.out.println(USAGE);
               System.exit(1);
           }
   
           String datasetArn = args[0];
   
           try {
   
               // Get the Rekognition client.
               RekognitionClient rekClient = RekognitionClient.builder()
                   .credentialsProvider(ProfileCredentialsProvider.create("custom-labels-access"))
                   .region(Region.US_WEST_2)
                   .build();
   
   
               // Delete the dataset
               deleteMyDataset(rekClient, datasetArn);
   
               System.out.println(String.format("Dataset deleted: %s", datasetArn));
   
               rekClient.close();
   
           } catch (RekognitionException rekError) {
               logger.log(Level.SEVERE, "Rekognition client error: {0}", rekError.getMessage());
               System.exit(1);
           }
   
           catch (InterruptedException intError) {
               logger.log(Level.SEVERE, "Exception while sleeping: {0}", intError.getMessage());
               System.exit(1);
           }
   
       }
   
   }
   ```

------