Какой размер нейронных сетей можно обучить на современных графических процессорах потребительского уровня? (1060,1070,1080)


9

Можно ли дать эмпирическую оценку размера нейронных сетей, которые можно обучать на обычных графических процессорах потребительского уровня ? Например:

Бумага « Появление локомоции» («Укрепление») обучает сеть, используя активацию нейронов. У них есть 3-слойный NN с 300 200 100 единиц для Planar Walker . Но они не сообщают оборудование и время ...

Но может ли быть разработано эмпирическое правило? Также только на основе текущих эмпирических результатов, например:

X-юниты, использующие сигмоидальную активацию, могут выполнять Y итераций обучения в час на 1060.

Или использование функции активации a вместо b приводит к временному снижению производительности.

Если студент / исследователь / любопытный человек собирается купить графический процессор для игры с этими сетями, как вы решаете, что вы получите? 1060, по-видимому, является бюджетным вариантом начального уровня, но как вы можете оценить, если не разумнее просто купить дрянной нетбук вместо создания мощного рабочего стола и потратить сэкономленные $ на облачную инфраструктуру по требованию.

Мотивация для вопроса: я только что купил 1060 и (умный, чтобы задать вопрос потом да) задаюсь вопросом, должен ли я просто оставить $ и создать учетную запись Google Cloud. И если я смогу запустить симуляцию магистерской диссертации на GPU.

Ответы:


5

Обычно проблема заключается в том, чтобы уместить модель в видеопамять. Если этого не произойдет, вы не сможете тренировать свою модель вообще без больших усилий (например, тренируйте отдельные части модели отдельно). Если это так, время - ваша единственная проблема. Но разница во времени обучения между потребительскими графическими процессорами, такими как Nvidia 1080, и гораздо более дорогими графическими ускорителями, такими как Nvidia K80, невелика. На самом деле лучшие потребительские карты быстрее, чем графические ускорители, но не имеют других свойств, таких как VRAM. Случайные сравнения и тесты: http://timdettmers.com/2017/04/09/which-gpu-for-deep-learning/ , https://medium.com/@alexbaldo/a-comparison-between-nvidias-geforce -gtx-1080-и-тесла-p100-для-глубокого изучения-81a918d5b2c7

Чтобы рассчитать, подходят ли ваши модели к VRAM, вы просто приближаете, какой объем данных и какие у вас гиперпараметры (входы, выходы, веса, слои, размер пакета, тип данных и т. Д.).


1
Хороший ответ, но какая модель не вписывается в 6 / 8ГБ памяти? Допустим, каждая партия данных обучения + модель. Я понятия не имею, как рассчитать размер модели, но я не могу представить несколько тысяч нейронов, и их вес может заполнить гигабайты памяти. Модель распознавания изображений с предтренировкой от Google - это несколько сотен мегапикселей tenorflow.org/tutorials/image_recognition, которая может распознавать больше, чем большинство других. Apple обрабатывает его на чипе в iPhone, поэтому сама модель должна быть намного меньше, чем T-данные. И это не должно быть все в оперативной памяти, верно?
pascalwhoop

Я часто работаю с моделями NLP, в основном с многослойными сетями RNN, и если размер словаря велик, даже 8 ГБ может быть недостаточно. Помните, что тренировке обычно требуется больше места, чем предсказанию (градиенты также занимают место).
С. Идуколи

3

В качестве предостережения я бы предложил, что если вы не настаиваете на фундаментальных технологических ограничениях, скорость вычислений и ресурсы должны быть вторичными по отношению к обоснованию проектирования при разработке архитектуры нейронной сети.

Тем не менее, в начале этого года я закончил свою магистерскую диссертацию, которая включала аналитические конвейеры биоинформатики с данными последовательности всего генома - этот проект занял более 100 000 часов вычислительного времени для разработки в соответствии с нашим менеджером по работе с кластерами. Когда вы находитесь на крайнем сроке, ресурсы могут быть реальным ограничением, а скорость может иметь решающее значение.

Итак, чтобы ответить на ваши вопросы так, как я их понимаю:

Было бы лучше использовать деньги, чтобы выиграть время в облаке?

Вероятно. Несколько сотен долларов, которые вы потратили на 1060, уводят вас далеко в обучении ваших моделей в облаке. Кроме того, насколько я могу судить, вам не требуется, чтобы графический процессор запускался 100% времени (вы бы, например, занимались майнингом криптовалют). Наконец, облачные экземпляры можно масштабировать, обучая сразу несколько моделей, что может ускорить исследование и проверку любой архитектуры, на которой вы остановились.

Есть ли способ измерить время вычислений нейронной сети на данном графическом процессоре

Ну, Big O - это одна из оценок, но, похоже, вам нужен более точный метод. Я уверен, что они существуют, но я бы сказал, что вы можете сделать свою оценку с помощью простых расчетов конвертов, которые учитывают потоки, память, итерации кода и т. Д. Вы действительно хотите углубиться в конвейер обработки GPU на 1060? Вы можете получить очень хорошую оценку, понимая все, что происходит между вашим кодом и металлом, но в конечном итоге это, вероятно, не стоит времени и усилий; это, вероятно, подтвердит, что нотация Big O (простая модель, если хотите) фиксирует большую часть различий во времени вычислений. Одна вещь, которую вы можете сделать, если заметите узкие места, - это профилирование производительности.


2

Это зависит от того, что вам нужно. Вы можете обучать сеть любого размера на любом ресурсе. Проблема во времени обучения. Если вы хотите обучить Inception на среднем процессоре, то сходятся месяцы. Таким образом, все зависит от того, как долго вы можете ждать, чтобы увидеть результаты в вашей сети. Так как в нейронных сетях у нас есть не только одна операция, но много (например, конкатенация, максимальное объединение в пул, заполнение и т. Д.), Невозможно сделать оценку, которую вы ищете. Просто начните тренировать некоторые позорные сети и измерьте время. Затем вы можете интерполировать, сколько времени потребуется для обучения сетей, которые вы ищете.


Вам известен ресурс, который собирает информацию для различных заданий NN? Итак, список: тип NN, количество единиц, гиперпараметры, размер набора данных, используемое оборудование, время, затрачиваемое? Это помогло бы выработать эмпирическое правило
pascalwhoop
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.