使用GPU训练yolo_v2报错:RuntimeError: CUDA out of memory. Tried to allocate XXX MiB

报错内容:
RuntimeError: CUDA out of memory. Tried to allocate 200.00 MiB (GPU 0; 8.00 GiB total capacity; 5.96 GiB already allocated; 0 bytes free; 6.18 GiB reserved in total by PyTorch) If reserved memory is >> allocated memory try setting max_split_size_mb to avoid fragmentation. See documentation for Memory Management and PYTORCH_CUDA_ALLOC_CONF

这个报错的意思就是:
运行时错误:CUDA内存不足。尝试分配200.00个MiB(GPU 0;8.00 GiB总容量;5.96 GiB已分配;0字节空闲;PyTorch总共保留6.18 GiB)如果保留内存>>已分配内存,请尝试设置最大拆分大小以避免碎片。

错误原因:
显卡内存不够,因为显卡内存不够大的话,当batch_size过大,那么处理的数据量就过大,训练时模型的所有参数都会参与计算,数据内存就会溢出,显卡内存就不够用了。

解决办法:
训练时候,将batch_size 改小点,例如:
python train.py --cuda --batch_size 64 --num_workers 0
改为:
python train.py --cuda --batch_size 2 --num_workers 0

你可能感兴趣的:(torch,深度学习)