如果在python内调用pytorch有可能显存和GPU占用不会被自动释放,此时需要加入如下代码

torch.cuda.empty_cache()

我们来看一下官方文档的说明

Releases all unoccupied cached memory currently held by the caching allocator so that those can be used in other GPU application and visible in nvidia-smi.

Note

empty_cache() doesn’t increase the amount of GPU memory available for PyTorch. See Memory management for more details about GPU memory management.


此外还可以使用

memory_allocated()max_memory_allocated()

观察显存占用,并使用

memory_cached()和 max_memory_cached()

观察由缓存分配器管理的内存。