pytorch使用指定GPU训练的实例


Posted in Python onAugust 19, 2019

本文适合多GPU的机器,并且每个用户需要单独使用GPU训练。

虽然pytorch提供了指定gpu的几种方式,但是使用不当的话会遇到out of memory的问题,主要是因为pytorch会在第0块gpu上初始化,并且会占用一定空间的显存。这种情况下,经常会出现指定的gpu明明是空闲的,但是因为第0块gpu被占满而无法运行,一直报out of memory错误。

解决方案如下:

指定环境变量,屏蔽第0块gpu

CUDA_VISIBLE_DEVICES = 1 main.py

这句话表示只有第1块gpu可见,其他gpu不可用,此时要注意第1块gpu已经变成第0块,因此代码里应该使用编号0来指定gpu。如果依然使用cuda:1会报invalid device ordinal。

当然也可以在代码里使用os模块达到同样效果:

import os

#多块使用逗号隔开
os.environ['CUDA_VISIBLE_DEVICES'] = '1'
使用torch.cuda.device
with torch.cuda.device(1):
 ...

注意这种情况下gpu编号也会改变

关于这个问题的讨论,感兴趣的也可以去这里查看cuda out of memory error when GPU0 memory is fully utilized

以上这篇pytorch使用指定GPU训练的实例就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
python正则表达式中的括号匹配问题
Dec 14 Python
python Django批量导入数据
Mar 25 Python
Python 实现数据库(SQL)更新脚本的生成方法
Jul 09 Python
dataframe设置两个条件取值的实例
Apr 12 Python
python脚本生成caffe train_list.txt的方法
Apr 27 Python
Django教程笔记之中间件middleware详解
Aug 01 Python
Python中判断子串存在的性能比较及分析总结
Jun 23 Python
Python实现图片识别加翻译功能
Dec 26 Python
django 解决model中类写不到数据库中,数据库无此字段的问题
May 20 Python
Matplotlib自定义坐标轴刻度的实现示例
Jun 18 Python
python logging模块的使用
Sep 07 Python
Python 如何安装Selenium
May 06 Python
关于pytorch多GPU训练实例与性能对比分析
Aug 19 #Python
pytorch 更改预训练模型网络结构的方法
Aug 19 #Python
pytorch打印网络结构的实例
Aug 19 #Python
pytorch索引查找 index_select的例子
Aug 18 #Python
浅谈Pytorch中的torch.gather函数的含义
Aug 18 #Python
PyTorch中Tensor的维度变换实现
Aug 18 #Python
PyTorch中Tensor的拼接与拆分的实现
Aug 18 #Python
You might like
php去除头尾空格的2种方法
2015/03/16 PHP
分享php分页的功能模块
2015/06/16 PHP
JavaScript的Function详细
2006/11/14 Javascript
jquery选择器(常用选择器说明)
2010/09/28 Javascript
jquery弹窗插件colorbox绑定动态生成元素的方法
2014/06/20 Javascript
jQuery子窗体取得父窗体元素的方法
2015/05/11 Javascript
JS+CSS相对定位实现的下拉菜单
2015/10/06 Javascript
Vue.js 父子组件通讯开发实例
2016/09/06 Javascript
利用transition实现文字上下抖动的效果
2017/01/21 Javascript
js实现水平滚动菜单导航
2017/07/21 Javascript
webpack将js打包后的map文件详解
2018/02/22 Javascript
不使用JavaScript实现菜单的打开和关闭效果demo
2018/05/01 Javascript
详解vue指令与$nextTick 操作DOM的不同之处
2018/08/02 Javascript
了解javascript中变量及函数的提升
2019/05/27 Javascript
微信小程序监听用户登录事件的实现方法
2019/11/11 Javascript
jQuery实现的图片点击放大缩小功能案例
2020/01/02 jQuery
js实现简单贪吃蛇游戏
2020/05/15 Javascript
编写v-for循环的技巧汇总
2020/12/01 Javascript
利用node.js开发cli的完整步骤
2020/12/29 Javascript
[00:27]DOTA2荣耀之路2:Patience from zhou!
2018/05/24 DOTA
跟老齐学Python之传说中的函数编写条规
2014/10/11 Python
python使用reportlab实现图片转换成pdf的方法
2015/05/22 Python
Python使用pyserial进行串口通信的实例
2019/07/02 Python
Python 测试框架unittest和pytest的优劣
2020/09/26 Python
html5 input元素新特性_动力节点Java学院整理
2017/07/06 HTML / CSS
HTML5中div、article、section的区别及使用介绍
2013/08/14 HTML / CSS
澳大利亚香水在线商店:City Perfume
2020/09/02 全球购物
C++如何引用一个已经定义过的全局变量
2014/08/25 面试题
高中的自我鉴定
2013/12/16 职场文书
护士辞职信模板
2014/01/20 职场文书
知识竞赛拉拉队口号
2014/06/16 职场文书
村党支部群众路线教育实践活动对照检查材料
2014/09/26 职场文书
2014年政风行风工作总结
2014/11/22 职场文书
2014年房地产个人工作总结
2014/12/20 职场文书
SpringBoot中HttpSessionListener的简单使用方式
2022/03/17 Java/Android
Python如何让字典保持有序排列
2022/04/29 Python