【问题标题】:Why Core activity decreased in sklearn after time RFECV/LogisticRegression为什么在 RFECV/LogisticRegression 之后 sklearn 中的核心活动减少
【发布时间】: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


    【解决方案1】:

    所以我认为这只是算法中 sklearn 的实现。该算法在上一篇文章的大约一个小时内完成运行,它显然比 n_jobs=1 版本运行得更快。我再次运行它,它显示所有内核都在正常工作,所以我相信它正在“逐渐减少”,可以这么说,并完成了算法的计算量大的部分。 . .

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-06-26
      • 2017-08-09
      • 2019-04-11
      • 2017-05-01
      • 2020-08-23
      • 2017-02-19
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多