Как посчитать сколько нужно видеопамяти для тренировки нейронной сети?

Есть ли где-нибудь информация при какой конфигурации НС сколько необходимо памяти в видеокарте для комфортного обучения нейронной сети? Или может кто-то смотрел насколько заполнена память при обучении вашей нейронной сети? Тогда хотелось бы увидеть - конфигурация сети, размер минибача при обучении и сколько это занимало памяти.

Цель сего - я только начинаю разбираться с нейронными сетями (Python+Keras). Планирую купить карту Нвидиа. На начальном этапе писать что-то сверхсложное не планирую, поэтому возник вопрос - есть ли смысл сразу гнаться за гигабайтами? Если типовые примеры из мниста или сифар-10 занимают не более 1-2 Гб при обучении, то смысла покупать карточку с 6-8-11 Гб для меня нету ... всё равно через год-полтора нужно будет апгрейдиться, а там уже и соответствующие карты "подвезут".
В принципе, самое сложное, что я сейчас вижу - входящий слой до 10к нейронов, скрытый слой до 30к нейронов с релу и выходящий слой 5-10 нейронов с софтмаксом. Размер обучающей выборки - 100к-500к примеров. Если кто-то может сказать, сколько оптимально под это нужно видеопамяти, буду благодарен. =)
  • Вопрос задан
  • 3270 просмотров
Решения вопроса 1
FerroPanda
@FerroPanda Автор вопроса
Сам отвечу. Необходимый объём памяти равен объёму обучающей выборки +ещё чуть-чуть. Если данных больше, чем объём памяти видеокарты, то падает производительность ядра, т.к. начинается постоянная подкачка данных из оперативной памяти в память видеокарты. Загрузка процессора видеокарты в таком случае падает в 2-3 раза, иногда больше.
Если у вас обучающая выборка 10+ Гб, то на 1060 возможно загрузка карты будет постоянная приближённая к максимуму. Т.е. проц не быстрый и успевает обработать то, что подгрузилось. Карта 1080 и выше в такой ситуации будет постоянно простаивать в ожидании данных, т.е. время обучения НС окажется условно одинаковым.
Если же объём выборки будет в районе 5-6 Гб или меньше, то 1080 окажется существенно быстрее.
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
@nedurov
Завит от устройства на котором будешь обучать.
Размер обучайющей выборки обычно не сильно влияет, тк её можно делать частями, а вот модель может жрать значительно. Например на видео карке где процессы распараллеливаются - для вычеслений участки модели дублируются в памяти. Для процессора распараллеливание происходит в меньшей степени и потому модель меньше занимает данных. Дублирование данных модели необходимо потому что модель в памяти должна быть неизменна на протяжении всего процесса обучения, а вот то какими пачками ты будешь обучать модель уже меньше влияет на размер резервированной памяти
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы