torch节省显存方法

本文最后更新于:2025年1月17日 晚上

torch节省显存方法

手动删除变量

1
2
del var
torch.cuda.empty_cache()

禁止自动梯度计算

自动梯度计算似乎还挺占显存的,不需要的情况下最好关掉

1
2
with torch.no_grad():
tensor1 = tensor2 @ tensor3

降低数据精度

修改精度时不要用tensor.float(),tensor.int()这种语法,因为不清楚具体的数据类型,例如tensor.int()可能会将数据转成torch.int32,这跟torch.float32占用的存储空间是一样大的,起不到任何效果。

相反,应该使用tensor.to()具体指定数据格式,例如tensor.to(torch.int8),tensor.to(torch.float16)

1
2
tensor1 = torch.zeros((2,2), dtype=torch.float32)	# 新建数据时,使用torch.float16,torch.int8降低精度
tensor1 = tensor1.half() # 使用torch.float16替代torch.float32

本博客所有文章除特别声明外,均采用 CC BY-SA 4.0 协议 ,转载请注明出处!