在10 ^ 5稀疏矩阵上运行Matlab Autoencoders的内存不足错误

时间:2016-09-11 21:45:21

标签: matlab deep-learning autoencoder bigdata

我有一个名为pbAttack的10 ^ 5平方稀疏矩阵。每个元素表示节点i和节点j之间是否存在连接。如果有连接,pbAttack(i,j)= 1.否则,pbAttack(i,j)= 0.然后我想按照本教程使用它:Matlab Autoencoders。我使用与链接的Matlab教程中相同的代码。我只更改它以使用我的数据。 但是,我遇到了以下错误:

Error using bsxfun
Out of memory. Type HELP MEMORY for your options.

Error in mapminmax.apply (line 8)
y = bsxfun(@plus,y,settings.ymin);

Error in mapminmax.create (line 44)
 y = mapminmax.apply(x,settings);

Error in mapminmax (line 51)
[y,settings] = mapminmax.create(x,param);

Error in nnet.internal.configure.input (line 31)
[x,config] = feval(processFcns{j},x,processParams{j});

Error in network/configure (line 234)
net = nnet.internal.configure.input(net,i,X{i});

Error in nntraining.config (line 116)
net = configure(network(net),X,T);

Error in nntraining.setup>setupPerWorker (line 68)
[net,X,Xi,Ai,T,EW,Q,TS,err] =   nntraining.config(net,X,Xi,Ai,T,EW,configNetEnable);

Error in nntraining.setup (line 43)
[net,data,tr,err] = setupPerWorker(net,trainFcn,X,Xi,Ai,T,EW,enableConfigure);

Error in network/train (line 335)
[net,data,tr,err] =    nntraining.setup(net,net.trainFcn,X,Xi,Ai,T,EW,enableConfigure,isComposite);

Error in Autoencoder.train (line 490)
        net = train(net,X,X,'useGPU',iYesOrNo(useGPU));

Error in trainAutoencoder (line 105)
autoenc = Autoencoder.train(X, autonet, paramsStruct.UseGPU);

Error in workflow_autoencoder (line 8)
autoenc1 = trainAutoencoder(pbAttack,hiddenSize,...

所有这些错误都是由巨大的矩阵造成的吗?是否有一个解决方案,以便它不需要这么多的内存?非常感谢你。

1 个答案:

答案 0 :(得分:0)

这只意味着你没有足够的内存(因为你的矩阵不是那么稀疏)。您可以尝试通过减小矩阵的大小来重复代码。