Имеет ли смысл использовать n_jobs = -1 как для внутреннего, так и для внешнего цикла? - PullRequest
2 голосов
/ 03 июля 2019

Я хочу распараллелить мою процедуру построения модели, используя scikit-learn.Интересно, имеет ли смысл распараллеливать как внешний, так и внутренний цикл (т.е. установить n_jobs = -1 как для GridSearchCV, так и для cross_validate)?

1 Ответ

2 голосов
/ 03 июля 2019

Короткая версия: Нет, это не так.

Более длинная версия потребует немного понимания того, как на самом деле обрабатывается n_jobs.

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

Это означает, что будетнет разумно «свободных» ресурсов для каких-либо «более глубоких» уровней попыток использовать -again- «столько ресурсов», сколько физически доступно (что n_jobs = -1 делает и подчиняется этому снова, но не имея «свободного», оставшегося незамеченным с первого разаВо-первых, это приведет к разрушительному разрушению при планировании попыток нанести на карту / evict / map / evict / map / evict, таким образом, большее количество рабочих мест для обработки на том же реальном (и уже довольноsy) аппаратные элементы).

Часто даже первая попытка может создать проблемы на стороне выделения ОЗУ, поскольку для больших моделей потребуется много репликаций во всех структурах данных ОЗУ во время реализации процесса (в целомфактически выполняется копирование со всеми объектами (использованными или не использованными, реплицированными в каждый новый процесс), так как количество «ядер» процессора «диктует».Результирующие перестановки памяти - это то, что вы никогда не захотите повторять.

Наслаждайтесь настройкой модели HyperParameters - это практика Creame a la Creame машинного обучения.Стоит быть хорошим в.

...