Liberer la memoire GPU

Bonjour,

Lors du premier apprentissage d’un réseau de neurones, le notebook occupe 70-80% de la mémoire GPU. Je souhaiterais savoir si il est possible de libérer la mémoire après l’apprentissage afin de réitérer d’autre phase d’apprentissage?

Merci d’avance

Bonjour Yannick,

Je ne suis pas sûr d’avoir bien compris votre question. Le GPU n’est pas conçu pour stocker des informations. En revanche il permet d’accélérer grandement la vitesse de calcul. En pratique, lorsque vous entraînez un modèle, vous n’avez pas besoin de « libérer la mémoire », car cette dernière n’est pas figée comme dans un disque dur. En revanche, comme vous pouvez l’imaginer, le modèle que vous avez entraîné après une epoch sera perdu si vous souhaitez l’entraîner sur une deuxième epoch. Je vous encourage à consulter la notion de Callback sur keras pour apprendre comment sauvegarder un modèle au milieu de l’entraînement : ModelCheckpoint

Bonjour Alban et Yannick,

@1729, je crois que ce que @4863 veut dire c’est que la mémoire du GPU n’est pas libérée après un premier entraînement et qu’il obtient sans doute des messages d’erreur sur un manque de mémoire GPU lorsqu’il lance le second entraînement. C’est un problème que l’on rencontre classiquement sur des processus exécutés sur CPU + RAM quand le « garbage collection » (java, .NET…) est bogué ou configuré de manière trop laxiste. Cela peut également se produire sur GPU + mémoire graphique. Il se peut aussi que ce soit la mémoire cache de Pytorch/Tensorflow qui n’est pas libérée.

Une petite recherche sur Google confirme cette hypothèse et donne des solutions :

Je n’ai pas regardé en détail. :wink:

Noël