Bonjour,
Je suis confronté à un "Out of Memory". J'ai bien lu et appliquer les recommandations d'une discussion portant sur ce thème. J'efface les matrices et variables inutiles au fur et à mesure dans le programme. J'obtiens toujours ce message:
Finalement, je me suis demandé que peut-être que c'est mon code qui a des problèmes. Voici mon code sur les réseaux de neurones:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14 ??? Error using ==> horzcat Out of memory. Type HELP MEMORY for your options. Error in ==> calcjx at 297 jx(inputWeightInd{i,j},:) = [gIW{i,j,:}]; Error in ==> calcjejj at 132 Jx = feval(gradientFcn,net,Pd,Zb,Zi,Zl,N,Ac,Q,TS); Error in ==> trainlm at 284 [je,jj,gradient] = calcjejj(net,trainV.Pd,Zb,Zi,Zl,N,Ac,El,Q,TS,mem_reduc); Error in ==> network.train at 219 [net,tr] = feval(net.trainFcn,net,tr,trainV,valV,testV);
Ptrain et Ptest sont des matrices de 25000 lignes et 24 variables continues, Ttrain et Ttest sont des matrices de 25000 lignes et une variable continue.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 net.divideFcn =''; %% Détruit la répartition par défaut (App:60%, Test:20%, Validation:20%) net = newff(Ptrain, Ttrain, 80); net.divideParam.trainRatio = 1; %% On prend tout le Ptrain net.divideParam.valRatio = 0; net.divideParam.testRatio = 0; net = train(net, Ptrain, Ttrain); %% Entrainer le réseau sur le training VP = sim(net, Ptest); %% Appliquer le réseau sur le test
J'avais lu la suggestion en mentionnant memory quelque part dans le programme, mais je ne sais pas où. Le programme fonctionne pour un nombre de neurones dans la couche cachée inférieur ou égale à 50. J'aimerai lui donner plus de neurones pour diminuer le nombre de faux positifs et de faux négatifs que je calcule après entre Ttest et VP.
Merci pour votre aide.
Partager