pytorch程序异常后删除占用的显存操作
1-删除模型变量
del model_define
2-清空CUDA cache
torch.cuda.empty_cache()
3-步骤2(异步)需要一定时间,设置时延
time.sleep(5)
完整代码如下:
del styler
torch.cuda.empty_cache()
time.sleep(5)
以上这篇pytorch程序异常后删除占用的显存操作就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持我们。
时间: 2020-01-12
Pytorch 训练时有时候会因为加载的东西过多而爆显存,有些时候这种情况还可以使用cuda的清理技术进行修整,当然如果模型实在太大,那也没办法. 使用torch.cuda.empty_cache()删除一些不需要的变量代码示例如下: try: output = model(input) except RuntimeError as exception: if "out of memory" in str(exception): print("WARNING: out of
PyTorch 随机数生成占用 CPU 过高的问题 今天在使用 pytorch 的过程中,发现 CPU 占用率过高.经过检查,发现是因为先在 CPU 中生成了随机数,然后再调用.to(device)传到 GPU,这样导致效率变得很低,并且CPU 和 GPU 都被消耗. 查阅PyTorch文档后发现,torch.randn(shape, out)可以直接在GPU中生成随机数,只要shape是tensor.cuda.Tensor类型即可.这样,就可以避免在 CPU 中生成过大的矩阵,而 shape
如果在python内调用pytorch有可能显存和GPU