IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 人工智能 -> 使用服务器结点,显卡明明有显存,但是还是会报错pytorch :cuda out of memory -> 正文阅读

[人工智能]使用服务器结点,显卡明明有显存,但是还是会报错pytorch :cuda out of memory

在使用服务器显卡的时候遇到的这个问题。一般来说,遇到这个问题,无非就是下边这几种原因和解决方案:
1、硬件设备不行,显存本身就不大,比如你本身就是3G的显存,或者几个G的显存,但是你得特征维度很多,batchsize设置的很大,这时候你可以通过调小batchsize来解决。
2、你得硬件设备没问题,例如你现在用的是服务器,有十多G的显存,这时候你发现跑着跑着就被kill掉了,明明在别的比这个配置低的机器都可以,但是在这个配置更好的服务器上就是不行。
这种原因大概都是因为你的代码没有指定GPU,而你的服务器默认找了默认的第一块显卡(逻辑编号),所以你们两个人在争夺使用这块显卡的资源,导致最终一个人的训练程序被杀死。
指定GPU有两种情况,一种是你可以通过nvidia-smi的命令,查看显卡逻辑编号,如下图:
在这里插入图片描述
这时候你会发现第一列‘Fan’其实就是显卡逻辑编号,你可以在代码中设置,或者是在运行代码时候指定,都可以。

os.environ['CUDA_VISIBLE_DEVICES'] = '1,2'#替换成你的显卡逻辑编号
device = torch.device('cuda' if torch.cuda.is_available() else 'cpu')
#获取device设备,方便你在代码中将模型或者数据加载到GPU,一般都是
#data.to(device)   
#model.to(device)

第二种就是在运行代码的时候指定,这是在第一种方式不好使的情况下,备选方案:

CUDA_VISIBLE_DEVICES=6 python your_code.py
#如果使用多块GPU的话,记得逗号隔开,就写下面的:
CUDA_VISIBLE_DEVICES=1,2 python your_code.py

服务器结点指定GPU:
我们使用服务器结点的时候,往往一个结点,会有很多块GPU,而且都是通过qsub命令来提交脚本的,这个脚本大部分情况下只是指定的结点的逻辑编号,默认使用的是这个结点里面的0号GPU,所以,就会造成像前边说的,明明配置很高,但就是out of memory,说白了,就是使用了默认的gpu,你和别人在争夺GPU,或者你设置错了GPU结点编号,程序在训练时没找到对应的GPU。
这时候可以这样设置:(记得在提交的脚本中设置好服务器结点)

device = torch.device('cuda:1' if torch.cuda.is_available() else 'cpu')
#就是设置成cuda:1,直接指定结点GPU,就可以了,
#默认结点的GPU逻辑编号是0,你使用下面的命令
qstat -f
#查看你的结点有多少GPU,然后指定使用gpu的逻辑编号
#就像我下面图中的,例如,8块的,你就可以编1-7之间的号了(别编0,0是默认,你还会和别人争夺资源)

在这里插入图片描述

3、网上说的提升pytorch版本,重装cuda toolkit,我有点搞不懂,这种问题为啥要去升级pytorch版本呢?升级了之后,岂不是对应的geometric以及很多依赖包,都得重新装???误人子弟!!!
升级pytorch版本的做法,只不过是高版本的pytorch对这些异常情况,进行了一定的处理,内部的做法基本和我前边说的基本差不多,但是重装的麻烦程度。。。可想而知。。。

  人工智能 最新文章
2022吴恩达机器学习课程——第二课(神经网
第十五章 规则学习
FixMatch: Simplifying Semi-Supervised Le
数据挖掘Java——Kmeans算法的实现
大脑皮层的分割方法
【翻译】GPT-3是如何工作的
论文笔记:TEACHTEXT: CrossModal Generaliz
python从零学(六)
详解Python 3.x 导入(import)
【答读者问27】backtrader不支持最新版本的
上一篇文章      下一篇文章      查看所有文章
加:2021-11-19 17:37:57  更:2021-11-19 17:40:10 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/19 1:44:58-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码