cuda out of memory

问题

在推理时爆显存

做过的尝试,本案例无效

1,降低batch_size
2,推理时,output = model(x), 将output移到cpu再用它算metrics
3,本案例是目标检测,本来是将(b,3,S,S,6) 的target 放入cuda中和在cuda中的output算metrics的,做过的尝试是,只将有object的target放入cuda

最终解决方法

找到了问题的原因,在推理执行前,我没有with torch.no_grad(),导致显存占用过大,就爆了。with 会执行清理操作,释放资源。torch.no_grad() 会将tensor的requires_grad设为False,表示不需要梯度。

with torch.no_grad():
	out = model(x)

你可能感兴趣的:(项目遇到的问题,深度学习,人工智能,机器学习)