J'ai une entrée de données vidéo de la forme (300.226.226,3) avec le canal dernière configuration et ma sortie est (300,1) stockée sous forme de formats de tableau NUMPY. Comme je ne veux pas charger toutes les données à la fois, car il est d'environ 120 Go. Mon code est assez simple: dès que je courais cela, ma mémoire GPU (GTX 1060: 6 Go) est pleine et donc mon bélier. Est-ce que je fais quelque chose de mal ici? P> p>
3 Réponses :
Essayez de réduire les étapes_per_epoch & validation_steps. Mettre toutes les données dans ceux explosera votre mémoire. C'est comme défini la taille du lot. P>
étapes_per_epoch strong>: nombre total d'étapes (lots d'échantillons) à céder du générateur avant de déclarer une époque finie et de commencer la prochaine époque. Il devrait généralement être égal au nombre d'échantillons de votre ensemble de données divisé par la taille du lot. Facultatif pour la séquence: si non spécifié, utilisera la len (générateur) comme un certain nombre d'étapes. P>
validation_steps strong>: uniquement pertinent si validation_data est un générateur. Nombre total d'étapes (lots d'échantillons) à céder du générateur avant d'arrêter. Facultatif pour la séquence: si non spécifié, utilisera la len (validation_data) comme un certain nombre d'étapes. P>
Je les ai réduit à un et modifié le max_queue_size = 1. Plus j'ai deux GTX1080TI avec 12 Go de mémoire B>, pensez-vous que je devrais le réduire à moitié ou plus bas?
Voulez-vous s'il vous plaît poster votre sortie Seq.Summary ()
La taille du lot dans l'apprentissage profond fait référence au nombre d'exemples de formation utilisés dans une itération. Vous avez donné une telle taille de lot de 300. Il suffit de réduire le lot à un nombre plus petit de 8,16,32 qui est généralement une pratique dans une expérience d'apprentissage profonde. Donner un grand lot conduit souvent à un GPU hors de la mémoire, car une quantité de mémoire ne sera pas disponible pour traiter un grand lot d'images. P>
Une autre raison qui peut entraîner des situations de mémoire de mémoire peut être en raison de la présence d'autres processus fonctionnant en arrière-plan. Il suffit de faire J'espère que cela vous aidera. p> nvidia-smi code> et voyez s'il existe des processus exécutés dans le GPU. Si oui, vérifiez la disponibilité de la mémoire. p>
Mais il s'agit d'une donnée séquentielle, ma formation était censée se produire sur toute la vidéo à la fois. De plus, j'ai deux GTX1080TI avec 12 Go de mémoire B>, pensez-vous que je devrais le réduire à moitié ou plus bas?
Je pense que vous devriez lire sur les époques, les itérations et l'apprentissage profond. Réduire votre taille de lot n'a rien à faire si vous allez vous entraîner dans une vidéo entière. Que vous donniez la taille du lot de 16 ou 3000, des images vidéo entières seront couvertes dans une époque.
Tout d'abord, assurez-vous que plus aucune application de navigateur est en cours d'exécution telle que Chrome, Firefox, ainsi de suite. Plus tard, allumez l'outil GPU-Monitor pour voir son utilisation de la mémoire pour régler les paramètres de taille par lots. Si vous ne travaillez toujours pas, essayez de réduire la taille des données de formation. p>