Main Content

AWS での深層学習データの処理

この例では、データを Amazon S3™ バケットにアップロードする方法を説明します。

深層学習における学習をクラウドで実行する前に、データをクラウドにアップロードする必要があります。この例では、CIFAR-10 データ セットをコンピューターにダウンロードし、後で MATLAB® で使用するために、そのデータを Amazon S3 バケットにアップロードする方法を示します。CIFAR-10 データセットは、ラベル付けされたイメージ データセットで、イメージ分類アルゴリズムのベンチマーク用によく使用されます。この例を実行するには、Amazon Web Services (AWS®) アカウントへのアクセスが必要です。このデータセットを 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 のデータにアクセスできます。以下の手順では、CIFAR-10 データセットをローカル マシンから Amazon S3 バケットにアップロードする方法を説明します。

1.AWS アカウントにログインします。アカウント作成の詳細については、次を参照してください。AWS: アカウント

2.AWS ルート アカウントを使用して IAM (Identity and Access Management) ユーザーを作成します。詳細については、Creating an IAM user in your AWS account を参照してください。

3.アクセス キーを生成して、アクセス キー ID とシークレット アクセス キーを受け取ります。詳細については、Managing Access Keys for IAM Users を参照してください。

4.AWS アクセス キー ID とシークレット アクセス キーを MATLAB の環境変数として指定します。また場合によっては、バケットの地理的リージョン (通常、この環境変数の値は自動的に決定されるが、バケット所有者が手動での設定を要求する場合がある) やセッション トークン (AWS Federated Authentication などの一時的なセキュリティ認証情報を使用している場合) を指定する必要があります。

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)を参照してください。クラスター ワーカーでの環境変数の設定の詳細については、ワーカー上での環境変数の設定 (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.mylocaldatapath を CIFAR-10 データへのパスに置き換えて、データを S3 バケットにアップロードします。

!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 を使用する方法を示している、並列と点群のすべての例を試すことができます。

参考

関連するトピック