TensorFlow странное использование памяти - PullRequest
2 голосов
/ 12 марта 2020

Я нахожусь на машине с Ubuntu 19.10 (со средой рабочего стола KDE) с 8 ГБ ОЗУ, i5 8250u и MX130 GPU (2 ГБ VRAM), на котором работает ноутбук Jupyter Notebook с tenorflow-gpu.

Я просто тренировал некоторые модели, чтобы проверить их использование памяти, и я не вижу никакого смысла в том, на что я смотрю. Я использовал KSysGUARD и NVIDIA System Monitor (https://github.com/congard/nvidia-system-monitor) для мониторинга моей системы во время тренировки.

  1. Когда я нажимаю "тренироваться", на NVIDIA SM показывают, что использование памяти составляет 100% (или около 100%, как 95/97%), использование графического процессора в порядке.

  2. Всегда в NVIDIA SM, я смотрю на список процессов и "python "занимает всего около 60 МБ пространства vram.

  3. В KSysGUARD использование памяти python всегда составляет около 700 МБ.

Для этого может быть некоторое объяснение, проблема заключается в что использование памяти графическим процессором достигает 90% для модели с буквально 2 нейронами (плотно соединенными, конечно, xD), как это делает модель с 200 миллионами параметров. Я использую размер пакета 128.

Я обдумал этот беспорядок, и если я не ошибаюсь, модель с 200-миллионными параметрами должна занимать 200000000 * 4 байта * 128 байт, что должно быть 1024 ГБ. Это означает, что я определенно неправ в чем-то, но я слишком самоотвержен, чтобы оставить эту загадку для меня, поэтому я решил дать вам шанс решить эту проблему; D

PS: Engli sh не является мой основной язык.

1 Ответ

1 голос
/ 13 марта 2020

Tensorflow по умолчанию распределяет все доступные VRAM в целевом GPU. Существует экспериментальная функция, называемая ростом памяти, которая позволяет вам контролировать это, в основном останавливает процесс инициализации от выделения всей VRAM и делает это, когда в этом есть необходимость.

https://www.tensorflow.org/api_docs/python/tf/config/experimental/set_memory_growth

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...