Main Content

AWS에서 딥러닝 데이터 사용하기

이 예제에서는 데이터를 Amazon S3™ 버킷으로 업로드하는 방법을 보여줍니다.

클라우드에서 딥러닝 훈련을 수행하려면 먼저 데이터를 클라우드로 업로드해야 합니다. 이 예제에서는 컴퓨터로 CIFAR-10 데이터 세트를 다운로드한 다음 나중에 MATLAB®에서 사용할 수 있도록 이 데이터를 Amazon S3 버킷으로 업로드하는 방법을 보여줍니다. CIFAR-10 데이터 세트는 영상 분류 알고리즘의 벤치마킹에 널리 사용되는 레이블이 지정된 영상 데이터 세트입니다. 이 예제를 실행하려면 먼저 AWS®(Amazon Web Services) 계정에 액세스해야 합니다. 데이터 세트를 Amazon S3으로 업로드한 뒤에 병렬 연산 및 클라우드 항목의 예제를 시도해 볼 수 있습니다.

로컬 컴퓨터에 CIFAR-10 다운로드하기

데이터 세트를 다운로드할 로컬 디렉터리를 지정합니다. 다음 코드는 데이터 세트에 있는 모든 영상을 포함하는 폴더를 현재 폴더에 만듭니다.

currentFolder = pwd; 
[trainFolder,testFolder] = downloadCIFARToFolders(currentFolder);
Downloading CIFAR-10 data set...done.
Copying CIFAR-10 to folders...done.

로컬 데이터 세트를 Amazon S3 버킷으로 업로드하기

클라우드에서 데이터로 작업하기 위해, Amazon S3으로 업로드한 다음 데이터저장소를 사용하여 클러스터에 있는 워커에서 S3에 있는 데이터에 액세스할 수 있습니다. 다음 단계는 로컬 컴퓨터에서 Amazon S3 버킷으로 CIFAR-10 데이터 세트를 업로드하는 방법을 설명합니다.

1. AWS 계정에 로그인합니다. 계정을 만드는 방법에 대한 자세한 내용은 AWS: Account를 참조하십시오.

2. AWS 루트 계정을 사용하여 IAM(Identity and Access Management) 사용자를 만듭니다. 자세한 내용은 Creating an IAM user in your AWS account를 참조하십시오.

3. 액세스 키를 생성하여 액세스 키 ID와 보안 액세스 키를 받습니다. 자세한 내용은 Managing Access Keys for IAM Users를 참조하십시오.

4. MATLAB에서 AWS 액세스 키 ID와 보안 액세스 키를 환경 변수로 지정합니다. 버킷의 지리적 영역(이 환경 변수의 값은 일반적으로 자동으로 결정되지만 버킷 소유자가 이를 수동으로 설정하도록 요구할 수 있음)과 세션 토큰(AWS 페더레이션 인증과 같은 임시 보안 자격 증명을 사용하는 경우)을 지정해야 할 수도 있습니다.

setenv("AWS_ACCESS_KEY_ID","YOUR_AWS_ACCESS_KEY_ID"); 
setenv("AWS_SECRET_ACCESS_KEY","YOUR_AWS_SECRET_ACCESS_KEY");
setenv("AWS_SESSION_TOKEN","YOUR_AWS_SESSION_TOKEN"); % optional
setenv("AWS_DEFAULT_REGION","YOUR_AWS_DEFAULT_REGION"); % optional

5. 4단계에서 지정한 환경 변수를 클러스터 워커에 복사합니다. 클라우드 클러스터를 만드는 방법에 대한 자세한 내용은 클라우드 클러스터 생성 (Parallel Computing Toolbox) 항목을 참조하고, 클러스터 워커에서 환경 변수를 설정하는 방법에 대한 자세한 내용은 Set Environment Variables on Workers (Parallel Computing Toolbox) 항목을 참조하십시오.

6. Amazon S3과의 효율적인 파일 전송을 위해 https://aws.amazon.com/cli/에서 AWS Command Line Interface 툴을 다운로드하여 설치합니다. 이 툴을 사용하면 MATLAB 명령 창이나 시스템의 명령줄에서 AWS 관련 명령을 사용할 수 있습니다.

7. MATLAB 명령 창에서 다음 명령을 사용하여 데이터를 저장할 버킷을 만듭니다.

!aws s3 mb s3://mynewbucket

8. 데이터를 S3 버킷으로 업로드합니다. 이때 mylocaldatapath는 CIFAR-10 데이터 경로로 바꿉니다.

!aws s3 cp mylocaldatapath s3://mynewbucket --recursive

6~8단계를 수행하는 대신 AWS S3 웹페이지를 사용하여 Amazon S3으로 데이터를 업로드할 수도 있습니다.

MATLAB에서 데이터 세트 사용하기

데이터를 Amazon S3에 저장했으면 이제 데이터저장소를 사용하여 클러스터 워커에서 데이터에 액세스할 수 있습니다. S3 버킷의 URL을 가리키는 데이터저장소를 만들면 됩니다. 다음 샘플 코드는 imageDatastore를 사용하여 S3 버킷에 액세스하는 방법을 보여줍니다. "s3://MyExampleCloudData/cifar10/train"을 S3 버킷의 URL로 바꾸십시오.

imds = imageDatastore("s3://MyExampleCloudData/cifar10/train", ...
 IncludeSubfolders=true, ...
 LabelSource="foldernames");

CIFAR-10 데이터 세트를 Amazon S3에 저장했으니 이제 다양한 사용 사례별로 CIFAR-10을 사용하는 방법을 보여주는 병렬 연산 및 클라우드 항목의 예제를 시도해 볼 수 있습니다.

참고 항목

관련 항목