在 AWS 中使用深度学习数据
此示例说明如何将数据上传到 Amazon S3 存储桶。
您需要将数据上传到云,才能在云中执行深度学习训练。此示例说明如何将 CIFAR-10 数据集下载到计算机上,然后将数据上传到 Amazon S3 存储桶,便于以后在 MATLAB 中使用。CIFAR-10 数据集是一个带标签的图像数据集,常用于对图像分类算法进行基准测试。在运行此示例之前,您需要 Amazon Web Services (AWS) 帐户的访问权限。将数据集上传到 Amazon S3 后,您可以尝试并行和云中的任何示例。
将 CIFAR-10 下载到本地计算机
指定用于保存下载的数据集的本地目录。以下代码在当前目录中创建一个文件夹,其中包含数据集中的所有图像。
directory = pwd; [trainDirectory,testDirectory] = downloadCIFARToFolders(directory);
Downloading CIFAR-10 data set...done. Copying CIFAR-10 to folders...done.
将本地数据集上传到 Amazon S3 存储桶
要在云中处理数据,您可以将数据上传到 Amazon S3,然后使用数据存储从集群中的工作进程访问 S3 中的数据。以下步骤说明如何将 CIFAR-10 数据集从本地计算机上传到 Amazon S3 存储桶。
1.为提高与 Amazon S3 之间传输文件的效率,请从 https://aws.amazon.com/cli/
下载并安装 AWS 命令行界面工具。
2.将您的 AWS 访问密钥 ID、秘密访问密钥和存储桶区域指定为系统环境变量。请与 AWS 帐户管理员联系来获取密钥。
例如,在 Linux、macOS 或 Unix 上,指定以下变量:
export AWS_ACCESS_KEY_ID="YOUR_AWS_ACCESS_KEY_ID" export AWS_SECRET_ACCESS_KEY="YOUR_AWS_SECRET_ACCESS_KEY" export AWS_DEFAULT_REGION="us-east-1"
在 Windows 上,指定以下变量:
set AWS_ACCESS_KEY_ID="YOUR_AWS_ACCESS_KEY_ID" set AWS_SECRET_ACCESS_KEY="YOUR_AWS_SECRET_ACCESS_KEY" set AWS_DEFAULT_REGION="us-east-1"
要永久指定这些环境变量,请在您的用户或系统环境中设置它们。
3.使用 AWS S3 网页或类似以下的命令为您的数据创建存储桶:
aws s3 mb s3://mynewbucket
4.使用类似以下的命令上传您的数据:
aws s3 cp mylocaldatapath s3://mynewbucket --recursive
例如:
aws s3 cp path/to/CIFAR10/in/the/local/machine s3://MyExampleCloudData/cifar10/ --recursive
5.通过在 MATLAB 中完成以下步骤,将您的 AWS 凭据复制到集群工作进程:
a.在主页选项卡上的环境部分中,选择 Parallel > Create and Manage Clusters。
b.在 Cluster Profile Manager 的 Cluster Profile 窗格中,选择您的云集群配置文件。
c.在 Properties 选项卡中,选择 EnvironmentVariables 属性,根据需要滚动以查找该属性。
d.在窗口右下角,点击 Edit。
e.点击 EnvironmentVariables 右侧的框,然后键入以下三个变量,每个变量各占一行:AWS_ACCESS_KEY_ID
、AWS_SECRET_ACCESS_KEY
和 AWS_DEFAULT_REGION
。
f.在窗口右下角,点击 Done。
有关如何创建云集群的信息,请参阅Create Cloud Cluster (Parallel Computing Toolbox)。
在 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。