【问题标题】:GPU Memoryerror while using pytorch with empty GPU使用空 GPU 的 pytorch 时出现 GPU 内存错误
【发布时间】:2020-11-08 23:36:35
【问题描述】:

我正在使用具有 3 个 GPU 的硬件设置,并希望使用以下代码训练我的模型:

with torch.cuda.device(2):
    train_load, val_load = SRD.load_sr_st_dataset(route_img,route_dpt)
    #print(train_load.dataset.__sizeof__())
    sr_stereo = SRD.sr_stereo(max_d=200)
    sr_stereo.cuda()
    optimizer = torch.optim.Adam(sr_stereo.parameters(),lr = 0.001)
    criterion = nn.MSELoss(reduction='sum')
    scheduler = torch.optim.lr_scheduler.MultiStepLR(optimizer,
            milestones=range(5,100,5), gamma=0.5, last_epoch=-1)
    sr_stereo.train()

    for e in range(epoch_num):
        scheduler.step()
        for sample,valid in zip(train_load,val_load):
            l10,l20,r10,r20,depth = SRD.parsedata(sample)
            l10v, l20v, r10v, r20v, depthv = SRD.parsedata(valid)
            out_train = sr_stereo(l10,l20,r10,r20)
            out_val = sr_stereo(l10v, l20v, r10v, r20v)
            optimizer.zero_grad()
            loss_train = criterion(out_train,depth)
            loss.backward()
            optimizer.step()
            scheduler.step()

由于我已经在 GPU0 和 GPU1 中训练了 2 个模型,我希望这个模型在 GPU2 上运行。

我得到了错误:

RuntimeError: CUDA out of memory. Tried to allocate 282.00 MiB (GPU 2; 31.88 GiB total capacity; 29.99 GiB already allocated; 78.81 MiB free; 30.04 GiB reserved in total by PyTorch)

有什么我想念的吗?我不明白为什么会出现错误,因为 GPU 2 有足够的内存并且没有运行任何训练。

【问题讨论】:

  • 它很清楚地告诉你内存已满。你的数据集有多大?

标签: python deep-learning memory-leaks pytorch


【解决方案1】:

在终端中使用nvidia-smi 命令来检查有多少内存可以访问。很明显,你缺乏记忆。我假设您没有足够的内存在 GPU#2 上加载模型。

【讨论】:

    猜你喜欢
    • 2023-03-10
    • 2021-02-24
    • 2020-12-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-06-22
    • 2020-05-21
    相关资源
    最近更新 更多