Можно ли дать эмпирическую оценку размера нейронных сетей, которые можно обучать на обычных графических процессорах потребительского уровня ? Например:
Бумага « Появление локомоции» («Укрепление») обучает сеть, используя активацию нейронов. У них есть 3-слойный NN с 300 200 100 единиц для Planar Walker . Но они не сообщают оборудование и время ...
Но может ли быть разработано эмпирическое правило? Также только на основе текущих эмпирических результатов, например:
X-юниты, использующие сигмоидальную активацию, могут выполнять Y итераций обучения в час на 1060.
Или использование функции активации a вместо b приводит к временному снижению производительности.
Если студент / исследователь / любопытный человек собирается купить графический процессор для игры с этими сетями, как вы решаете, что вы получите? 1060, по-видимому, является бюджетным вариантом начального уровня, но как вы можете оценить, если не разумнее просто купить дрянной нетбук вместо создания мощного рабочего стола и потратить сэкономленные $ на облачную инфраструктуру по требованию.
Мотивация для вопроса: я только что купил 1060 и (умный, чтобы задать вопрос потом да) задаюсь вопросом, должен ли я просто оставить $ и создать учетную запись Google Cloud. И если я смогу запустить симуляцию магистерской диссертации на GPU.
источник
В качестве предостережения я бы предложил, что если вы не настаиваете на фундаментальных технологических ограничениях, скорость вычислений и ресурсы должны быть вторичными по отношению к обоснованию проектирования при разработке архитектуры нейронной сети.
Тем не менее, в начале этого года я закончил свою магистерскую диссертацию, которая включала аналитические конвейеры биоинформатики с данными последовательности всего генома - этот проект занял более 100 000 часов вычислительного времени для разработки в соответствии с нашим менеджером по работе с кластерами. Когда вы находитесь на крайнем сроке, ресурсы могут быть реальным ограничением, а скорость может иметь решающее значение.
Итак, чтобы ответить на ваши вопросы так, как я их понимаю:
Было бы лучше использовать деньги, чтобы выиграть время в облаке?
Вероятно. Несколько сотен долларов, которые вы потратили на 1060, уводят вас далеко в обучении ваших моделей в облаке. Кроме того, насколько я могу судить, вам не требуется, чтобы графический процессор запускался 100% времени (вы бы, например, занимались майнингом криптовалют). Наконец, облачные экземпляры можно масштабировать, обучая сразу несколько моделей, что может ускорить исследование и проверку любой архитектуры, на которой вы остановились.
Есть ли способ измерить время вычислений нейронной сети на данном графическом процессоре
Ну, Big O - это одна из оценок, но, похоже, вам нужен более точный метод. Я уверен, что они существуют, но я бы сказал, что вы можете сделать свою оценку с помощью простых расчетов конвертов, которые учитывают потоки, память, итерации кода и т. Д. Вы действительно хотите углубиться в конвейер обработки GPU на 1060? Вы можете получить очень хорошую оценку, понимая все, что происходит между вашим кодом и металлом, но в конечном итоге это, вероятно, не стоит времени и усилий; это, вероятно, подтвердит, что нотация Big O (простая модель, если хотите) фиксирует большую часть различий во времени вычислений. Одна вещь, которую вы можете сделать, если заметите узкие места, - это профилирование производительности.
источник
Это зависит от того, что вам нужно. Вы можете обучать сеть любого размера на любом ресурсе. Проблема во времени обучения. Если вы хотите обучить Inception на среднем процессоре, то сходятся месяцы. Таким образом, все зависит от того, как долго вы можете ждать, чтобы увидеть результаты в вашей сети. Так как в нейронных сетях у нас есть не только одна операция, но много (например, конкатенация, максимальное объединение в пул, заполнение и т. Д.), Невозможно сделать оценку, которую вы ищете. Просто начните тренировать некоторые позорные сети и измерьте время. Затем вы можете интерполировать, сколько времени потребуется для обучения сетей, которые вы ищете.
источник