RuntimeError: CUDA out of memory. Tried to allocate 1.77 GiB?如何解决

news2024/9/24 23:33:28

🏆本文收录于「Bug调优」专栏,主要记录项目实战过程中的Bug之前因后果及提供真实有效的解决方案,希望能够助你一臂之力,帮你早日登顶实现财富自由🚀;同时,欢迎大家关注&&收藏&&订阅!持续更新中,up!up!up!!

问题描述

  mmdetection运行mask rcnn,训练模型时运行train.py出现RuntimeError: CUDA out of memory. Tried to allocate 1.77 GiB(网上的教程都是在测试时出现这个问题,我为什么训练就出现了)

如上问题有来自我自身项目开发,有的收集网站,有的来自读者,如有侵权,立马删除。

解决方案

  如下是上述问题的解决方案,仅供参考:

CUDA out of memory错误表明你的GPU在训练过程中没有足够的内存来分配给所需的张量。这通常发生在模型太大、批量大小(batch size)太高或数据批量处理不当的情况下。以下是一些解决此问题的方法:

  1. 降低批量大小

    • 减少训练时的批量大小通常可以减少内存使用。
  2. 使用更多的GPU

    • 如果你有多个GPU可用,可以尝试分布训练任务到多个GPU上。
  3. 优化数据加载

    • 确保数据加载和预处理没有占用太多内存。使用torch.utils.data.DataLoadernum_workers参数来调整数据加载的工作进程数。
  4. 模型简化

    • 如果Mask R-CNN模型太大,考虑使用一个更小的骨干网络或简化模型结构。
  5. 梯度累积

    • 如果你不能降低批量大小,可以尝试梯度累积技术。这意味着在几个小批量上执行前向传播,但不执行反向传播,直到累积了相当于原来批量大小的数据后才执行一次反向传播。
  6. 内存管理

    • 使用torch.cuda.empty_cache()来清理未使用的缓存内存,但请注意,这可能会影响性能。
  7. 混合精度训练

    • 使用混合精度训练可以减少内存使用并可能加速训练。
  8. 检查数据类型

    • 确保你没有无意中使用float64float16代替float32,因为float32通常是深度学习中内存和精度的最佳折衷。
  9. 环境检查

    • 确保你的CUDA和cuDNN环境配置正确,并且与PyTorch版本兼容。
  10. 使用ONNX

    • 尝试将模型转换为ONNX格式,并使用支持ONNX的优化后端运行模型。
  11. 模型分发

    • 对于非常大的模型,可以考虑使用模型分发技术,将模型的不同部分分布到不同的GPU上。
  12. 硬件升级

    • 如果上述方法都无法解决问题,可能需要升级硬件,比如使用具有更多内存的GPU。

由于你没有提供train.py的具体命令和参数,我只能给出一般性的建议。如果你能提供更多关于你运行命令的细节,我可以给出更具体的建议。此外,查看MMDetection的文档和社区论坛,看看是否有其他用户遇到类似问题并分享了解决方案也是很有帮助的。

  希望能够帮到有需要的你。

  PS:如若遇到采纳如下方案还是未解决的同学,希望不要抱怨&&急躁,毕竟影响因素众多,我写出来也是希望能够尽最大努力帮助到同类似问题的小伙伴,即把你未解决或者产生新Bug黏贴在评论区,我们大家一起来努力,一起帮你看看,可以不咯。

  若有对当前Bug有与如下提供的方法不一致,有个不情之请,希望你能把你的新思路或新方法分享到评论区,一起学习,目的就是帮助更多所需要的同学,正所谓「赠人玫瑰,手留余香」。

☀️写在最后

  ok,以上就是我这期的Bug修复内容啦,如果还想查找更多解决方案,你可以看看我专门收集Bug及提供解决方案的专栏「Bug调优」,都是实战中碰到的Bug,希望对你有所帮助。到此,咱们下期拜拜。

码字不易,如果这篇文章对你有所帮助,帮忙给bugj菌来个一键三连(关注、点赞、收藏) ,您的支持就是我坚持写作分享知识点传播技术的最大动力。

