0

我有一个名为 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,...

所有这些错误都是由矩阵的巨大尺寸引起的吗?是否有解决方法使其不需要那么多内存?太感谢了。

4

1 回答 1

1

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

于 2016-09-11T21:53:27.980 回答