【发布时间】:2018-06-01 16:38:55
【问题描述】:
我正在使用sklearn的特征提取RFECV,它有一个参数“n_jobs”来分配核心使用。
我有一个英特尔 i5-8400 CPU @ 2.80GHz(6 核)
我正在运行 ubuntu 16.04(64 位)。最新版本的python、sklearn等
我有 2 个 jupyter notebook 同时运行。我使用 RFECV 中的 n_jobs 参数将 5 个内核分配给一个内核,将 1 个内核分配给另一个内核。
这是调用 5 个内核的代码,但它没有按预期工作:
logreg = LogisticRegression()
rfe = RFECV(logreg, step=3, cv=10, n_jobs=5)
rfe = rfe.fit(X_lab, y_lab)
y_pred=rfe.predict(X_lab),
无论如何,当我去睡觉时,使用 linux 'top' 命令查看 CPU 使用率,它显示所有 6 个内核都处于活动状态,并且几乎处于 100% 的使用率(这是我的预期)。但是,当我醒来时,只有 2 个在运行,正如您从 linux 上“top”调用的前 3 行中看到的那样:
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
10790 ted 20 0 1489568 416948 37064 R 100.0 1.7 2456:08 python3.6
781 ted 20 0 1621052 392824 36348 R 99.7 1.6 13:04.46 python3.6
937 root 20 0 481136 106528 83944 S 8.0 0.4 42:49.95 Xorg
我的 CPU 中有一个非常好的液体冷却系统,大量的 RAM,而且我没有超频。我是否使 CPU 负担过重,或者这可能与如何在 sklearn 上实现并行性有关,或者完全是其他什么?有任何想法吗?
【问题讨论】:
标签: linux parallel-processing scikit-learn jupyter-notebook cpu-usage