Erreur d'allocation de fichier

Postez ici vos questions, réponses, commentaires ou suggestions - Les sujets seront ultérieurement répartis dans les archives par les modérateurs

Modérateur : Groupe des modérateurs

Jue Binette
Messages : 17
Enregistré le : 09 Sep 2008, 12:24

Erreur d'allocation de fichier

Messagepar Jue Binette » 09 Sep 2008, 13:04

Bonjour!

Désolée de revenir sur le sujet mais j'ai moi aussi des problème de mémoire avec R et les conseils que j'ai eu peu de succès avec les conseils donnés sur le forum à ce jour. Il est cependant aussi possible que je ne comprenne pas très bien ce que je devrais faire étant donné que je suis peu familière avec la programmation R.

J'utilise un script qui fait intervenir WinBugs afin de modéliser les trajectoires de déplacements Argos de mammifères marins. Je dois donc récupérer le fichier à la fin de ces analyses afin d'être en mesure de le visualiser et de le travailler avec d'autres programmes. CEpendant, à la fin des analyses, je reçois le message d'erreur suivant:

Cannot allocate vector of size 492.6 Mb
Ìn addition: Warning message
1: Reached total allocation of 2560Mb: see help(memory.size) in: scan(file, what, nmax, sep, dec, quote, skip, nlines, na.strings,
2: Reached total allocation of 2560Mb: see help(memory.size) in: scan(file, what, nmax, sep, dec, quote, skip, nlines, na.strings,
3: Reached total allocation of 2560Mb: see help(memory.size) in: scan(file, what, nmax, sep, dec, quote, skip, nlines, na.strings,
4: Reached total allocation of 2560Mb: see help(memory.size) in: scan(file, what, nmax, sep, dec, quote, skip, nlines, na.strings,

La personne qui a fait le script réussit à le faire marcher avec mes données sans problème. Les problèmes de mémoire insuffisante dû à l'ordinateur me semblent aussi peut probables étant donné que j'ai obtenu les mêmes messages d'erreur lorsque j'ai utilisé un ordinateur qui a une capacité de 232 Gb dont 218 Gb sont disponibles de 1.8 GHZ et 8Gb de RAM pour tester le programme.

Avez-vous une idée de ce que je pourrais faire pour contourner ce problème ou tout simplement récupérer le fichier à la fin de mes analyses?

Merci de votre aide si précieuse...

Jue!

Je sais que le programme marche bien étant donné que la personne qui a monté le programme n'a aucun problème à l'utiliser avec mes données.

Aurélien Madouasse
Messages : 352
Enregistré le : 26 Fév 2007, 11:23

Messagepar Aurélien Madouasse » 09 Sep 2008, 13:23

Est-ce que tu pourrais donner plus de détails?

Le message apparait-il lors de la récupérations de données WinBUGS? Quel package utilises-tu?

Si par exemple ton fichier de sortie est trop volumineux, tu peux jouer sur le n.thin pour ne sauvegarder qu'une partie des itérations.

Aurélien

Jue Binette
Messages : 17
Enregistré le : 09 Sep 2008, 12:24

Messagepar Jue Binette » 09 Sep 2008, 14:37

Bonjour.

Tout d'abord merci de vous attarder à mon problème qui me cause de plus en plus de soucis... Je suis en train de faire rouler une analyse (ce qui peut être long...) afin d'être en mesure de répondre avec précision à vos questions. Mais si ma mémoire est bonne (après avoir passé deux semaines loin de l'ordi...) le message d'erreur apparait en effet lors de la récupération de données de Winbugs, ou en lorsque winbugs a ternminé d'analyser.

J'utilise le package dat2bugslite.R pour faire appel à Winbugs à partir de R.

Je pourrais en effet diminuer le nombre de thin. Je n'ai en effet aucun problème à faire rouler le tout lorsque j'ai un faible nombre de thin et par conséquent, je ne reçois aucun message d'erreur. Il est toutefois recommandé de faire les analyses avec 10000 thin pour que le programme soit en mesure de bien modéliser les trajectoires.

J'ajouterai des précisions lorsque les analyses seront terminées (et que les message d'erreur apparaîtront, hélas!). ESt-ce que ces précision aident à comprendre??

Merci encore!

Aurélien Madouasse
Messages : 352
Enregistré le : 26 Fév 2007, 11:23

Messagepar Aurélien Madouasse » 09 Sep 2008, 15:18

C'est à toi de déterminer le nombre d'itérations requises pour que ton modèle converge ("burnin"). Divers diagnostics existent (gelman.diag) dont aucun ne semble parfait. Tu dois pouvoir avoir une idée en regardant ce que ça donne en lançant plusieurs chaines simultanément. Essaye 3 chaines sur 1000 itérations, ca devrait déjà te donner une idée.

Une fois que ça a convergé, tu peux faire des stats sur le reste de la chaine. Là encore, à toi de voir de combien de valeurs tu as besoin.

En résumé, tu dois pouvoir alléger ton fichier en choisissant un nombre d'itérations, un "burnin" et un "thinning" appropriés. Il y a plein de docs sur internet. Regarde par exemple le document suivant:

[url]home.uchicago.edu/~grynav/bayes/ABSLec13.ppt[/url]

Regarde aussi du coté des packages R2WinBUGS et coda,

Bon courage,

Aurélien

Jue Binette
Messages : 17
Enregistré le : 09 Sep 2008, 12:24

Messagepar Jue Binette » 09 Sep 2008, 15:52

Je fais rouler le modèle avec 2 chaines pour 10 000 itérations. C'est ce que l'auteur du script pour modéliser les trajectoires recommande. Mais ce que je trouve bizarre c'est que lui parvienne à faire les analyses sur mes données en utilisant ces paramètres sans problème alors que moi je n'y arrive tout simplement pas...

jean lobry
Messages : 733
Enregistré le : 17 Jan 2008, 20:00
Contact :

Messagepar jean lobry » 09 Sep 2008, 16:07

Bonjour,

se pourrait-il que l'auteur soit sous Linux et vous sous Windows ? Cela pourrait expliquer le problème de mémoire que vous avez sous Windows, même avec une machine avec 8 Gio de RAM.

Amicalement,

Jean

Aurélien Madouasse
Messages : 352
Enregistré le : 26 Fév 2007, 11:23

Messagepar Aurélien Madouasse » 09 Sep 2008, 16:07

Pour compléter:

N valeurs sauvergardées = (N itérations - N "burnin") / N "thining" * N variables

Tu peux jouer sur chacunes de ces valeurs. Après, ça dépend aussi de l'ordi

Aurélien

Jue Binette
Messages : 17
Enregistré le : 09 Sep 2008, 12:24

Messagepar Jue Binette » 09 Sep 2008, 16:12

heuuu... Je dois dire que là, n'étant pas trop familière ni avec R et encore moins avec Winbugs, je comprends pas trop... Je peux préciser le nombre de valeur sauvegardées où c'est pour déterminer les paramètres de mon modèle?

Voici la programmation que j'utilise pour les estimations finales de mon modèles

#wbs(test, model = '1diff2stateM.bug', samples=10000, burn = 5000, thin = 10, chains = 2, debug = FALSE)

Jue Binette
Messages : 17
Enregistré le : 09 Sep 2008, 12:24

Messagepar Jue Binette » 09 Sep 2008, 16:14

Non l'auteur est lui aussi sous windows avec un ordi ayant les mêmes paramètres que les miens...

Jue Binette
Messages : 17
Enregistré le : 09 Sep 2008, 12:24

Messagepar Jue Binette » 09 Sep 2008, 16:17

thin=2 désolée....

jean lobry
Messages : 733
Enregistré le : 17 Jan 2008, 20:00
Contact :

Messagepar jean lobry » 09 Sep 2008, 16:26

Jue Binette a écrit :Non l'auteur est lui aussi sous windows avec un ordi ayant les mêmes paramètres que les miens...

Bon, alors là ce n'est pas normal. Il faut trouver la différence entre les deux. Je vois deux pistes :

1) Comparer le résultat de la commande sessionInfo() entre les deux pour voir s'il y a une différence (version de R et des paquets installés).

2) Vérifier si quand vous lancez R il n'y aurait pas par hasard la restauration d'une session précédente avec des objets volumineux qui encombrent la mémoire pour rien. Sous Linux il suffit de faire un :

Code : Tout sélectionner

R --vanilla


pour partir sur des bases saines, mais je ne connais pas l'équivalent sous windows. Mais quand vous lancez R vous devez avoir un message vous disant quelque chose du genre "l'espace de travail a été restauré" si tel est le cas.

HTH,

Jean

Aurélien Madouasse
Messages : 352
Enregistré le : 26 Fév 2007, 11:23

Messagepar Aurélien Madouasse » 09 Sep 2008, 16:30

C'est juste que d'après le message d'erreur, on dirait que R n'arrive pas à gérer la quantité de données. Je me disait donc qu'en générant un fichier un peu moins volumineux, ça aurait éventuellement pu régler le problème.

J'ai cherché sur Google et je n'est trouvé aucune référence à la fonction utilisée!!! Est-ce une un nouveau package?

Aurélien

Jue Binette
Messages : 17
Enregistré le : 09 Sep 2008, 12:24

Messagepar Jue Binette » 09 Sep 2008, 17:38

En effet, je ne crois pas que le script que j'utilise soit disponible sur le site de R. Un package similaire etait disponible mais je n'arrive pas à la retrouver...

La fonction wbs (si c'est celle-ci dont vous parler) est la partie de la programmation qui refère aux paramètres devant être utilisé par winbugs soit burns, thin, chain...

Jue Binette
Messages : 17
Enregistré le : 09 Sep 2008, 12:24

Messagepar Jue Binette » 10 Sep 2008, 13:01

alors voilà! Après avoir fait rouler R et Winbugs Winbugs est fermé j'ai ce message d'Erreur dans ma console de R:
Erreur : impossible d'allouer un vecteur de taille 136.9 Mo

Lorsque je vérifie les objets en mémoire en utilisant la fonction ls() je n'ai aucun fichier autre que les fonction utiliser par mon script et que le fichier de départ, donc pas de traces d'un quelconque fichier créé par Winbugs suite aux analyses.

Quelqu'un sait comment m'aider?
Merci!

Aurélien Madouasse
Messages : 352
Enregistré le : 26 Fév 2007, 11:23

Messagepar Aurélien Madouasse » 10 Sep 2008, 13:39

Essaye:

Code : Tout sélectionner

wbs(test, model = '1diff2stateM.bug', samples=100, burn = 1, thin = 1 , chains = 1, debug = FALSE)


Ca devrait déjà te dire si le code WinBUGS fonctionne et te permettre de regarder la sortie, sans perdre trop de temps.

Ensuite, tu peux essayer de sauver tes résultats au format coda et les réimporter par la suite avec la commande read.coda. Comme ça tu auras un fichier que tu peux tester sur un autre ordi si besoin est. Avec read.coda, tu peux aussi ne charger qu'une partie de la chaine avec "start" et "end".

Aurélien


Retourner vers « Questions en cours »

Qui est en ligne

Utilisateurs parcourant ce forum : Aucun utilisateur enregistré et 1 invité