【问题标题】:Scikit Learn - Diagnosing when parallel jobs get stuckScikit Learn - 诊断并行作业何时卡住
【发布时间】:2014-01-31 21:35:04
【问题描述】:

当并行作业卡在 Scikit-Learn 中时,诊断正在发生的事情的正确方法是什么?

具体来说,我已经完成了几项工作(htop 显示没有 CPU 活动),但 python 停止响应。按Ctrl+c 不会退出(虽然它确实注册了一个KeyboardInterrupt,但它不会杀死python 进程),并且必须从shell 中杀死该进程。总内存使用量接近机器的容量,但我没有得到任何明确的错误,即存在 MemoryError。

RandomForestRegressorcross_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


【解决方案1】:

我无法明确找到此问题的原因,但当我增加可用内存量时,它就停止了。因此,似乎有理由得出结论,其中一个子进程遇到了 MemoryError 并且刚刚死亡。

【讨论】:

    猜你喜欢
    • 2016-01-07
    • 2017-05-10
    • 1970-01-01
    • 2022-11-11
    • 2017-07-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多