Задать вопрос
@AndrewMorozov2000

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

Добрый день.

Заинтересовало сделать свой проект по машинному обучению по теме human pose estimation. И у меня возник немного общий вопрос. Существуют ли подходы/метрики в оценке вычислительного ресурса железа необходимого для обучения и дальнейшей работы нейронной сети?

Т.е., сейчас у меня процессор Intel Core i5 8265U 1.6 ГГц c 4 ядрами, целесообразно ли на нем заниматься таким проектом или стоит подумать о покупке более мощного железа под такую задачу?
  • Вопрос задан
  • 1470 просмотров
Подписаться 1 Сложный Комментировать
Решения вопроса 1
@rPman
Размер и архитектура сети плюс размер обучающей выборки.

Не всегда количество ядер GPU оказываются решающими, большее влияние имеет размер и скорость GPU RAM.

Первая метрика, точнее граница, ниже которой скорость обучения максимальная - объем весов сети плюс обучающая выборка должны вмещаться в оперативную память GPU.

Несколько GPU позволяют почти линейно снизить требования к размеру обучающей выборки - так как можно поделить выборку на части и вычислять на каждом шаге ошибку параллельно (кстати так сделать можно не всегда).

Следующая граница - обучающая выборка не влезает в GPU но вмещается в RAM, сама же нейронная сеть влезает в GPU, т.е. вычисление самой сети все еще быстрое а значит единственное ограничение - узкое горлышко между RAM и GPU.

Следующая граница - обучающая выборка не влезает в RAM в принципе (например сотни гигабайт видео), в этом случае узким горлышком может стать скорость чтения из хранилища (но на практике подгоняют так чтобы процессор и gpu стали узким горлышком, часто можно найти как распараллелить).

Ну и дальше, вариант когда сеть не влезает в GPU лучше не рассматривать, так как тогда скорее всего задача будет решаться только огромными деньгами.

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

Так же огромное значение имеет подготовка данных, она может отнимать заметное количество ресурсов (и пока их не подготовишь, нельзя начинать следующий этап обучения сети) и главное так как идет исследование задачи, подготовка данных может быть далеко не однократной, до тех пор пока задача будет решена. Например ты подготовил данные, это заняло на твоей машине пару суток (и GPU даже не задействовано), но потом неделя насилования видеокарт не смогло построить сеть, т.е. она тупо не сходилась или наоборот, переобучалась, заучивая обучающую выборку но проваливая тестовую... приходится переделывать всю выборку, меняя алгоритм и способ подготовки данных, снова подготавливаешь данные сутками и по новой. Еще могут быть эксперименты с правкой самой сети (например прореживание весов), тоже отнимает время...

в общем это процесс творческий и каких то гарантий без собственно исследования дать нельзя.
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 4
@MEDIOFF
Python Developer
Вы только учитесь, не парьтесь насчет железа, с нуля вы не будете обучать модели, так что делайте на том что есть, есть площадки типу google colab.

P.S: для машинного обучения смотрите на видеокарту и количество CUDA ядер
Ответ написан
Комментировать
Jump
@Jump
Системный администратор со стажем.
Делайте на том что есть - указанной конфигурации прекрасно хватит для обучения.
Если же будет конкретный реальный проект работающий с большими данными для которого мощностей не хватит - то уже под него и будете подбирать необходимый сервер.

Другое дело что работать за компьютером с процессором 1.6 ГГц банально некомфортно - но это уже другой вопрос. Как подобрать железо для комфортной работы....

Тут принцип простой - какое есть железо, на таком и работайте.
Как только поймете что работать невозможно или крайне сложно - сразу придет понимание какое именно железо нужно.
Ответ написан
Комментировать
Вашего компьютера достаточно для выхода в интернет и работы в Google Colab: обучения моделей на их ресурсах, в т.ч. с GPU.

Для оценки требований к ресурсам можно посмотреть на общее число весов в модели. Чем больше в видеокарте CUDA-ядер и памяти, тем лучше. Но и без NVidia GPU, на слабом CPU можно тренировать и гонять модель. Просто медленнее. Много медленнее.
Ответ написан
Комментировать
@12rbah
Зависит от того на каком уровне вы хотите заниматься.
Вот хорошая статья, если лень читать в конце есть TL;DR
На проце можно обучать, но хз до какого уровня, если денег нет, то хотя бы 1050ti можно присмотреть(для начала точно хватит), с Google Colab можно работать, но там как повезет.
Заинтересовало сделать свой проект по машинному обучению по теме human pose estimation.
Это можно через opencv сделать, вашего железа хватит скорее всего.
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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