最近在跑一个图像分类的小项目,模型就三层卷积加全连接,batch size设的32,输入图片也才64x64。刚开始训练时显存占用大概2G左右,但跑了几百个batch之后,显存直接飙到快6G,差点爆掉。我确认没有在循环里保留中间变量,梯度也用了zero_grad()。难道是因为DataLoader的num_workers设了4?或者torch.no_grad()只在验证时用了,训练时没加?求大佬指点一下,这种显存逐渐增长一般是什么坑,怎么定位和解决?提前谢过!
最近在跑一个图像分类的小项目,模型就三层卷积加全连接,batch size设的32,输入图片也才64x64。刚开始训练时显存占用大概2G左右,但跑了几百个batch之后,显存直接飙到快6G,差点爆掉。我确认没有在循环里保留中间变量,梯度也用了zero_grad()。难道是因为DataLoader的num_workers设了4?或者torch.no_grad()只在验证时用了,训练时没加?求大佬指点一下,这种显存逐渐增长一般是什么坑,怎么定位和解决?提前谢过!
暂无回复,快来抢沙发吧