问题1:训练到某个epoch或batch突然停住或报错
可能原因如下:
前一进程还未处理完,又进入下一个导致互锁,在一个Epoch完了后,或者每次获取一个batch数据后停顿一下: time.sleep(0.003)
内存问题,使用开关:pin_memory=True/False
多进程导致互锁问题,减少进程数,或直接使用一个:num_workers=0/1
使用其他DataLoader的问题,改为: from torch.utils.data.dataloader import DataLoader
内存大小不够的问题:writing 8192 to /proc/sys/kernel/shmmni
如果脚本中同时使用了OpenCV,可能是OpenCV与Pytorch互锁的问题。
关闭OpenCV的多线程:
cv2.setNumThreads(0)
cv2.ocl.setUseOpenCL(False)
是否存在打开文件未关闭的问题:[openfile].close()
问题2:为什么ubuntu那么容易崩盘
实际情况并不是Ubuntu容易出现内部错误,而是一旦程序崩溃过一次,就会生成一个.crash文件,
记录着崩溃信息,只要你不去处理,每次开机都会提示你有错误。
也就是说:报错并不一定是出现了什么错误,而是曾经出现过错误,而你没有处理。
解决的办法也很简单:崩溃文件位于/var/crash/目录下,到该目录下查看崩溃文件,
如果不是什么大问题(通常都没什么大问题),删除该目录下的崩溃文件,之后就不会再报错误了。
深度学习项目训练时突然卡住或崩盘问题
最新推荐文章于 2024-11-25 21:20:24 发布