Как объяснено в этом посте и моих собственных наблюдениях, Tensorflow всегда пытается выделить всю память , независимо от того, насколько мала или велика ваша модель.В отличие, например, от MXNet, который только выделяет достаточно памяти для запуска модели.
Погрузившись немного глубже, я узнал, что это действительно стандартное поведение в Tensorflow: использует всю доступную оперативную память , чтобы ускорить процесс.Достаточно справедливо:)
Можно подумать, что выделение большего объема памяти означает более быстрое обучение, но в большинстве случаев это не так.Вы можете ограничить использование памяти TF, как показано в следующем коде:
import tensorflow as tf
from keras.backend.tensorflow_backend import set_session
config = tf.ConfigProto()
config.gpu_options.per_process_gpu_memory_fraction = 0.9
config.gpu_options.visible_device_list = "0"
set_session(tf.Session(config=config))
Здесь - документация Tensorflow, если вам нужно больше подробностей о том, как установить ограничения на использование памяти TF.