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实现接口的方法
Jul 07 Python
Python pymongo模块用法示例
Mar 31 Python
基于python list对象中嵌套元组使用sort时的排序方法
Apr 18 Python
用python生成(动态彩色)二维码的方法(使用myqr库实现)
Jun 24 Python
利用pandas合并多个excel的方法示例
Oct 10 Python
Python 生成一个从0到n个数字的列表4种方法小结
Nov 28 Python
Django添加bootstrap框架时无法加载静态文件的解决方式
Mar 27 Python
520使用Python实现“我爱你”表白
May 20 Python
Pytorch实现将模型的所有参数的梯度清0
Jun 24 Python
通俗讲解python 装饰器
Sep 07 Python
python 使用Tensorflow训练BP神经网络实现鸢尾花分类
May 12 Python
pytorch 预训练模型读取修改相关参数的填坑问题
Jun 05 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
消息持续发送的完整例子
2006/10/09 PHP
php empty()与isset()区别的详细介绍
2013/06/17 PHP
PHP访问数据库集群的方法小结
2016/03/14 PHP
详解PHP的Yii框架中的Controller控制器
2016/03/29 PHP
PHP模糊查询的实现方法(推荐)
2016/09/06 PHP
基于PHP实现解密或加密Cloudflar邮箱保护
2020/06/24 PHP
PHPStorm 2020.1 调试 Nodejs的多种方法详解
2020/09/17 NodeJs
cnblogs TagCloud基于jquery的实现代码
2010/06/11 Javascript
JavaScript中几种常见排序算法小结
2011/02/22 Javascript
关于onScroll事件在IE6下每次滚动触发三次bug说明
2011/09/21 Javascript
javascript使用中为什么10..toString()正常而10.toString()出错呢
2013/01/11 Javascript
js相册效果代码(点击创建即可)
2013/04/16 Javascript
jquery实现非叠加式的搜索框提示效果
2014/01/07 Javascript
关于javascript中dataset的问题小结
2015/11/16 Javascript
AngularJS基础 ng-submit 指令简单示例
2016/08/03 Javascript
javascript 实现文本使用省略号替代(超出固定高度的情况)
2017/02/21 Javascript
AngularJS ng-repeat指令及Ajax的应用实例分析
2017/07/06 Javascript
详解vue前后台数据交互vue-resource文档
2017/07/19 Javascript
Vue 3.x+axios跨域方案的踩坑指南
2019/07/04 Javascript
JavaScript写个贪吃蛇小游戏(超详细)
2020/03/17 Javascript
vue+Element-ui实现分页效果
2020/11/15 Javascript
Python读取图片EXIF信息类库介绍和使用实例
2014/07/10 Python
深度定制Python的Flask框架开发环境的一些技巧总结
2016/07/12 Python
深入理解Python中变量赋值的问题
2017/01/12 Python
浅谈Python生成器generator之next和send的运行流程(详解)
2017/05/08 Python
详解Appium+Python之生成html测试报告
2019/01/04 Python
Pandas之DataFrame对象的列和索引之间的转化
2019/06/25 Python
python使用 zip 同时迭代多个序列示例
2019/07/06 Python
django之使用celery-把耗时程序放到celery里面执行的方法
2019/07/12 Python
使用豆瓣源来安装python中的第三方库方法
2021/01/26 Python
聊聊Python pandas 中loc函数的使用,及跟iloc的区别说明
2021/03/03 Python
HTML5+CSS3:3D展示商品信息示例
2017/01/03 HTML / CSS
会计专业自荐信
2014/06/03 职场文书
公司优秀员工获奖感言
2014/08/14 职场文书
2015年幼儿园班主任工作总结
2015/05/12 职场文书
2016入党积极分子心得体会
2016/01/06 职场文书