IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

MATLAB Discussion :

Out of memory avec réseau de neurones


Sujet :

MATLAB

  1. #1
    Membre du Club
    Inscrit en
    Septembre 2009
    Messages
    343
    Détails du profil
    Informations forums :
    Inscription : Septembre 2009
    Messages : 343
    Points : 44
    Points
    44
    Par défaut Out of memory avec réseau de neurones
    Je débute en matlab, et j’ai un problème au niveau de l’utilisation du réseau de neurones.
    Voici le code que j’utilise pour lancer l’apprentissage du réseau de neurone.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    clc;
    clear;
    load('FishierFinal1.mat');
    tr_set=struct('P',[],'T',[]);
    tr_set.P=X';
    tr_set.T=Y';
    net=newff(tr_set.P,tr_set.T,13,{'logsig' 'logsig'}, 'trainrp');
    net=init(net);
    [net,tr]=train(net,tr_set.P,tr_set.T);
    plotperform(tr);
    save netHSCr net
    Mais il me lance cette erreur :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    ??? Out of memory. Type HELP MEMORY for your options.Error in ==> calcperf2 at 84
      BZ{i} = net.b{i}(:,ones1xQ);
     
    Error in ==> trainrp at 250
    [perf,El,trainV.Y,Ac,N,Zb,Zi,Zl] = calcperf2(net,X,trainV.Pd,trainV.Tl,trainV.Ai,Q,TS);
     
    Error in ==> network.train at 216
      [net,tr] = feval(net.trainFcn,net,tr,trainV,valV,testV);
     
    Error in ==> apprentissage at 12
    [net,tr]=train(net,tr_set.P,tr_set.T);
    Je n’ai pas compris l’erreur et d’où vient sachant que je travaille sur Windows avec une Ram de 1GO et mon fishier.mat contient deux variables X et Y. X c’est une matrice de 3 colonnes et 4354560 lignes et Y avec une seule colonne et 4354560 lignes.
    Ya –il quelqu’un qui peut m’aider à résoudre cette erreur ?

  2. #2
    Invité
    Invité(e)
    Par défaut
    Bonjour,

    Commence déjà par éviter de copier tes variables X et Y dans ta structure tr_set:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    X = X.';
    Y = Y.';
    net=newff(X,Y,13,{'logsig' 'logsig'}, 'trainrp');
    net=init(net);
    [net,tr]=train(net,X,Y);
    Puis si ton problème persiste, essaie de suivre ce qui est indiqué dans la Out of memory. Type HELP MEMORY for your options.

    Remarque: ta ligne net=init(net); n'a pas son utilité ici.
    Dernière modification par Invité ; 05/07/2011 à 12h40.

  3. #3
    Membre du Club
    Inscrit en
    Septembre 2009
    Messages
    343
    Détails du profil
    Informations forums :
    Inscription : Septembre 2009
    Messages : 343
    Points : 44
    Points
    44
    Par défaut
    Bonjour Winjerome,

    J'ai modifié le code comme vous m'avez dit comme ceci:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    clc;
    clear;
    load('FishierFinal1.mat');
    tr_set=struct('P',[],'T',[]);
    X = X.';
    Y = Y.';
    net=newff(X,Y,1,{'logsig' 'logsig'}, 'trainrp');
    net=init(net);
    [net,tr]=train(net,X,Y);
    plotperform(tr);
    save netHSCr net
    Mais il me lance cette fois cette erreur:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
     
    ??? Out of memory. Type HELP MEMORY for your options.
     
    Error in ==> calcgrad at 166
          NderivZ = ones(size(Nc));
     
    Error in ==> calcgx at 101
      [gB,gIW,gLW] = calcgrad(net,Q,PD,BZ,IWZ,LWZ,N,Ac,gE,TS);
     
    Error in ==> trainrp at 282
      [gX,gradient] = calcgx(net,X,trainV.Pd,Zb,Zi,Zl,N,Ac,El,perf,Q,TS);
     
    Error in ==> network.train at 216
      [net,tr] = feval(net.trainFcn,net,tr,trainV,valV,testV);
     
    Error in ==> apprentissage at 16
    [net,tr]=train(net,X,Y);

  4. #4
    Membre du Club
    Inscrit en
    Septembre 2009
    Messages
    343
    Détails du profil
    Informations forums :
    Inscription : Septembre 2009
    Messages : 343
    Points : 44
    Points
    44
    Par défaut
    Pour vous aider à corriger l'erreur, voulez vous que vous attache le FichierFinal1.mat??
    Mais le problème que sa taille est trops grand(18,2MO).

  5. #5
    Membre du Club
    Inscrit en
    Septembre 2009
    Messages
    343
    Détails du profil
    Informations forums :
    Inscription : Septembre 2009
    Messages : 343
    Points : 44
    Points
    44
    Par défaut
    Bonjour,

    J'ai diminier la taille de mon fishier.mat qui contient deux variables X et Y. X c’est une matrice de 3 colonnes et 4354560 lignes et Y avec une seule colonne et 4354560 lignes en 200000 lignes pour X et aussi pour Y et il a marché correctement. Donc ce que j'ai compris que le problème vient de la taille du fishier.mat qui contient 4354560 lignes.
    Donc comment je peux modifier le code de mon réseau de neurone pour qu'il supporte cette taille(4354560 ou même plus)??

  6. #6
    Membre du Club
    Inscrit en
    Septembre 2009
    Messages
    343
    Détails du profil
    Informations forums :
    Inscription : Septembre 2009
    Messages : 343
    Points : 44
    Points
    44
    Par défaut
    Remarque: ta ligne net=init(net); n'a pas son utilité ici.

    Pouvez vous winjerome m'expliquer pouquoi n'a pas son utilité ici?

  7. #7
    Invité
    Invité(e)
    Par défaut
    IL suffit de regarder la documentation

    Citation Envoyé par doc init
    net = newp([0 1;-2 2],1);
    net.iw{1,1}
    net.b{1}

    Training the perceptron alters its weight and bias values.

    P = [0 1 0 1; 0 0 1 1];
    T = [0 0 0 1];
    net = train(net,P,T);
    net.iw{1,1}
    net.b{1}

    init reinitializes those weight and bias values.

    net = init(net);
    net.iw{1,1}
    net.b{1}
    Or ici tu ne fais rien entre sa création avec newff et sa réinitialisation.

Discussions similaires

  1. Probléme avec réseau de neurone artificiel
    Par bensof1 dans le forum Méthodes prédictives
    Réponses: 4
    Dernier message: 03/05/2011, 16h40
  2. Out of memory avec memory_limit à -1
    Par steveleg dans le forum Langage
    Réponses: 3
    Dernier message: 22/09/2010, 15h45
  3. Out of memory avec plein de mémoire!
    Par JM-R dans le forum ASP.NET
    Réponses: 4
    Dernier message: 26/11/2007, 14h28
  4. Réponses: 15
    Dernier message: 11/05/2007, 15h55
  5. [DBDesigner] Out of memory avec DB Designer 4 et Mysql
    Par titeuf38 dans le forum DBDesigner
    Réponses: 5
    Dernier message: 03/05/2007, 12h00

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo