在训练 YoloV8 模型时,出现错误:
torch.cuda.OutOfMemoryError:CUDA 内存不足。尝试分配 24.00 MiB。 GPU 0 的总容量为 10.91 GiB,其中 6.94 MiB 是免费的。包括非PyTorch内存,该进程有10.83 GiB内存 正在使用。所分配的内存中有 10.51 GiB 由 PyTorch 分配,并且 39.52 MiB 由 PyTorch 保留但未分配。如果保留但未分配的内存很大,请尝试设置 max_split_size_mb 以避免 碎片化。请参阅内存管理和 PYTORCH_CUDA_ALLOC_CONF
这种情况发生在 Ubuntu 22.04 LTS、Python 3.11.5、pytorch 2.1.0、ultralytics 8.0.203、batch size=1、GPU NVIDIA 1080 Ti (11 GBytes) 下。
如果我在同一台机器上的 CPU 上运行模型,它就能工作(当然,速度很慢)。在 Windows 10 和 1650 GPU (4 GB) 下,它运行良好。 你遇到过这样的问题吗?有线索吗?
我最初遇到了同样的问题,但我最终能够通过在
cache=False
方法调用中设置 train()
来修复它。
试试这个:
model = YOLO('yolov8x.pt')
results = model.train(
data='dataset.yaml',
epochs=250,
imgsz=640,
batch=-1,
device=0,
cache=False # cache=False is important!
)