一. 前言
Pytorch学习小白,跑大佬们的源代码时难免遇到“意想不到”的问题,有过心酸崩溃路,但感恩各位大佬文章的启发帮助,一路摸爬滚打,有了起色。现整理自己学习过程中遇到的问题,方便你我他参考~
二. 问题 + 办法/解决思路
问题1. pytorch训练时gpu显存突增,崩溃,报错“out of memory”
解决思路: 对占用gpu显存的变量“后续若不再用,则用完即删”。
借鉴文章:【问题探究】如何解决pytorch训练时的显存占用递增(导致out of memory)
备注:占用gpu显存的变量的特点–“xxx.cuda()”
“用完即删”用到的“两把斧头”:
(1)del 变量名
(2)torch.cuda.empty_cache()
举例:
img = img.cuda()
segm = segm.cuda()
outputs = model(img)
# 变量img,segm和outputs均为占用gpu显存的变量
........ # 有关img,segm,outputs的代码
del img, segm, outputs
torch.cuda.empty_cache()