在grad-cam过程中,CUDA内存不足

时间:2019-12-25 05:19:02

标签: image-processing memory deep-learning gpu

我正在尝试制作grad-cam图像蒙版。并尝试将其附加到
在每张图像之后,我将图像放入masks数组列表中。

def make_masks(masks, trainloader,cam_dict):
    print('start->', masks)
    for idx, (img, target) in enumerate(trainloader):

        torch_img, normed_torch_img = normalize_image(img.cuda())

        for gradcam, gradcam_pp in cam_dict.values():
            mask, _ = gradcam(normed_torch_img)
            mask = mask.squeeze()
            heatmap, result = visualize_cam(mask, torch_img)
            img = img.squeeze()
            img = (img).permute(1, 2, 0)
            masks.append(mask)
        if idx % 10000 == 0: print(idx, '/', trainloader.dataset.data.shape[0], '%')
    return masks

我有60000张图像
我得到40000张图像后

RuntimeError: CUDA out of memory. Tried to allocate 20.00 MiB (GPU 0; 11.91 GiB total capacity; 8.16 GiB already allocated; 23.00 MiB free; 376.36 MiB cached)

我正在pycharm上运行代码
我猜在添加一个图像后,GPU内存就不再需要下一个图像了
那么有可能释放出宝贵的内存,还是有更好的解决方案?

0 个答案:

没有答案