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 list转dict示例分享
Jan 28 Python
在Python中使用HTMLParser解析HTML的教程
Apr 29 Python
Python中用于转换字母为小写的lower()方法使用简介
May 19 Python
Python时间戳使用和相互转换详解
Dec 11 Python
将字典转换为DataFrame并进行频次统计的方法
Apr 08 Python
Python实现的json文件读取及中文乱码显示问题解决方法
Aug 06 Python
Python推导式简单示例【列表推导式、字典推导式与集合推导式】
Dec 04 Python
Python使用正则表达式分割字符串的实现方法
Jul 16 Python
python SocketServer源码深入解读
Sep 17 Python
Python 面向对象静态方法、类方法、属性方法知识点小结
Mar 09 Python
Python 图片处理库exifread详解
Feb 25 Python
解决IDEA翻译插件Translation报错更新TTK失败不能使用
Apr 24 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
PHP5下$_SERVER变量不再受magic_quotes_gpc保护的弥补方法
2012/10/31 PHP
PHP可变函数的使用详解
2013/06/14 PHP
php准确计算复活节日期的方法
2015/04/18 PHP
php遍历、读取文件夹中图片并分页显示图片的方法
2016/11/15 PHP
Laravel实现表单提交
2017/05/07 PHP
Javascript读取cookie函数代码
2010/10/16 Javascript
JavaScript建立一个语法高亮输入框实现思路
2013/02/26 Javascript
JavaScript删除数组元素的方法
2015/03/20 Javascript
JavaScript中的Math.LOG2E属性使用详解
2015/06/14 Javascript
JS实现兼容性好,带缓冲的动感网页右键菜单效果
2015/09/18 Javascript
学习javascript文件加载优化
2016/02/19 Javascript
使用jQuery Mobile框架开发移动端Web App的入门教程
2016/05/17 Javascript
AngularJS入门示例之Hello World详解
2017/01/04 Javascript
微信小程序 扎金花简单实例
2017/02/21 Javascript
详解如何在Vue2中实现组件props双向绑定
2017/03/29 Javascript
JScript实现表格的简单操作
2017/08/15 Javascript
jQuery使用bind函数实现绑定多个事件的方法
2017/10/11 jQuery
VueAwesomeSwiper在VUE中的使用以及遇到的一些问题
2018/01/11 Javascript
vue 录制视频并压缩视频文件的方法
2018/07/27 Javascript
用vscode开发vue应用的方法步骤
2019/05/06 Javascript
jquery添加div实现消息聊天框
2020/02/08 jQuery
Node.js API详解之 dgram模块用法实例分析
2020/06/05 Javascript
[02:28]PWL开团时刻DAY3——Ink Ice与DeMonsTer之间的勾心斗角
2020/11/03 DOTA
详解Python如何获取列表(List)的中位数
2016/08/12 Python
Django csrf 验证问题的实现
2018/10/09 Python
django 通过url实现简单的权限控制的例子
2019/08/16 Python
如何解决django-celery启动后迅速关闭
2019/10/16 Python
opencv+python实现均值滤波
2020/02/19 Python
python mysql 字段与关键字冲突的解决方式
2020/03/02 Python
keras 权重保存和权重载入方式
2020/05/21 Python
梅西百货澳大利亚:Macy’s Australia
2017/07/26 全球购物
廉价航班、机票和酒店:JustFly
2018/02/07 全球购物
斯凯奇新西兰官网:SKECHERS新西兰
2018/02/22 全球购物
销售代表求职自荐信
2013/10/01 职场文书
“向国旗敬礼”活动策划方案(4篇)
2014/09/27 职场文书
nginx简单配置多个server的方法
2021/03/31 Servers