同时也推荐大家关注我的硬核公众号:「猿圈奇妙屋」 ;以第一手学习bug菌的首发干货,不仅能学习更多技术硬货,还可白嫖最新BAT大厂面试真题、4000G Pdf技术书籍、万份简历/PPT模板、技术文章Markdown文档等海量资料,你想要的我都有!

📣关于我

我是bug菌,CSDN | 掘金 | InfoQ | 51CTO | 华为云 | 阿里云 | 腾讯云 等社区博客专家,C站博客之星Top30,华为云2023年度十佳博主,掘金多年度人气作者Top40,51CTO年度博主Top12,掘金/InfoQ/51CTO等社区优质创作者;全网粉丝合计 20w+;硬核微信公众号「猿圈奇妙屋」,欢迎你的加入!免费白嫖最新BAT互联网公司面试真题、4000G PDF电子书籍、简历模板等海量资料,你想要的我都有,关键是你不来拿。


本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1701295.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

JavaWeb-JS

目录 学习重点 什么是 JavaScript? Web标准 JS的引入方式 JS的基本语法 JS的函数 JS的对象 JS事件监听 学习重点 js 引入方式 js 基础语法 js 函数 js 对象 js 事件监听 什么是 JavaScript? Web标准 Web 标准也称为网页标准 ,由一系列的标准组成&#xff0…

Spring - Spring Cache 缓存注解这样用,实在是太香了!

作者最近在开发公司项目时使用到 Redis 缓存,并在翻看前人代码时,看到了一种关于 Cacheable 注解的自定义缓存有效期的解决方案,感觉比较实用,因此作者自己拓展完善了一番后分享给各位。 Spring 缓存常规配置 Spring Cache 框架给…

GpuMall智算云:AUTOMATIC1111/stable-diffusion-webui/stable-diffusion-webui-v1.8.0

配置环境介绍 目前平台集成了 Stable Diffusion WebUI 的官方镜像,该镜像中整合如下资源: GpuMall智算云 | 省钱、好用、弹性。租GPU就上GpuMall,面向AI开发者的GPU云平台 Stable Diffusion WebUI版本:v1.8.0 Python版本:3.10.…

运维专题.Docker功能权限(Capabilities)管理和查看

运维专题 Docker功能权限(Capabilities) - 文章信息 - Author: 李俊才 (jcLee95) Visit me at CSDN: https://jclee95.blog.csdn.netMy WebSite:http://thispage.tech/Email: 291148484163.com. Shenzhen ChinaAddress of this article:htt…

Python深度学习基于Tensorflow(12)实战生成式模型

文章目录 Deep Dream风格迁移参考资料 Deep Dream DeepDream 是一项将神经网络学习模式予以可视化展现的实验。与孩子们观察云朵并尝试解释随机形状相类似,DeepDream 会过度解释并增强其在图像中看到的图案。 DeepDream为了说明CNN学习到的各特征的意义&#xff0c…

SQL使用函数给多个分表添加同一字段

数据库中分表时,往往需要向多个分表中添加同一个字段,可以定义一个函数,每次调用这个函数向多个份表中添加同意字段。 1、创建函数示例: 在PostgreSQL中创建一个简单的函数 以下是一个在PostgreSQL中创建函数的简单示例&#x…

PXE + Kickstart 无人值守装机

目录 一、简介 二、PXE工作流程 三、搭建 PXE 远程安装服务器 1.安装包准备 2.环境准备 3.搭建PXE远程安装服务器 (1)关闭 firewalld 和 selinux (2)配置双网卡 1)添加硬件网卡 2)编辑网卡配置文…

强化学习,第 2 部分:政策评估和改进

目录 一、介绍 二、关于此文章 三、求解贝尔曼方程 四、策略评估 4.1 更新变体 4.2 例描述 五、策略改进 5.1 V函数描述 5.2 政策改进定理 六、策略迭代 七、值迭代 7.1 算法描述 7.2 异步值迭代 八、广义策略迭代 九、结论 一、介绍 R强化学习是机器学习中的一…

一屏万象,场景无限:蓝牙墨水屏标签多功能多场景应用带您领略未来

在数字化浪潮汹涌澎湃的今天,智能科技产品层出不穷,它们不仅极大地改变了我们的生活方式,更在无形中拓宽了我们的视野。而今,一款融合了创新技术与实用性于一体的蓝牙墨水屏标签,正以其多功能多场景应用的特性&#xf…

