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中运算符"=="和"is"的详解
Oct 08 Python
Python3.5编程实现修改IIS WEB.CONFIG的方法示例
Aug 18 Python
2018年Python值得关注的开源库、工具和开发者(总结篇)
Jan 04 Python
用Python进行简单图像识别(验证码)
Jan 19 Python
VSCode下配置python调试运行环境的方法
Apr 06 Python
python print出共轭复数的方法详解
Jun 25 Python
django的分页器Paginator 从django中导入类
Jul 25 Python
python字符串反转的四种方法详解
Dec 02 Python
Python requests模块基础使用方法实例及高级应用(自动登陆,抓取网页源码)实例详解
Feb 14 Python
Python中SQLite如何使用
May 27 Python
Python Django中间件使用原理及流程分析
Jun 13 Python
python如何构建mock接口服务
Jan 28 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学习 变量使用总结
2011/03/24 PHP
PHP+MySQL之Insert Into数据插入用法分析
2015/09/27 PHP
Linux安装配置php环境的方法
2016/01/14 PHP
PHP将身份证正反面两张照片合成一张图片的代码
2017/04/08 PHP
Yii框架日志记录Logging操作示例
2018/07/12 PHP
thinkPHP5框架导出Excel文件简单操作示例
2018/08/03 PHP
用javascript来实现动画导航效果的代码
2007/12/16 Javascript
js文字滚动停顿效果代码
2008/06/28 Javascript
jQuery EasyUI API 中文文档 - Tree树使用介绍
2011/11/19 Javascript
使用js 设置url参数
2013/07/08 Javascript
刷新页面的几种方法小结(JS,ASP.NET)
2014/01/07 Javascript
JavaScript实现将文本框的值插入指定位置的方法
2015/08/13 Javascript
js 动态添加元素(div、li、img等)及设置属性的方法
2016/07/19 Javascript
获取IE浏览器Cookie信息的方法
2017/01/23 Javascript
Javascript 链式作用域详细介绍
2017/02/23 Javascript
Bootstrap 模态对话框只加载一次 remote 数据的完美解决办法
2017/07/09 Javascript
Vue实现virtual-dom的原理简析
2017/07/10 Javascript
Vue resource三种请求格式和万能测试地址
2018/09/26 Javascript
vue 实现websocket发送消息并实时接收消息
2019/12/09 Javascript
解决VantUI popup 弹窗不弹出或无蒙层的问题
2020/11/03 Javascript
Vue使用Ref跨层级获取组件的步骤
2021/01/25 Vue.js
python多线程方式执行多个bat代码
2016/06/07 Python
在IPython中进行Python程序执行时间的测量方法
2018/11/01 Python
python编写猜数字小游戏
2019/10/06 Python
使用遗传算法求二元函数的最小值
2020/02/11 Python
Python闭包与装饰器原理及实例解析
2020/04/30 Python
对Matlab中共轭、转置和共轭装置的区别说明
2020/05/11 Python
基于python实现简单网页服务器代码实例
2020/09/14 Python
Python实现LR1文法的完整实例代码
2020/10/25 Python
查找适用于matplotlib的中文字体名称与实际文件名对应关系的方法
2021/01/05 Python
TensorFlow的环境配置与安装方法
2021/02/20 Python
亲戚结婚的请假条
2014/02/11 职场文书
酒店七夕情人节活动策划方案
2014/08/24 职场文书
2014年学校办公室工作总结
2014/12/19 职场文书
安装配置mysql及Navicat prenium的详细流程
2021/06/10 MySQL
css中z-index: 0和z-index: auto的区别
2021/08/23 HTML / CSS