本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
將資料集新增至專案
您可以將培訓資料集或測試資料集新增至現有專案。如果要取代現有資料集,請先刪除現有的資料集。如需更多詳細資訊,請參閱 刪除資料集。然後,新增新的資料集。
            將資料集新增至如果您尚未執行此操作,請安裝並設定  專案(主控台)
            您可以使用 Amazon Rekognition 自訂標籤主控台將培訓或測試資料集新增至專案。
            
         
            將資料集新增至專案(SDK)
            您可以透過以下方式將培訓或測試資料集新增至現有專案:
            
            
            將資料集新增至專案 (SDK)
- 
                            
如果您尚未這麼做,請安裝並設定 AWS CLI 和 AWS SDKs。如需詳細資訊,請參閱步驟 4:設定 AWS CLI 和 AWS SDKs。
                             - 
                    
使用以下範例將 JSON 文件新增至資料集。
                    
                        - CLI
 - 
                                
將 project_arn 替換為您想要新增資料集的專案。將 TRAIN 替換為 dataset_type 以建立培訓資料集,或 TEST 建立測試資料集。
                                aws rekognition create-dataset --project-arn project_arn \
  --dataset-type dataset_type \
  --profile custom-labels-access
 
                                
                             
                        - Python
 - 
                                
使用以下程式碼建立資料集。提供以下命令列選項:
                                
                                # Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
# SPDX-License-Identifier: Apache-2.0
import argparse
import logging
import time
import boto3
from botocore.exceptions import ClientError
logger = logging.getLogger(__name__)
def create_empty_dataset(rek_client, project_arn, dataset_type):
    """
    Creates an empty Amazon Rekognition Custom Labels dataset.
    :param rek_client: The Amazon Rekognition Custom Labels Boto3 client.
    :param project_arn: The ARN of the project in which you want to create a dataset.
    :param dataset_type: The type of the dataset that you want to create (train or test).
    """
    try:
        #Create the dataset.
        logger.info("Creating empty %s dataset for project %s",
            dataset_type, project_arn)
        dataset_type=dataset_type.upper()
        response = rek_client.create_dataset(
            ProjectArn=project_arn, DatasetType=dataset_type
        )
        dataset_arn=response['DatasetArn']
        logger.info("dataset ARN: %s", dataset_arn)
        finished=False
        while finished is False:
            dataset=rek_client.describe_dataset(DatasetArn=dataset_arn)
            status=dataset['DatasetDescription']['Status']
            
            if status == "CREATE_IN_PROGRESS":
                
                logger.info(("Creating dataset: %s ", dataset_arn))
                time.sleep(5)
                continue
            if status == "CREATE_COMPLETE":
                logger.info("Dataset created: %s", dataset_arn)
                finished=True
                continue
            if status == "CREATE_FAILED":
                error_message = f"Dataset creation failed: {status} : {dataset_arn}"
                logger.exception(error_message)
                raise Exception(error_message)
                
            error_message = f"Failed. Unexpected state for dataset creation: {status} : {dataset_arn}"
            logger.exception(error_message)
            raise Exception(error_message)
            
        return dataset_arn
       
    except ClientError as err:  
        logger.exception("Couldn't create dataset: %s", 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(
        "project_arn", help="The ARN of the project in which you want to create the empty dataset."
    )
    parser.add_argument(
        "dataset_type", help="The type of the empty dataset that you want to create (train or test)."
    )
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"Creating empty {args.dataset_type} dataset for project {args.project_arn}")
        # Create the empty dataset.
        session = boto3.Session(profile_name='custom-labels-access')
        rekognition_client = session.client("rekognition")
        dataset_arn=create_empty_dataset(rekognition_client, 
            args.project_arn,
            args.dataset_type.lower())
        print(f"Finished creating empty dataset: {dataset_arn}")
    except ClientError as err:
        logger.exception("Problem creating empty dataset: %s", err)
        print(f"Problem creating empty dataset: {err}")
    except Exception as err:
        logger.exception("Problem creating empty dataset: %s", err)
        print(f"Problem creating empty dataset: {err}")
if __name__ == "__main__":
    main()    
  
                                
                             
                        - Java V2
 - 
                                
