软引用(Soft Reference)的主要特点是具有较强的引用功能。只有当内存不够的时候才回收这类内存,因此在内存足够的时候,他们通常不被回收。另外,这些引用对象还能保证在Java 抛出OutOfMemory异常之前,被设置为null。他可以用于实现一些常用资源的缓存,实现Cache的功能,保证大限度的使用内存而不引起OutOfMemory异常。
下面是软引用的实现代码:
import java.lang.ref.SoftReference;
public class sof
跑模型时出现RuntimeError: CUDA out of memory.错误 查阅了许多相关内容,原因是:GPU显存内存不够
简单总结一下解决方法:
将batch_size改小。
取torch变量标量值时使用item()属性。
可以在测试阶段添加如下代码:
with torch.no_grad(): # 停止自动反向计算梯度
参考:
https://wisdomai.xyz/tool/pytorch/archives/2301
https://ptorch.com/news/160