【C++/STL】vector(常见接口、模拟实现、迭代器失效)

🌈个人主页:秦jh_-CSDN博客🔥 系列专栏: https://blog.csdn.net/qinjh_/category_12575764.html?spm1001.2014.3001.5482 目录 简单使用 常见接口 find insert vector模板 模拟实现 尾插 构造 迭代器失效 使用memcpy拷贝问…

Web漏洞:网络安全的隐形杀手

随着互联网的深入发展,Web应用程序已成为企业和个人生活中不可或缺的一部分。然而,随着Web应用的普及,网络安全问题也日益凸显,其中Web漏洞是网络安全领域面临的重大挑战之一。本文将详细探讨一些常见的Web漏洞及其潜在的危害&…

使用 Azure DevOps 和 Azure Web Apps 进行 .NET Core 应用的 CI/CD

概览 在现代软件开发中,快速部署和高效的版本控制系统是非常关键的。通过利用 Azure DevOps 和 Azure Web Apps,开发团队可以实现自动化的持续集成和持续部署(CI/CD),从而加快从开发到生产的过程。接下来我们一步步来…

深入探索MySQL SELECT查询:从基础到高级,解锁数据宝藏的密钥

系列文章目录 更新ing... MySQL操作全攻略:库、表、数据、事务全面指南深入探索MySQL SELECT查询:从基础到高级,解锁数据宝藏的密钥MySQL SELECT查询实战:练习题精选,提升你的数据库查询技能PyMySQL:连接P…

灯塔工厂产业数字化平台解决方案(50页PPT)

方案介绍: 随着工业4.0和智能制造的快速发展,传统工厂正面临着转型升级的迫切需求。为了提升生产效率、优化资源配置、增强市场竞争力,我们推出了灯塔工厂产业数字化平台解决方案。该方案旨在通过先进的信息技术手段,将传统工厂转…

感谢信∣高成长型动力电池供应商『华鼎国联』采购管理平台项目上线,企企通SRM加速新能源汽车发展新质生产力

近日,企企通收到来自华鼎国联四川动力电池有限公司(以下简称“华鼎国联”)的感谢信,对企企通团队在采购数字化项目实施中所付出的努力表示感谢。 华鼎国联在感谢信中特别指出,回首披荆斩棘的2023年,企企通的…

通过css实现------简单边框流动特效

效果展示 代码部分 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta http-equiv"X-UA-Compatible" content"IEedge"><meta name"viewport" content"widthdevice…

阿里云产品DTU评测报告(三)

这阿里云产品DTU评测报告&#xff08;三&#xff09; 连接物联网平台创建项目 连接物联网平台 在开始连接物联网平台之前&#xff0c;首先需要下载开发工具Visual Studio Code 开发工具&#xff0c;开发工具可以到https://code.visualstudio.com/ 去查找下载&#xff0c;下载完…

9.Redis之list类型

list相当于链表、数据表 1.list类型基本介绍 列表中的元素是有序的"有序"的含义,要根据上下文区分~~有的时候,谈到有序,指的是"升序","降序”有的时候,谈到的有序,指的是, 顺序很关键~~如果把元素位置颠倒,顺序调换.此时得到的新的 List 和之前的 Li…

神奇动物在哪里?斯洛文尼亚旅游之野生动物寻踪

不仅拥有优美动人的自然风光&#xff0c;斯洛文尼亚还以其丰富的生物多样性而闻名。得益于国家对大自然开展的保护工作&#xff0c;斯洛文尼亚超过三分之一的国土面积都被规划为保护区&#xff0c;拥有约1.5万种动物和6000种植物&#xff0c;其中不乏众多特有、稀有和濒危动植物…

如何选择一款开放式耳机?六大独家选购技巧超详细汇总!

​喜欢户外活动的朋友们&#xff0c;你们都是懂得享受生活的达人吧&#xff01;想象一下&#xff0c;在户外活动时&#xff0c;如果能有一副既适合场景又提供超棒音乐体验的耳机&#xff0c;那该多完美啊&#xff01;这时候&#xff0c;开放式耳机就闪亮登场了&#xff01;它的…