使用以下程式碼建立資料集。提供以下命令列選項:
                                
                                /*
   Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
   SPDX-License-Identifier: Apache-2.0
*/
package com.example.rekognition;
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.CreateDatasetRequest;
import software.amazon.awssdk.services.rekognition.model.CreateDatasetResponse;
import software.amazon.awssdk.services.rekognition.model.DatasetDescription;
import software.amazon.awssdk.services.rekognition.model.DatasetStatus;
import software.amazon.awssdk.services.rekognition.model.DatasetType;
import software.amazon.awssdk.services.rekognition.model.DescribeDatasetRequest;
import software.amazon.awssdk.services.rekognition.model.DescribeDatasetResponse;
import software.amazon.awssdk.services.rekognition.model.RekognitionException;
import java.net.URI;
import java.util.logging.Level;
import java.util.logging.Logger;
public class CreateEmptyDataset {
    public static final Logger logger = Logger.getLogger(CreateEmptyDataset.class.getName());
    public static String createMyEmptyDataset(RekognitionClient rekClient, String projectArn, String datasetType)
            throws Exception, RekognitionException {
        try {
            logger.log(Level.INFO, "Creating empty {0} dataset for project : {1}",
                    new Object[] { datasetType.toString(), projectArn });
            DatasetType requestDatasetType = null;
            switch (datasetType) {
            case "train":
                requestDatasetType = DatasetType.TRAIN;
                break;
            case "test":
                requestDatasetType = DatasetType.TEST;
                break;
            default:
                logger.log(Level.SEVERE, "Unrecognized dataset type: {0}", datasetType);
                throw new Exception("Unrecognized dataset type: " + datasetType);
            }
            CreateDatasetRequest createDatasetRequest = CreateDatasetRequest.builder().projectArn(projectArn)
                    .datasetType(requestDatasetType).build();
            CreateDatasetResponse response = rekClient.createDataset(createDatasetRequest);
            boolean created = false;
            
            //Wait until updates finishes
            do {
                DescribeDatasetRequest describeDatasetRequest = DescribeDatasetRequest.builder()
                        .datasetArn(response.datasetArn()).build();
                DescribeDatasetResponse describeDatasetResponse = rekClient.describeDataset(describeDatasetRequest);
                DatasetDescription datasetDescription = describeDatasetResponse.datasetDescription();
                DatasetStatus status = datasetDescription.status();
                logger.log(Level.INFO, "Creating dataset ARN: {0} ", response.datasetArn());
                switch (status) {
                case CREATE_COMPLETE:
                    logger.log(Level.INFO, "Dataset created");
                    created = true;
                    break;
                case CREATE_IN_PROGRESS:
                    Thread.sleep(5000);
                    break;
                case CREATE_FAILED:
                    String error = "Dataset creation failed: " + datasetDescription.statusAsString() + " "
                            + datasetDescription.statusMessage() + " " + response.datasetArn();
                    logger.log(Level.SEVERE, error);
                    throw new Exception(error);
                default:
                    String unexpectedError = "Unexpected creation state: " + datasetDescription.statusAsString() + " "
                            + datasetDescription.statusMessage() + " " + response.datasetArn();
                    logger.log(Level.SEVERE, unexpectedError);
                    throw new Exception(unexpectedError);
                }
            } while (created == false);
            return response.datasetArn();
        } catch (RekognitionException e) {
            logger.log(Level.SEVERE, "Could not create dataset: {0}", e.getMessage());
            throw e;
        }
    }
    public static void main(String args[]) {
        String datasetType = null;
        String datasetArn = null;
        String projectArn = null;
        final String USAGE = "\n" + "Usage: " + "<project_arn> <dataset_type>\n\n" + "Where:\n"
                + "   project_arn - the ARN of the project that you want to add copy the datast to.\n\n"
                + "   dataset_type - the type of the empty dataset that you want to create (train or test).\n\n";
              
        if (args.length != 2) {
            System.out.println(USAGE);
            System.exit(1);
        }
        projectArn = args[0];
        datasetType = args[1];
        
        try {
            // Get the Rekognition client
            RekognitionClient rekClient = RekognitionClient.builder()
                .credentialsProvider(ProfileCredentialsProvider.create("custom-labels-access"))
                .region(Region.US_WEST_2)
                .build();
            // Create the dataset
            datasetArn = createMyEmptyDataset(rekClient, projectArn, datasetType);
            System.out.println(String.format("Created dataset: %s", datasetArn));
            rekClient.close();
        } catch (RekognitionException rekError) {
            logger.log(Level.SEVERE, "Rekognition client error: {0}", rekError.getMessage());
            System.exit(1);
        } catch (Exception rekError) {
            logger.log(Level.SEVERE, "Error: {0}", rekError.getMessage());
            System.exit(1);
        }
    }
}
                             
                    
                 - 
                    
將圖像新增至資料集。如需詳細資訊,請參閱新增更多圖像 (SDK)。