不了解cuda资源,并且内存不足

jgwigjjp  于 2021-08-20  发布在  Java
关注(0)|答案(1)|浏览(586)

我想我正在运行tensor pytorch。
我是python新手,尝试用它来试验卷积神经网络和处理更大的图像。但我一直遇到这个错误,即使我要求更小的图像输出。我刚注册了colab pro。虽然它肯定更快,但它仍然会在cuda中出错。如果我知道怎么做,我会重新分配内存,但我不知道。是否有其他方式访问/管理gpu内存??
文件“/usr/local/lib/python3.7/dist packages/torch/autograd.backward(self、gradient、retain\u graph、create\u graph、inputs=inputs)中的255行“/usr/local/lib/python3.7/dist packages/torch/autograd/init.py”,第149行,backward allow\u unreachable=true,累计_grad=true)#允许_无法访问标志运行时错误:cuda内存不足。尝试分配114.00 mib(gpu 0;总容量15.78吉布;13.27已分配的gib;4.75无mib;14.43 pytorch总共保留gib)检测到vgg-19体系结构已成功加载模型/vgg19-d01eb7cb.pth conv1_1:64 3 3 conv1_2:64 64 64 3 3 conv2_1:128 64 3 3 conv2_2:

os8fio9y

os8fio9y1#

我在下面展示了在pytorch中管理gpu内存的方法,但通常这些方法并不是处理cuda错误的建议方法。
出现此错误的原因与输出的大小无关,而是与输入的大小有关。您可能需要在网络中使用过大的图像 transforms.Resize() 或者你的批量太大了,所以你需要一个巨大的parralel计算,因此需要在dataloader中降低这个数字。
从gpu内存中删除Tensor的方法可以使用

a = torch.tensor(1)
del a

# Though not suggested and not rlly needed to be called explicitly

torch.cuda.empty_cache()

将Tensor分配给cuda内存的方法是使用

a = torch.tensor(1)
a = a.cuda()

# OR

device = torch.device("cuda")
a = a.to(device)

萨尔塔克贾因

相关问题