我正在尝试运行一项研究,使用带有默认采样器和中值修剪器的优化函数。每次跑步都会崩溃,有时在一次成功的尝试后,有时没有完成任何尝试。崩溃消息是:进程结束,退出代码137(被信号9:SIGKILL中断(
预期行为
运行研究
环境
- Optuna版本:2.0.0
- Python版本:3.8
- 操作系统:QubeOS与debian 10虚拟机
- (可选(其他库及其版本:Pytorch‘1.5.0+cpu’
错误消息、堆栈跟踪或日志
进程结束,退出代码137(被信号9:SIGKILL中断(
是什么导致了这样的错误?
一种可能的情况是,您的进程会消耗大量内存,并被操作系统的OOM杀手杀死。您可以使用像top
这样的工具来监控进程的内存消耗,并查看它是否占用了大量内存。
您还可以在控制台中运行dmesg
,并在输出中查找来自OOM杀手的消息。OOM杀手通常会在那里打印它杀死的进程。检查进程ID是否为您的进程ID。
如果进程确实被OOM杀手杀死了,那么唯一的补救措施可能是减少程序的内存消耗(或者获得更大的机器(。
您可以安全使用
gc_after_trial=True
有研究。优化(超时=300(,但我没能让它发挥作用如果您在HyperbandPruner中使用tpesampler,还可以设置超时和n_trial限制。最后,对我有效的是较低的njobs(我将其设置为-1,并倾向于将所有核心值飙升至100%,最后崩溃(。