pytorch使用指定GPU训练的实例
2019-08-19 15:21
1416 查看
本文适合多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训练的实例就是小编分享给大家的全部内容了,希望能给大家一个参考
您可能感兴趣的文章:
相关文章推荐
- (原)PyTorch中使用指定的GPU
- PyTorch使用指定的GPU
- PyTorch使用cpu调用gpu训练的模型
- PyTorch使用并行GPU处理数据
- Ubuntu16.04下使用Pytorch+detectron的训练模型,进行图片的检测标框主要使用infer_simple.py
- PyTorch中使用预训练的模型初始化网络的一部分参数
- PyTorch指定GPU
- pytorch 多GPU训练
- Pytorch使用MNIST数据集实现CGAN和生成指定的数字
- PyTorch结合TorchText使用预训练词向量
- 解决了PyTorch 使用torch.nn.DataParallel 进行多GPU训练的一个BUG:模型(参数)和数据不在相同设备上
- pytorch多GPU训练以及多线程加载数据
- 如何处理Pytorch使用GPU后仍有GPU资源未释放的情况
- 关于使用PyTorch设置多线程(threads)进行数据读取而导致GPU显存始终不释放的问题
- Spring Roo 3 实例训练[同时使用Javascript库dojo和jQuery并使用Rest服务]
- tensorflow使用GPU训练时的显存占用问题
- Amazon AWS上Caffe+GPU CUDA 8.0 +cuDNN 5.0 +OpenBLAS+pycaffe配置和lenet训练方法
- 使用py-faster-rcnn来训练voc2007数据集(Ubuntu)
- pytorch: 准备、训练和测试自己的图片数据
- 监视和截获指定进程网络数据传输WSockExpert0.6 工具介绍和使用实例