我正在尝试制作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内存就不再需要下一个图像了
那么有可能释放出宝贵的内存,还是有更好的解决方案?