【问题描述】
在Yolov8训练时,训练中正常,但每轮训练中做验证时报错Cuda out of memory:
【解决方案】
往下翻有具体的报错信息:
可知是显存爆了。在没有条件更换训练显卡的情况下,笔者尝试增加with torch.no_grad(),
阻止模型验证时,仍计算梯度,导致模型显存溢出。但是这样仍无法解决,甚至验证无法进行【可能这里笔者加的地方有问题,如果有大神希望指导一下!】
因此,本着解决不了问题就解决提出问题的人的原则,直接在训练中关闭验证,等训练结束之后再单独验证。
在原来的训练指令中加上val=FALSE,原来的训练指令默认val=TRUE:
yolo train data=data.yaml model=/data/ctc/yolov8/ultralytics/cfg/models/v8/yolov8x-obb-DWR.yaml epochs=50 imgsz=640 batch=16 workers=8 device='0,1,2,3'
更改后如下:
yolo train data=data.yaml model=/data/ctc/yolov8/ultralytics/cfg/models/v8/yolov8x-obb-DWR.yaml epochs=50 imgsz=640 batch=16 workers=8 device='0,1,2,3' val=FALSE
于是训练过程得以正常进行,但是不在每轮训练中进行验证: