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