针对神经网络训练过程中显存爆炸的问题
在神经网络中,经常受到硬件的限制而导致在训练过程中out of memory,所以在训练过程中适当降低显存是必要的,方法是在一次训练结束后删除无用的数据,并用torch.cuda.empty_cache释放显存空间。
例:
del a,
torch.cuda.empty_cache
但是相对于网络的庞大参数,此方法只能降低有限的显存空间。经过试验,加了此代码之后显存只减少2M(在batch_size(4,16)之下测试,总10789降至10787);删除了concat之后的数据,显存降至10775。
torch.cuda.empty_cache指令的作用是自动回收之后用不到的显存。