【发布时间】:2014-01-31 21:35:04
【问题描述】:
当并行作业卡在 Scikit-Learn 中时,诊断正在发生的事情的正确方法是什么?
具体来说,我已经完成了几项工作(htop 显示没有 CPU 活动),但 python 停止响应。按Ctrl+c 不会退出(虽然它确实注册了一个KeyboardInterrupt,但它不会杀死python 进程),并且必须从shell 中杀死该进程。总内存使用量接近机器的容量,但我没有得到任何明确的错误,即存在 MemoryError。
RandomForestRegressor 和 cross_validation.cross_val_score 在 Ubuntu/Debian 上的 0.14 和 master 下都发生了这种情况。
我怀疑这是内存问题,因为在具有更多内存的机器上,作业似乎可以顺利完成。
【问题讨论】:
-
scikit-learn 0.14.1 及更早版本并不总是检测随机森林中的内存不足情况;上周末刚刚修好。您可以尝试当前的
master版本,看看是否能收到更好的错误消息。 -
@larsmans 你能给我指出记录修复和预期行为的票吗?我有几天前的master版本,但也许我会再试一次。
-
@larsmans 只是随机森林的问题吗? GridSearchCV 和 RandomForest 曾经发生在我身上,但在网格搜索级别并行化(RandomForest 以 n_jobs=1 运行)
-
这是一个特定于决策树和所有基于它们的模型的问题。
标签: python parallel-processing scikit-learn