2017-03-29 1 views
0

J'ai écrit une application de torche assez complexe et ça marche plutôt bien, c'est-à-dire si elle ne manque pas de mémoire. Maintenant, j'ai essayé de voir quel genre d'entrées ou de situations le rendrait apparemment trop aléatoire, mais jusqu'à présent, j'ai eu peu ou pas de succès. Alors maintenant je cherche un moyen de vérifier quelles variables prennent combien (v) ram. Je peux avec une simple déclaration basculer entre l'exécution de mon code sur caffe: cuda ou caffe: cl qui change quel que soit mon programme s'exécute en RAM ou sur le GPU, j'imagine qu'un tel switch fera valider mon utilisation de la mémoire beaucoup plus facile.Découvrez ce que prend ma mémoire dans torch7

J'ai déjà essayé d'utiliser print(collectgarbage("count")*1024) pour vérifier la quantité de mémoire utilisée à un moment donné, mais cela ne me montre pas clairement où la mémoire est utilisée, peut-être parce que le programme est relativement complexe (bien qu'il y ait quelques variables que je suspecte étreignent beaucoup de mémoire, réseaux de neurones, grandes matrices et tels).

Je sais déjà qu'une fois que j'ai identifié qui monopolise ma mémoire, je peux lui attribuer une valeur nulle et appeler le garbage collector trop libre.

Donc, en bref, y a-t-il un programme ou un outil qui me permet d'exécuter un programme de torche, puis de lister chaque variable et son utilisation de la mémoire?

Répondre

0

Je ne sais pas si vous avez essayé google :) Mais vous êtes ici:

TBO, je Je n'ai jamais eu de problèmes de mémoire avec Torch7 donc ce pourrait être votre implémentation qui n'est tout simplement pas optimale. Ce peut être une boucle sans collectgarbage appeler quelque part où il devrait être, par exemple. dans une boucle d'entraînement ou entre les époques.

+0

Les deux premiers liens semblent se concentrer sur le profilage d'un réseau existant et non sur l'utilisation de la mémoire, n'est-ce pas? Le troisième lien me permet de vérifier combien de fois une fonction a été appelée et combien de temps elle y passe, encore une fois pas de mémoire et la quatrième ne traite que de la mémoire en utilisant l'instruction collectgarbage ("count"). Ou est-ce que je manque quelque chose? – Thijser

+0

Correct. Si vous recherchez des outils de profilage sophistiqués dans le monde de Lua, vous n'avez pas de chance. – minerals