Main Content

本页的翻译已过时。点击此处可查看最新英文版本。

将深度学习数据上传到云

此示例说明如何将数据上传到 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_IDAWS_SECRET_ACCESS_KEYAWS_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。

另请参阅

相关主题