Caching 永久清除CUDA内存

Caching 永久清除CUDA内存,caching,memory,pytorch,Caching,Memory,Pytorch,这类似于 在执行了所有的import命令后,我一直将torch.CUDA.empty_cache()用作我的代码的第一行,但我还是不断地将CUDA从内存中取出错误。而且,这个错误是非常随机的,我在其他论坛上看到很多人面临这个错误。难道没有一个永久的解决办法吗 我也使用torch.no_grad()进行评估。但这并不重要,因为我的代码至少应该开始训练。但事实并非如此。很明显,我已经多次重新启动内核,并像前面提到的那样清除了缓存。理想情况下,GPU内存中存储的任何张量都应该通过此过程清除 错误:

这类似于

在执行了所有的
import
命令后,我一直将
torch.CUDA.empty_cache()
用作我的代码的第一行,但我还是不断地将CUDA从内存中取出错误。而且,这个错误是非常随机的,我在其他论坛上看到很多人面临这个错误。难道没有一个永久的解决办法吗

我也使用torch.no_grad()进行评估。但这并不重要,因为我的代码至少应该开始训练。但事实并非如此。很明显,我已经多次重新启动内核,并像前面提到的那样清除了缓存。理想情况下,GPU内存中存储的任何张量都应该通过此过程清除


错误:

RuntimeError: CUDA out of memory. Tried to allocate 144.00 MiB (GPU 0; 11.00 GiB total capacity; 3.99 GiB already allocated; 93.40 MiB free; 4.04 GiB reserved in total by PyTorch)

在多次尝试重新启动内核并清除缓存之后,我在培训开始之前插入了
print(torch.cuda.is_available())
。它神奇地工作了!虽然我看不出背后有什么逻辑