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 :

optimisation lecture de données


Sujet :

MATLAB

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre émérite
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    769
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Octobre 2007
    Messages : 769
    Par défaut optimisation lecture de données
    Bonjour à tous,

    Pour un apprentissage et un contrôle de plusieurs réseaux de neurones, j'ai enregistré 18 variables x 262 milles et des bananes fois.

    J'ai enregistré dans un fichier texte (400Mo).

    Pour lancer mon apprentissage et modifié des paramètres, je relie ce fichier à chaque départ de mon programme et là çà prend beaucoup de temps...

    Connaissez vous une méthode pour optimiser ce genre de chose (enregistrement et lecture de gros fichier) ?

    Je travaille sous R2008a et/ou R2008b et sous MAC leopard et/ou winXP.

    Merci de votre aide

  2. #2
    Expert confirmé
    Avatar de duf42
    Homme Profil pro
    Formateur en informatique
    Inscrit en
    Novembre 2007
    Messages
    3 111
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France

    Informations professionnelles :
    Activité : Formateur en informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2007
    Messages : 3 111
    Par défaut
    Bonjour,

    Ne te serait-il pas possible d'enregistrer ton fichier au format MAT, quitte à enregistrer les 2 formats si tu as besoin du TXT. Cà permet de pas mal limiter le temps de chargement en ayant en plus des données directement au bon format...

    Bonne journée,
    Duf

  3. #3
    Membre émérite
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    769
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Octobre 2007
    Messages : 769
    Par défaut
    Merci duf42,

    J'utilise le fichier ".txt" car je sais lire et écrire sur ce type de fichier et c'est uniquement çà.

    Donc je vais regarder du côté ".mat"...

    Christophe

  4. #4
    Expert confirmé
    Avatar de duf42
    Homme Profil pro
    Formateur en informatique
    Inscrit en
    Novembre 2007
    Messages
    3 111
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France

    Informations professionnelles :
    Activité : Formateur en informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2007
    Messages : 3 111
    Par défaut
    Pour les MAT regarde du côté des fonctions SAVE et LOAD, tu vas grandement te simplifier la vie par rapport au TXT (du point de vue de gestion des données en tout cas)...

    Bon courage,
    Duf

  5. #5
    Membre émérite
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    769
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Octobre 2007
    Messages : 769
    Par défaut
    Mini question,

    La fonction "SAVE" ne s'utilise pas dans une boucle mais à la fin du script !!!

    merci

    Christophe

  6. #6
    Rédacteur/Modérateur

    Avatar de Jerome Briot
    Homme Profil pro
    Freelance mécatronique - Conseil, conception et formation
    Inscrit en
    Novembre 2006
    Messages
    20 317
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Freelance mécatronique - Conseil, conception et formation

    Informations forums :
    Inscription : Novembre 2006
    Messages : 20 317
    Par défaut
    Citation Envoyé par christophe_halgand Voir le message
    La fonction "SAVE" ne s'utilise pas dans une boucle mais à la fin du script !!!
    Si, avec l'argument '-append'

  7. #7
    Rédacteur/Modérateur

    Avatar de Jerome Briot
    Homme Profil pro
    Freelance mécatronique - Conseil, conception et formation
    Inscrit en
    Novembre 2006
    Messages
    20 317
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Freelance mécatronique - Conseil, conception et formation

    Informations forums :
    Inscription : Novembre 2006
    Messages : 20 317
    Par défaut
    Tu peux également utiliser des fichiers binaires à la place des fichiers ascii.

    Tu utilises alors les fonctions FOPEN/FWRITE/FCLOSE et FOPEN/FREAD/FCLOSE

    Afin de choisir le meilleur codage, il faut connaître l'ordre de grandeur de chacune des 18 variables

    Essaie cet exemple très simple mais très parlant sur les avantages des fichiers binaires :
    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
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    M  = int8(255*rand(500,100)-127);
     
    tic
    % Ecriture ascii
    fid = fopen('M.txt','wt');
        fprintf(fid,'% d',M.');
    fclose(fid);
    toc
     
    tic
    % Ecriture binaire
    fid = fopen('M.bin','w');
        fwrite(fid,M.','int8');
    fclose(fid);
    toc
     
    tic
    % Lecture ascii
    fid = fopen('M.txt','rt');
        Mascii = fscanf(fid,'%d',[100,500]).';
    fclose(fid);
    toc
     
    tic
    % Lecture binaire
    fid = fopen('M.bin','r');
        Mbinaire = fread(fid,[100,500],'*int8').';
    fclose(fid);
    toc
     
    whos
     
    all(Mascii(:) == Mbinaire(:))
    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
    Elapsed time is 0.043550 seconds.
    Elapsed time is 0.004341 seconds.
    Elapsed time is 0.018022 seconds.
    Elapsed time is 0.001771 seconds.
      Name            Size              Bytes  Class     Attributes
     
      M             500x100             50000  int8                
      Mascii        500x100            400000  double              
      Mbinaire      500x100             50000  int8                
      ans             1x1                   8  double              
      fid             1x1                   8  double              
     
     
    ans =
     
         1
    • L'écriture et la lecture se font 10x plus rapidement ici en binaire
    • La classe des données n'est pas altérée en binaire
    • Fichier binaire 3x plus petit que le fichier ascii (49 ko contre 154 ko)


    Voila...voila

  8. #8
    Membre émérite
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    769
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Octobre 2007
    Messages : 769
    Par défaut
    Merci Dut,

    Je vais tester les deux...

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 5
    Dernier message: 15/09/2005, 14h05
  2. Réponses: 6
    Dernier message: 15/09/2005, 14h04
  3. [FLASH MX2004] [XML] Lecture de données XML
    Par ZiT dans le forum Flash
    Réponses: 1
    Dernier message: 12/07/2005, 11h51
  4. [JList] Lecture des données sauvegardées dans un fichier
    Par Myogtha dans le forum Composants
    Réponses: 7
    Dernier message: 10/06/2004, 21h05
  5. lecture de données a partir de fichier
    Par sana dans le forum MFC
    Réponses: 5
    Dernier message: 21/01/2004, 12h57

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