Main Content

在 AWS 中使用深度学习数据

此示例说明如何将数据上传到 Amazon S3™ 存储桶。

您需要将数据上传到云,才能在云中执行深度学习训练。此示例说明如何将 CIFAR-10 数据集下载到计算机上,然后将数据上传到 Amazon S3 存储桶,便于以后在 MATLAB® 中使用。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(身份和访问管理)用户。有关详细信息,请参阅在 AWS 帐户中创建 IAM 用户

3.生成访问密钥以接收访问密钥 ID 和秘密访问密钥。有关详细信息,请参阅管理 IAM 用户的访问密钥

4.将您的 AWS 访问密钥 ID 和秘密访问密钥指定为 MATLAB 中的环境变量。您可能还需要指定您的存储桶的地理区域(此环境变量的值通常是自动确定的,但存储桶所有者可能要求您手动设置它)和会话令牌(如果您使用临时安全凭据,例如 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 中的环境变量复制到您的集群工作进程中。有关如何创建云集群的信息,请参阅Create Cloud Cluster (Parallel Computing Toolbox),有关在集群工作进程上设置环境变量的详细信息,请参阅Set Environment Variables on Workers (Parallel Computing Toolbox)

6.为提高与 Amazon S3 之间传输文件的效率,请从 https://aws.amazon.com/cli/ 下载并安装 AWS 命令行界面工具。此工具允许您在 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");

借助现在存储在 Amazon S3 中的 CIFAR-10 数据集,您可以尝试并行和云中的任一示例,这些示例说明了如何在不同用例中使用 CIFAR-10。

另请参阅

相关主题