通常,训练深度神经网络需要大量的数据,而这些数据往往不适合记忆。您不需要多台计算机来解决使用过大而无法装入内存的数据集的问题。相反,您可以将训练数据分成包含部分数据集的小批。通过对小批量的迭代,网络可以从大型数据集中学习,而不需要一次将所有数据加载到内存中。
如果您的数据太大而无法装入内存,那么使用数据存储来处理小批量的数据以进行训练和推断。MATLAB®为不同的应用程序提供了许多不同类型的数据存储。有关不同应用程序的数据存储的更多信息,请参阅用于深度学习的数据存储.
增强图像数据存储
是专门为机器学习和计算机视觉应用而设计的,用于预处理和扩充成批的图像数据。例如,演示如何使用增强图像数据存储
要在培训期间管理图像数据,请参见带有增强图像的列车网络
如果您想使用大量数据来训练网络,并行训练会很有帮助。这样做可以减少培训网络所需的时间,因为您可以同时使用多个小批量进行培训。
建议使用一个GPU或多个GPU进行训练。如果没有GPU,只能使用单CPU或多CPU。在训练和推理方面,CPU通常比GPU慢得多。在单个GPU上运行通常比在多个CPU核上运行提供更好的性能。
有关并行训练的更多信息,请参见在GPU和云中并行扩展深度学习.
当并行训练时,您可以在后台获取和预处理数据。如果您想在培训期间对您的小批量进行预处理,例如使用变换
函数来对数据存储应用一个迷你批处理预处理函数。
当你用列车网络
函数,您可以通过启用后台调度在后台获取和预处理数据:
设定派遣背景
要删除的数据存储的属性真正的
.
设定“DispatchInBackground”
培训选项真正的
使用trainingOptions
函数。
在训练过程中,一些工人被用来对数据进行预处理,而不是进行网络训练计算。可以通过指定“工作量”
使用trainingOptions
函数。对于高级选项,可以尝试修改并行池的工作人员数量。
您可以使用内置的迷你批处理数据存储,例如增强图像数据存储
,去噪图像数据存储
(图像处理工具箱)或像素标签图像数据存储
(计算机视觉工具箱). 还可以使用启用后台调度的自定义小型批处理数据存储。有关创建自定义小批量数据存储的详细信息,请参见开发自定义小批量数据存储.
有关后台调度的数据存储要求的更多信息,请参阅使用数据存储进行并行培训和后台调度
在云中存储数据可以使您更容易访问云应用程序,而无需在每次创建云资源时上载或下载大量数据。两个AWS®和Azure®分别提供AWS S3和Azure Blob storage等数据存储服务。
为了避免与传输大量数据相关的时间和成本,建议您使用用于将数据存储在云中的相同云提供商和区域为深度学习应用程序设置云资源。
要从MATLAB访问云中存储的数据,必须使用访问凭据配置计算机。您可以使用环境变量从MATLAB内部配置访问。有关如何设置环境变量以从客户端MATLAB访问云数据的更多信息,请参阅使用远程数据.有关如何在远程集群中的并行工作人员上设置环境变量的详细信息,请参见设置工人的环境变量(并行计算工具箱).
有关如何将数据上载到云的示例,请参见将深度学习数据上传到云端.
有关云中深度学习的更多信息,请参阅云中的深度学习
使用自定义训练循环训练网络时,可以在后台使用minibatchqueue
以及启用后台调度。A.minibatchqueue
对象在对象上迭代数据存储
为自定义训练循环准备小批量。当小批量需要大量预处理时启用后台调度。
要启用后台分派,您必须:
设定派遣背景
要删除的数据存储的属性真正的
.
设定派遣背景
财产的minibatchqueue
到真正的
.
当您使用此选项时,MATLAB将打开一个本地并行池,用于对数据进行预处理。仅使用本地资源进行训练时,支持对自定义训练循环进行数据预处理。万博1manbetx例如,当在本地机器中使用单个GPU进行培训时,请使用此选项。
有关后台调度的数据存储要求的更多信息,请参阅使用数据存储进行并行培训和后台调度
trainingOptions
|minibatchqueue
|列车网络