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

网站 搭建 亚洲服务器新网站多久会被百度收录

网站 搭建 亚洲服务器,新网站多久会被百度收录,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.khdw.cn/news/13309.html

相关文章:

  • 苏州个人网站制作公司优化网站标题是什么意思
  • 免费的wordpress模板下载地址快速seo整站优化排行
  • wordpress for sae 4.0关键词优化快排
  • h5建站是什么seo手机优化软件哪个好用
  • 5118站长工具必应搜索
  • 怎么自己做网站挂到百度上绍兴seo排名
  • 手机网站备案指数计算器
  • 延安网站建设电话咨询中山疫情最新消息
  • 网站管理系统开发的百度在线搜索
  • 品牌网站建设策微信营销方式
  • 郑州手机网站开发济南seo整站优化厂家
  • 可做百科资料参考的网站免费外国网站浏览器
  • 网站建设合同的要素多地优化完善疫情防控措施
  • 卫生局网站建设方案网络销售这个工作到底怎么样
  • 在哪里建立个人网站长沙网络推广公司
  • 网易网站建设的目的长沙网站seo报价
  • 如何在好医生网站做二类学分seo的内容怎么优化
  • 杭州网站建设 网站设计网络软文推广网站
  • 长沙网站开发设计网络营销培训
  • 临近做网站站长之家seo查询
  • 广州网站建设新科分公司青岛百度网站排名优化
  • 南通网站制作公司灰色行业seo
  • 教你做面膜v官方网站网络推广方式有哪几种
  • 做网站需要公司备案seo网站外链工具
  • wordpress自定义主题怎么拷过去淘宝关键词排名优化技巧
  • 安徽做网站的公司如何软件网站优化公司
  • wordpress pre插件seo关键词排名软件
  • 怎么样做网站代理商手机优化软件
  • 贵阳网络公司网站建设品牌推广计划书怎么写
  • 做网站的分工拼多多seo搜索优化