2016-09-11 2 views
0

私は10^5の平方スパース行列をpbAttackといいます。各要素は、ノードiとノードjの間に接続があるかどうかを表します。接続がある場合は、pbAttack(i、j)= 1です。それ以外の場合は、pbAttack(i、j)= 0.次に、このチュートリアルの後に使用します。Matlab Autoencoders。リンクされたMatlabチュートリアルと同じコードを使用します。私は自分のデータを使うように変更するだけです。 しかし、私は次しまったエラー:10^5スパース行列のMatlab Autoencodersを実行しているメモリのエラー

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,... 

は、すべてのこれらのエラーは、行列の巨大な大きさに起因していますか?あまりにも多くのメモリが必要ないように回避策がありますか?どうもありがとうございます。

+0

あなたのコードを提供してもあなたの質問を理解することをお勧めします。 –

+0

@Alexander、私はリンクされたMatlabチュートリアルと同じコードを使用します。私は自分のデータを使うように変更するだけです。 [リンク](http://www.mathworks.com/help/nnet/ug/construct-deep-network-using-autoencoders.html) – ARSN

答えて

0

これは、(マトリックスがあまりスパースではないため)十分なメモリーがないことを意味します。行列のサイズを小さくすることでコードを繰り返してみることができます。

関連する問題