В: Имеет ли смысл устанавливать этот параметр в обеих функциях?
Короткая версия: Нет, это не так.
Требуется более длинная версиячтобы немного понять, как на самом деле обрабатываются n_jobs
.
Наличие нескольких дорогостоящих ресурсов (верно, процессорных ядер как таковых, самых быстрых исамые дорогие элементы локальной иерархии кэша ЦП (не столь глубокие, чтобы изучать строки кэша и их соответствующую ассоциативность на этом уровне) и менее дорогие, а также более медленные ОЗУ), n_jobs = -1
Директива в первой выполненной сигнатуре вызова просто захватит все эти ресурсы сразу.
Это означает, что не будет разумно "свободных" ресурсов для любых "более глубоких" уровней попытки использовать -again- «столько ресурсов», сколько физически доступно (что n_jobs = -1
делает и подчиняется этому снова, но не имея «свободного», оставшегося неиспользованным от первого, в ext будет просто разрушительный хаоспомните «переподписанные» (перегруженная очередь задач для очень немногих реальных (и, следовательно, ни в коем случае не свободных в ближайшем будущем) ресурсов для использования) планирование O / S по планированию задач параллелизма пытается сопоставить / evict / map / evict / map/ evict, таким образом, больше заданий обработки на тех же реальных (и уже довольно занятых) аппаратных элементах).
Часто даже первая попытка может создать проблемы на стороне выделения ОЗУ, поскольку для больших моделей потребуется много репликацийвсе структуры данных ОЗУ во время создания экземпляров процесса (целая копия фактически создается со всеми объектами, использованными или не использованными, реплицированными в каждый новый процесс), так как количество ядер ЦП "диктует".Результирующие перестановки памяти - это то, что вы никогда не захотите повторять.
Наслаждайтесь настройкой модели HyperParameters - это практика Creame a la Creame машинного обучения.Стоит быть хорошим в.