1 问题描述
在验证模式下运行代码的时候,出现这样的错误:
Process finished with exit code 137 (interrupted by signal 9: SIGKILL)
根据网上的资料,这应该是内存溢出引起的问题;
2 引发原因
2.1 验证样本粒子数设置过大
当验证样本粒子数设置的过大时,需要大量的内存来保存检测框的结果,从而可能引发内存溢出的问题;
调试方案:减小采样粒子数
2.2 num_workers
设置导致进程占用过多内存较多
由于在我们的代码中,会使用train和val两个loader来载入数据,如果都开启多进程num_workers
设置的话,可能会导致进程数较多而申请过多内存,最终导致超过了Ubunt系统的内存限制,从而引发SIGKILL
;
解决方案:将val-data-loader的num_workers
设置为0。
2.3 可以用优先队列来限制列表的数量
- 首先需要看看为什么会出现这个问题;
- 然后尝试使用优先队列来解决;
版权声明:本文为CSDN博主「songyuc」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/songyuc/article/details/121272417
暂无评论