FerroPanda
@FerroPanda

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

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

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

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

Войти через центр авторизации
Похожие вопросы