在对 ultralytics 的YOLOv8模型进行训练时出现了"OSError: [WinError 1455] 页面文件太小,无法完成操作…"问题,导致模型训练失败,尝试了三种解决方法后最终解决
第一种:分页内存太小
参考文章链接:https://blog.csdn.net/weixin_45647721/article/details/124856994
按照 电脑右键属性->高级系统设置->高级->设置->高级->程序->更改->取消“自动管理…”前的勾->自定义大小(定义初始大小和最大值)(此处根据实际可用空间进行设置,尽可能大)->点击“设置”->确定->重启
进行修改后由于电脑内存还是不够,还是会出现同那样的问题
第二种:修改epoch
按照 https://docs.ultralytics.com/modes/train/#key-features-of-train-mode
的教程,相应代码为
from ultralytics import YOLO
# Load a model
model = YOLO("yolov8n.yaml") # build a new model from YAML
# model = YOLO("yolov8n.pt") # load a pretrained model (recommended for training)
# model = YOLO("yolov8n.yaml").load("yolov8n.pt") # build from YAML and transfer weights
# Train the model
results = model.train(data="coco8.yaml", epochs=100, imgsz=640)
默认的epoch 为16, 将epoch改为2后还是不行,改为1也不行。
# Train the model
results = model.train(data="coco8.yaml", epochs=100, imgsz=640, batch=2)
第三种:修改workers
训练命令默认的workers为8
将其改为0,epoch=16,就能正常训练了。
后两种方法的链接:https://developer.aliyun.com/article/1142444。
训练时想用多个GPU进行训练
用多个GPU进行训练的时候,提示出错,用torch进行查看
print(torch.cuda.device_count())
发现只有一个GPU可用,但是通过任务管理器查看有两个GPU
通过检查发现电脑上的两个GPU一个是集显一个是独显,集显不会显示,nvidia-smi显示的也是独显,所以电脑就只有一个GPU可用于训练。