在scikit-learn上的大多数估计器中n_jobs
,fit
/ predict
方法中都有一个参数,用于使用来创建并行作业joblib
。我注意到将其设置为-1
仅创建1个Python进程并最大化内核,导致CPU使用率最高达到2500%。这与将其设置为大于1的正整数有很大的不同,后者会以〜100%的使用率创建多个Python进程。
设置它如何影响多CPU Linux服务器上的CPU和内核使用率?(例如,如果n_jobs=8
8个CPU完全锁定,还是这些CPU仍为某些其他任务/进程保留了一些内核?)
另外,MemoryError
设置n_jobs=-1
大型数据集时,我有时会得到提示。但是,单个Python进程的内存使用量通常徘徊在30%到40%之间。如何根据的值管理/复制数据和内存n_jobs
?
1
还要记住,您可以将其设置为-2,它将使用除1个可用内核之外的所有内核,从而使您的计算机至少可以正常工作。完全正确的是,内存问题通常开始对许多内核产生影响,尤其是在数据集很大的情况下
—
Ken Syme