Je travaille dans un environnement dans lequel les ressources de calcul sont partagées, c'est-à-dire que nous avons quelques machines serveurs équipées de quelques GPU Nvidia Titan X chacune.
Pour les modèles de petite à moyenne taille, les 12 Go du Titan X sont généralement suffisants pour que 2 à 3 personnes puissent exécuter la formation simultanément sur le même GPU. Si les modèles sont suffisamment petits pour qu'un seul modèle ne tire pas pleinement parti de toutes les unités de calcul du GPU, cela peut en fait entraîner une accélération par rapport à l'exécution d'un processus de formation après l'autre. Même dans les cas où l'accès simultané au GPU ralentit le temps de formation individuel, il est toujours agréable d'avoir la flexibilité d'avoir plusieurs utilisateurs simultanément formés sur le GPU.
Le problème avec TensorFlow est que, par défaut, il alloue la quantité totale de mémoire GPU disponible lors de son lancement. Même pour un petit réseau neuronal à deux couches, je constate que les 12 Go de mémoire GPU sont utilisés.
Existe-t-il un moyen de faire en sorte que TensorFlow n'alloue que, disons, 4 Go de mémoire GPU, si l'on sait que cela suffit pour un modèle donné?