这不是一个真正的问题,但我想了解:
- 在 Win7 4 核 8 GB 系统上从 Anaconda 发行版运行 sklearn
- 在 200.000 个样本*200 值表上拟合 KMeans 模型。
- 使用 n-jobs = -1 运行:(将
if __name__ == '__main__':
行添加到我的脚本后)我看到脚本启动了 4 个进程,每个进程有 10 个线程。每个进程使用大约 25% 的 CPU(总计:100%)。似乎按预期工作 - 以 n-jobs = 1 运行:停留在单个进程上(不足为奇),有 20 个线程,并且还使用 100% 的 CPU。
我的问题:如果库仍然使用所有内核,那么使用 n-jobs(和 joblib)有什么意义?我错过了什么吗?它是特定于 Windows 的行为吗?