0


Ubuntu释放缓存/内存和显存

前言

深度学习训练模型时,总是出现显存和内存爆满的现象,导致训练中断,这里总结几个好用的方法:

  1. 代码添加指令
  2. 手动释放内存/缓存
  3. 自动定时释放内存/缓存
  4. 代码释放显存(torch)

1. 代码添加指令

代码中存在一些临时变量或者缓存,使用del进行删除,del ***是python删除变量的一种方式,可以尽可能减少不必要的临时变量。
只需在运行代码末尾加入:

del***gc.collect()#内存回收,释放,代码开头记得import gc

2. 手动释放内存/缓存:

进入终端,写如下任一指令即可:

echo 1 > /proc/sys/vm/drop_caches

echo 2 > /proc/sys/vm/drop_caches

echo 3 > /proc/sys/vm/drop_caches

用free -h检查是否成功清除缓存。


3. 自动定时释放内存/缓存:

注:这个是我比较推荐的,建议在root权限下去做:

在自定义的一个路径下(我的是/home/xzy/)建立一个freex.h文件:

vim freex.sh

在这里插入图片描述
然后写入如下指令(输入i进行编辑),并保存退出(ESC + : + w + q):

sync;echo 1 > /proc/sys/vm/drop_caches
 
sync;echo 2 > /proc/sys/vm/drop_caches
 
sync;echo 3 > /proc/sys/vm/drop_caches
 
swapoff -a && swapon -a

赋权:

chmod 777 freex.sh

设置定时:

crontab -e

但是第一次进入可能会出现这样的情况:

root@shige-System-Product-Name:/home/xzy#  crontab -e
no crontab for root -using an empty one

Select an editor.  To change later, run 'select-editor'.
  1./bin/nano        <---- easiest
  2./usr/bin/vim.basic
  3./usr/bin/vim.tiny
  4./usr/bin/emacs25
  5./bin/ed
Choose 1-5 [1]: 

选择编辑器,我选的vim.basic,也就是输入2,回车:

Choose 1-5 [1]: 2
crontab: installing new crontab

再次进入:

crontab -e

输入以下内容,并保存退出(5分钟自动调用一次):

*/05 ****/home/xzy/freex.sh

如图:

在这里插入图片描述

查看状态和启动:

service cron status
service cron start

注释:
service cron start # 开启服务
service cron stop # 关闭服务
service cron reload # 重新载入配置
service cron restart # 重启服务

在这里插入图片描述

就是有个小疑问,就是图中存在一个:(CRON) info (No MTA installed, discarding output)。
不知道是个啥,不过不影响功能,有知道的可以评论区指导下哈,我搜了一些去除这个问题的博客,感兴趣的可以参考:
博客1
博客2
博客3
Ok!
完成,亲测有效!!!


4. 代码释放显存(torch):

如果显存资源比较紧缺,可以在每个epoch开始时释放下不用的显存资源:

torch.cuda.empty_cache()
标签: ubuntu 缓存 linux

本文转载自: https://blog.csdn.net/Ayu147258/article/details/129857191
版权归原作者 習澤宇 所有, 如有侵权,请联系我们删除。

“Ubuntu释放缓存/内存和显存”的评论:

还没有评论