yolov8训练中出现问题
AMP: checks failed ❌. Anomalies were detected with AMP on your system that may lead to NaN losses or zero-mAP results, so AMP will be disabled during training.
torch.cuda.OutOfMemoryError: CUDA out of memory. Tried to allocate 74.00 MiB. GPU
即GPU 显存不足
解决办法:
-
降低图像尺寸:若你当前设置的图像尺寸是 1024x1024 像素。尝试减小
imgsz
参数的值,例如减小到 512 或 640 像素,这样可以减少每次迭代所需的显存。 -
减少批量大小:批量大小(
batch
参数)影响每次迭代中处理的图像数量。减小批量大小可以减少每次迭代所需的显存。 -
使用更多的数据加载器工作进程:通过增加
workers
参数的值,可以提高数据加载的效率,但这也可能增加内存的使用。如果你的 CPU 资源充足,可以尝试增加这个值。 -
关闭自动混合精度(AMP):错误信息中提到 AMP 检测失败,这可能影响训练的稳定性。你可以尝试手动关闭 AMP,即使用命令行参数
--amp False
。 -
优化数据加载:确保数据加载和预处理步骤尽可能高效,避免不必要的内存使用。
-
清理显存:在训练前关闭不必要的应用程序和进程,确保 GPU 显存尽可能多地被释放。
-
使用具有更多显存的 GPU:如果可能的话,尝试使用具有更多显存的 GPU,例如从 GTX 1080 Ti 切换到更高级的 GPU。
-
检查代码和模型:有时候,显存不足可能是由于代码中的内存泄漏或模型中的某些操作导致的。检查代码和模型定义,确保没有不必要的显存占用。
-
分阶段训练:如果模型非常大,可以考虑分阶段训练。先训练模型的一部分,然后逐步增加训练的复杂性。
-
使用显存监控工具:使用如
nvidia-smi
或TensorBoard
等工具监控显存使用情况,以便更好地理解显存不足的原因。