当前位置: 首页 > news >正文

网站备案 名称 不一致seo交互论坛

网站备案 名称 不一致,seo交互论坛,男女做暖昩视频试看网站,ui展示 wordpress解决CUDA out of memory. 项目场景原因分析&解决方案① GPU空间没有释放解决一 换GPU解决二 杀掉进程 ② 更换GPU后仍未解决法一:调小batch_size法二:定时清内存法三(常用方法):设置测试&验证不计算参数梯度法…

解决CUDA out of memory.

  • 项目场景
  • 原因分析&解决方案
    • ① GPU空间没有释放
      • 解决一 换GPU
      • 解决二 杀掉进程
    • ② 更换GPU后仍未解决
      • 法一:调小batch_size
      • 法二:定时清内存
      • 法三(常用方法):设置测试&验证不计算参数梯度
      • 法四(使用的别人的代码时):将"pin_memory": True改为False


请添加图片描述

🌈你好呀!我是 是Yu欸
🌌 2024每日百字篆刻时光,感谢你的陪伴与支持 ~
🚀 欢迎一起踏上探险之旅,挖掘无限可能,共同成长!

前些天发现了一个人工智能学习网站,内容深入浅出、易于理解。如果对人工智能感兴趣,不妨点击查看。

如果你喜欢我的文章,欢迎三连给我鼓励和支持:👍点赞 📁 关注 💬评论,我会给大家带来更多有用有趣的文章。
分享「《PYTHON自然语言处理(中文版)》.pdf」,点击链接即可保存。
链接:https://pan.quark.cn/s/a2cfaaaf586a
提取码:t3pK

项目场景

跑bert-seq2seq的代码时,出现报错

RuntimeError: CUDA out of memory. Tried to allocate 870.00 MiB (GPU 2; 23.70 GiB total capacity; 19.18 GiB already allocated; 323.81 MiB free; 21.70 GiB reserved in total by PyTorch) If reserved memory is >> allocated memory try setting max_split_size_mb to avoid fragmentation.
See documentation for Memory Management and PYTORCH_CUDA_ALLOC_CONF

运行时错误:CUDA内存不足。试图分配870.00 MiB (GPU 2;23.70 GiB总容量;19.18 GiB已经分配;323.81 MiB空闲;如果分配的内存是>,>分配的内存尝试设置max_split_size_mb以避免碎片。请参阅文档了解内存管理和PYTORCH_CUDA_ALLOC_CONF

在这里插入图片描述

参考:
https://blog.csdn.net/qq_37555071/article/details/108346569
https://blog.csdn.net/xiyou__/article/details/118529350


原因分析&解决方案

① GPU空间没有释放

可能为PyTorch占用的GPU空间没有释放,导致下次运行时,出现CUDA out of memory。
命令行输入 nvidia-smi,显示GPU的使用情况,以及占用GPU的应用程序

nvidia-smi

在这里插入图片描述
此时发现仅GPU:0有4778MIB的占用
有两种解决方案

解决一 换GPU

将代码中的默认0,换成指定2

# device = "cuda" if torch.cuda.is_available() else 'cpu'
device = torch.device('cuda:2')

解决二 杀掉进程

windows系统输入taskkill -PID 进程号 -F 结束占用的进程,比如

taskkill -PID 7072 -F

linux系统输入kill 进程号 结束占用的进程,比如

kill 7072

在这里插入图片描述

然后再次输入 nvidia-smi 查看GPU使用情况


② 更换GPU后仍未解决

法一:调小batch_size

设到4基本上能解决问题,如果还不行,该方法pass。

法二:定时清内存

在报错处、代码关键节点(一个epoch跑完…)插入以下代码(目的是定时清内存):

import torch, gcgc.collect()
torch.cuda.empty_cache()

法三(常用方法):设置测试&验证不计算参数梯度

在测试阶段和验证阶段前插入代码 with torch.no_grad()(目的是该段程序不计算参数梯度),如下:

def test(model,dataloader):model.eval()with torch.no_grad(): ###插在此处for batch in tqdm(dataloader):……

法四(使用的别人的代码时):将"pin_memory": True改为False

如果怎么修改,都会出现题中bug,甚至跑了几轮之后突然出现 cuda out of
memory,查看代码中是否存在一下代码(通常出现在main.py 或者数据加载的py文件中:

kwargs = {'num_workers': 6, 'pin_memory': True} if torch.cuda.is_available() else {}

将"pin_memory": True改为False,具体原因原博:

pin_memory就是锁页内存,创建DataLoader时,设置pin_memory=True,则意味着生成的Tensor数据最开始是属于内存中的锁页内存,这样将内存的Tensor转义到GPU的显存就会更快一些。
主机中的内存,有两种存在方式,一是锁页,二是不锁页,锁页内存存放的内容在任何情况下都不会与主机的虚拟内存进行交换(注:虚拟内存就是硬盘),而不锁页内存在主机内存不足时,数据会存放在虚拟内存中。显卡中的显存全部是锁页内存,当计算机的内存充足的时候,可以设置pin_memory=True。当系统卡住,或者交换内存使用过多的时候,设置pin_memory=False。因为pin_memory与电脑硬件性能有关,pytorch开发者不能确保每一个炼丹玩家都有高端设备,因此pin_memory默认为False。

http://www.yidumall.com/news/103553.html

相关文章:

  • 2017做那个网站能致富外贸seo优化
  • wordpress实现专题金华seo
  • 做网站建设哪家好如何创建一个app平台
  • 电子网站建设免费个人网站模板
  • sem优化是什么梁水才seo优化专家
  • 百度seo霸屏软件关键词首页优化
  • 申请域名后怎么做网站数据分析师培训机构推荐
  • 网上订餐系统dreamwaver网站设计网站点击软件排名
  • 工作组赴哈尔滨seo如何提高排名
  • 做h5哪个网站好查询网站备案信息
  • 做视频网站可以自学吗台州网站建设平台
  • 最常用的网页制作工具衡水seo优化
  • 网站运营代理电商网站建设步骤
  • 组服务器做网站重庆seo俱乐部联系方式
  • 学校网站手机站的建设方案今日头条新闻最新事件
  • 网站编辑做图片用什么uv推广平台
  • 做网站的公司叫什么名字百度店铺免费入驻
  • 微博网站建设第三方推广平台
  • 怎么买域名自己做网站公司网站推广运营
  • 山东网站空间网络营销广告
  • 福田网站建设电话查询网站相关网址
  • 做网站用什么软件编辑推广app大全
  • 渗透wordpress东莞seo搜索
  • 大庆 网站制作关键词点击优化工具
  • 梁山网站建设网站建站在线制作
  • 途牛旅游网站建设目的企业qq一年多少费用
  • pageadmin cms官网seo培训学什么
  • 自己做网站如何销售武汉大学人民医院院长
  • 车载测试培训机构疫情优化调整
  • 政府网站建设比较好的推广网站都有哪些