gpt4 book ai didi

matlab - 我怎样才能用比内存更多的数据训练神经网络?

转载 作者:太空宇宙 更新时间:2023-11-03 20:33:29 25 4
gpt4 key购买 nike

尝试使用大量数据训练具有循环层的分类器。结果,所有数据都无法放入内存。它为我提供了以下错误:

Error using zeros
Requested 1x2114046976 (15.8GB) array exceeds maximum array size preference. Creation of arrays greater than this limit may take a long
time and cause MATLAB to become unresponsive. See array size limit or preference panel for more information.
Error in nnMex.perfsGrad (line 3)
TEMP = zeros(1,ceil(hints.tempSizeBG/8)*8);
Error in nnCalcLib/perfsGrad (line 294)
lib.calcMode.perfsGrad(calcNet,lib.calcData,lib.calcHints);
Error in trainscg>initializeTraining (line 153)
[worker.perf,worker.vperf,worker.tperf,worker.gWB,worker.gradient] = calcLib.perfsGrad(calcNet);
Error in nnet.train.trainNetwork>trainNetworkInMainThread (line 28)
worker = localFcns.initializeTraining(archNet,calcLib,calcNet,tr);
Error in nnet.train.trainNetwork (line 16)
[archNet,tr] = trainNetworkInMainThread(archNet,rawData,calcLib,calcNet,tr,feedback,localFcns);
Error in trainscg>train_network (line 147)
[archNet,tr] = nnet.train.trainNetwork(archNet,rawData,calcLib,calcNet,tr,localfunctions);
Error in trainscg (line 59)
[out1,out2] = train_network(varargin{2:end});
Error in network/train (line 369)
[net,tr] = feval(trainFcn,'apply',net,data,calcLib,calcNet,tr);

应该注意的是,目前我的训练输入是 11x52266,并且由于循环层,网络有大约 3k 个权重元素。但是,我想提供 15 倍的数据用于训练。

我该如何应对?是否有任何技术可以将它试图初始化的局部变量映射到我的 SSD 而不是内存?

训练有“减少”选项,但在这件事上似乎没有任何区别。无论如何都会出现同样的错误。

最佳答案

一般来说,如果您的数据集太大而无法放入内存,您将不得不分块处理它。对于大型网络的训练,通常使用随机梯度下降(一次只需要访问一个数据点)或小批量训练(只需要访问小批量中的数据点)。除了需要更少的内存外,这些方法的收敛速度也往往比批量梯度下降法(每次权重更新都使用整个数据集)快得多。磁盘访问速度很慢,因此即使每次更新只需要几个数据点,您仍然应该加载尽可能多的点,然后将它们分成小批量等。您可以使用其他技巧来减少磁盘数量读取,例如在加载下一组数据之前执行多次更新。

另一点特定于递归神经网络 (RNN)。当您使用时间反向传播 (BPTT) 训练 RNN 时,网络必须及时“展开”,并且被视为一个非常深的前馈网络,每个时间步都有一个循环层的副本。这意味着在更多的时间步长上执行 BPTT 需要更多的内存(和更多的计算时间)。一种解决方案是使用截断的 BPTT,其中梯度仅在固定数量的时间步长上传播回来。

关于matlab - 我怎样才能用比内存更多的数据训练神经网络?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37628238/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com