Trabajo en un entorno en el que se comparten recursos computacionales, es decir, tenemos algunas máquinas de servidor equipadas con algunas GPU Nvidia Titan X cada una.
Para modelos de tamaño pequeño a moderado, los 12 GB del Titan X suelen ser suficientes para que 2–3 personas realicen un entrenamiento al mismo tiempo en la misma GPU. Si los modelos son lo suficientemente pequeños como para que un solo modelo no aproveche al máximo todas las unidades computacionales de la GPU, esto puede resultar en una aceleración en comparación con la ejecución de un proceso de entrenamiento después del otro. Incluso en los casos en que el acceso concurrente a la GPU ralentiza el tiempo de entrenamiento individual, es bueno tener la flexibilidad de tener múltiples usuarios entrenándose simultáneamente en la GPU.
El problema con TensorFlow es que, de forma predeterminada, asigna la cantidad total de memoria de GPU disponible cuando se inicia. Incluso para una pequeña red neuronal de dos capas, veo que los 12 GB de memoria de la GPU están agotados.
¿Hay alguna manera de hacer que TensorFlow solo asigne, por ejemplo, 4 GB de memoria de GPU, si se sabe que esto es suficiente para un modelo dado?