关于CUDA out of memory的解决方案

 更新时间:2023年02月03日 14:53:32   作者:萝卜牛腩  
这篇文章主要介绍了关于CUDA out of memory的解决方案,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教

1 问题描述

很多时候,我们在开始进行深度学习训练的时候,经常出现存储不够的信息,

诸如这样:

你可能会认为是自己的显卡显存不够,那就再掏钱去买个更大的显卡吧。

我的显卡是titan xp 12g显存。

其实对于绝大多数的网络都是够用的,那么这个问题该如何解决哪?

2 问题的解决

1 如果你的显存真的比较小

我的显卡是titan xp12g显存,举个例子我在训练模型时,设置的batch_size==16,也就是说,我可以同时处理16副图,我占用的显存是5.82个g,如果你的显存比我的小,或者你处理其他的图片占用的更大,那么,怎

么办哪?

你可以:

修改:batch_size==4

请尽量还是选用2的n次方来设置参数。这是深度学习二进制的本质。

修改后,你的显存占用会从5.82g降到0.81g,就算你的显存比较小,总有一天,你会满足自己的需求。

2 如果你的cpu比较差

我使用的是2017年的thinkpad x1carobon笔记本,外界显卡坞带titan xp显卡。

我的cpu是i7-7600,已经过了几年了,并不好,但说不定你比我的cpu更差,那么怎么办哪?

你可以:

修改:workers==1

很多模型训练的时候,默认的线程也就是workers==8,也许你的cpu无法承受8线程同时训练,那么你可以把这个并行线程数降下来,例如我上面的,将线程数降为1,那么又可以愉快的玩耍了,但是,你能承受本来我有i7的cpu,本来我有12g的显存,却不能完全使用,还要承受八倍奉还么!!

3 一个隐藏的设置

这个发现,我尚未在其他csdn的博客上见到过,或者我没搜到。

应该有很多像我一样的偏执狂。天天盯着存储看,c盘没多一点点,就开始删除垃圾,删除缓存,删除windows更新备份,删除windows注销文件(2个g),删除windows系统补丁,删除c盘之外其他盘的虚拟内存,后者把虚拟内存转移到其他盘!因为,我们的c盘真的不堪重负。。。

后面有时间,我再谈谈如何给c盘自由加容吧。

可能,就像我一样,我举个例子,我把项目放在了F盘,那么我把除c盘之外,其他盘的虚拟缓存给删掉了,导致F盘的虚拟内存为0,也会出现这个问题。

那么,该怎么办哪?

你可以:

修改:我的电脑——属性——高级系统设置——设置——虚拟内存

为了跟我的显存保持一致,我就把虚拟内存也设置为12g吧应该是1024x12.。

懒得修改了,一切OK!

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • python实现Dijkstra算法的最短路径问题

    python实现Dijkstra算法的最短路径问题

    这篇文章主要介绍了python实现Dijkstra算法的最短路径问题,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-06-06
  • Python排序算法实例代码

    Python排序算法实例代码

    这篇文章主要为大家详细介绍了Python实现排序算法的相关代码,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-08-08
  • OpenCV图像缩放之cv.resize()函数详解

    OpenCV图像缩放之cv.resize()函数详解

    resize函数opencv中专门用来调整图像大小的函数,下面这篇文章主要给大家介绍了关于OpenCV图像缩放之cv.resize()函数的相关资料,文中通过实例代码介绍的非常详细,需要的朋友可以参考下
    2022-09-09
  • python Tkinter实例详解

    python Tkinter实例详解

    tkinter(Tk interface)是Python的标准GUl库,支持跨平台的GUl程序开发。tkinter适合小型的GUl程序编写,也特别适合初学者学习GUl编程,这篇文章主要介绍了python Tkinter详解,需要的朋友可以参考下
    2023-03-03
  • Django Rest framework解析器和渲染器详解

    Django Rest framework解析器和渲染器详解

    这篇文章主要介绍了Django Rest framework解析器和渲染器详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2019-07-07
  • python使用socket创建tcp服务器和客户端

    python使用socket创建tcp服务器和客户端

    这篇文章主要为大家详细介绍了python使用socket创建tcp服务器和客户端,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2018-04-04
  • python调用机器喇叭发出蜂鸣声(Beep)的方法

    python调用机器喇叭发出蜂鸣声(Beep)的方法

    这篇文章主要介绍了python调用机器喇叭发出蜂鸣声(Beep)的方法,实例分析了Python调用winsound模块的使用技巧,需要的朋友可以参考下
    2015-03-03
  • 使用PM2+nginx部署python项目的方法示例

    使用PM2+nginx部署python项目的方法示例

    这篇文章主要介绍了使用PM2+nginx部署python项目的方法示例,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-11-11
  • Python eval函数介绍及用法

    Python eval函数介绍及用法

    在本篇文章里小编给大家整理的是一篇关于Python eval函数介绍及用法,有兴趣的朋友们可以参考下。
    2020-11-11
  • Python之 requests的使用(一)

    Python之 requests的使用(一)

    requests是一个很实用的Python HTTP客户端库,爬虫和测试服务器响应数据时经常会用到,requests是Python语言的第三方的库,专门用于发送HTTP请求,使用起来比urllib简洁很多,这篇文章主要介绍requests的基础用法
    2023-04-04

最新评论