当前位置:   article > 正文

RuntimeError: CUDA out of memory. Tried to allocate 20.00 MiB (GPU 0; 23.65 GiB total capacity; 20.5

runtimeerror: cuda out of memory. tried to allocate 20.00 mib (gpu 0; 23.70

torch遇到错误:RuntimeError: CUDA out of memory. Tried to allocate 20.00 MiB (GPU 0; 23.65 GiB total capacity; 20.53 GiB already allocated; 9.56 MiB free; 20.94 GiB reserved in total by PyTorch)

原因:应该是我使用的图数据集太大了,而且是一开始就全部怼到了cuda上,所以就内存不够了

解决方法:
参考链接

将批次迭代地发送到 CUDA,并制作小批量,不要一开始就一次将所有数据发送到 CUDA。

for e in range(epochs):
    for images, labels in train_loader:   
        if torch.cuda.is_available():
            images, labels = images.cuda(), labels.cuda()   
        # blablabla  
  • 1
  • 2
  • 3
  • 4
  • 5

另外,在evaluate或者test时候,注意使用torch.autograd.no_grad() 阻止梯度更新。

with torch.autograd.no_grad():
	# blabla
  • 1
  • 2
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/小蓝xlanll/article/detail/220639?site
推荐阅读
相关标签
  

闽ICP备14008679号