RuntimeError: CUDA out of memory. Tried to allocate 3.47GiB (GPU 0; 8 GiB total capacity;

使用Pytorch训练模型出现RuntimeError: CUDA out of memory  Tried to allocate 3.47GiB (GPU 0; 8 GiB total capacity; ....
训练: 由于GPU显存资源有限,训练输入的batchsize不能过大,过大会导致out of memory错误。 

方案一: 将batch_size减小

                       显卡RTX2080,8G内存,发现将batch_size从16--->8-->6 都出现各种内存不足错误,最后改成4才正常。然而针对yolo5x模型训练一个epoch需要大约两个多小时,yolo5x6就更慢了接近3小时,这太慢了,无法忍受。

  看上去也没有发挥计算的最大性能。

方案二:调整数据加载线程数

           (--workers  即 maximum number of dataloader worker

   因为我的电脑CPU是12核心线程,所以我为了提速,用了全部12线程,这在mxnet框架训练时非常有效,能明显提高训练速度;然而在pytorch训练时,发现很容易出现OOM错误。

  将batch_size从4改为8,worker数据加载线程数从12改为8,终于顺利了!!而且速度明显提高一倍,一个epoch大约70分钟。

     Epoch   gpu_mem       box       obj       cls           total        targets  img_size

     0/299     5.66G    0.0527   0.05836   0.05643    0.1675        46       640:  57%|█████▋    | 8494/14897 [39:47<29:21,  3.63it/s]


 

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 7
    评论
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值