Я работаю в среде, в которой вычислительные ресурсы используются совместно, то есть у нас есть несколько серверных машин, оснащенных несколькими графическими процессорами Nvidia Titan X на каждой.
Для моделей малого и среднего размера 12 ГБ Titan X обычно достаточно, чтобы 2-3 человека могли одновременно тренироваться на одном и том же графическом процессоре. Если модели достаточно малы, чтобы одна модель не в полной мере использовала все вычислительные единицы графического процессора, это может фактически привести к ускорению по сравнению с запуском одного учебного процесса за другим. Даже в тех случаях, когда одновременный доступ к графическому процессору замедляет индивидуальное время обучения, все же приятно иметь возможность одновременной тренировки нескольких пользователей на графическом процессоре.
Проблема с TensorFlow заключается в том, что по умолчанию он выделяет полный объем доступной памяти GPU при запуске. Даже для небольшой двухслойной нейронной сети я вижу, что все 12 ГБ памяти GPU израсходованы.
Есть ли способ заставить TensorFlow выделять, скажем, 4 ГБ памяти GPU, если известно, что этого достаточно для данной модели?