主要内容

利用大数据进行深度学习

通常,训练深度神经网络需要大量的数据,这些数据通常不适合存储。使用太大而无法存储在内存中的数据集,您不需要多台计算机来解决问题。相反,您可以将训练数据分成包含数据集一部分的小批次。通过在小批次上迭代,网络c一种从大型数据集中学习的方法,无需立即将所有数据加载到内存中。

如果您的数据太大,无法存储在内存中,请使用数据存储来处理用于训练和推理的小批量数据®为不同的应用程序提供许多不同类型的数据存储。有关不同应用程序的数据存储的更多信息,请参见用于深度学习的数据存储

augmentedImageDatastore是专门为机器学习和计算机视觉应用程序预处理和增强成批图像数据。以示例说明如何使用augmentedImageDatastore要在训练期间管理图像数据,请参见具有增强图像的列车网络

并行处理大数据

如果想要使用大量数据来训练网络,并行训练可能会很有帮助。这样做可以减少训练网络所需的时间,因为您可以同时使用多个小批量进行训练。

建议使用一个GPU或多个GPU进行训练。如果没有GPU,只能使用单个CPU或多个CPU。在训练和推理方面,cpu通常比gpu慢得多。运行在单个GPU上通常比运行在多个CPU核上有更好的性能。

有关并行培训的更多信息,请参阅在gpu和云上并行扩展深度学习

后台数据预处理

并行训练时,您可以在后台获取和预处理数据。如果您想在培训期间预处理小批量,例如在使用使改变函数将小批量预处理函数应用于数据存储。

当您使用trainNetwork函数,您可以通过启用后台调度在后台获取和预处理数据:

在培训期间,某些辅助人员用于预处理数据,而不是网络培训计算。您可以通过指定“WorkerLoad”的名称-值参数培训选项对于高级选项,您可以尝试修改并行池的工作线程数。

您可以使用内置的小型批处理数据存储,例如augmentedImageDatastoredenoisingImageDatastore(图像处理工具箱),或pixelLabelImageDatastore(计算机视觉工具箱).您还可以使用启用后台分派的自定义小批量数据存储。有关创建自定义小批量数据存储的详细信息,请参见开发自定义小批量数据存储

有关后台调度的数据存储需求的详细信息,请参见使用数据存储进行并行培训和后台调度

与云中的大数据合作

在云中存储数据可以使您更容易地访问云应用程序,而不需要在每次创建云资源时上传或下载大量数据。两个AWS®和蔚蓝®分别提供数据存储服务,如AWS S3和Azure Blob存储。

为了避免与传输大量数据相关的时间和成本,建议使用用于在云中存储数据的相同的云提供商和区域为深度学习应用程序设置云资源。

要从MATLAB访问存储在云中的数据,您必须使用访问凭证配置您的机器。您可以使用环境变量从MATLAB内部配置访问。有关如何设置环境变量以从客户机MATLAB访问云数据的更多信息,请参见使用远程数据. 有关如何在远程集群中的并行工作程序上设置环境变量的更多信息,请参阅在Workers上设置环境变量(并行计算工具箱)

有关如何将数据上载到云的示例,请参见上传深度学习数据到云

有关云中的深度学习的更多信息,请参见云端深度学习

为自定义训练循环预处理数据

当您使用自定义训练循环训练网络时,您可以通过使用小型批处理队列以及启用后台调度。一个小型批处理队列对象迭代数据存储为定制训练循环准备小批量。当您的小批量需要大量预处理时,启用后台调度。

要启用后台调度,您必须:

  • 设置DispatchInBackground属性符合事实的

  • 设置DispatchInBackground财产小型批处理队列符合事实的

使用此选项时,MATLAB将打开一个本地并行池,用于预处理数据。仅使用本地资源进行培训时,支持自定义培训循环的数据预处理。例如,在本地计算机中使用单个GPU进行培训时,请使用此选项。金宝app

有关后台调度的数据存储需求的详细信息,请参见使用数据存储进行并行培训和后台调度

另请参阅

||

相关话题