keras指定gpu_keras系列︱keras是如何指定显卡且限制显存用量

keras在使用GPU的时候有个特点,就是默认全部占满显存。若单核GPU也无所谓,若是服务器GPU较多,性能较好,全部占满就太浪费了。于是乎有以下三种情况:- 1、指定GPU- 2、使用固定显存的GPU- 3、指定GPU + 固定显存

一、固定显存的GPU

本节来源于:深度学习theano/tensorflow多显卡多人使用问题集(参见:Limit the resource usage for tensorflow backend · Issue #1538 · fchollet/keras · GitHub)在使用keras时候会出现总是占满GPU显存的情况,可以通过重设backend的GPU占用情况来进行调节。

import tensorflow as tf

from keras.backend.tensorflow_backend import set_session

config = tf.ConfigProto()

config.gpu_options.per_process_gpu_memory_fraction = 0.3

set_session(tf.Session(config=config))

需要注意的是,虽然代码或配置层面设置了对显存占用百分比阈值,但在实际运行中如果达到了这个阈值,程序有需要的话还是会突破这个阈值。换而言之如果跑在一个大数据集上还是会用到更多的显存。以上的显存限制仅仅为了在跑小数据集时避免对显存的浪费而已。(2017年2月20日补充)

二、指定GPU

import os

os.environ["CUDA_VISIBLE_DEVICES"] = "2"

此时的代码为选择了编号为2 的GPU

# python设置系统变量的方法

os.environ["CUDA_VISIBLE_DEVICES"] = "8,9,10,11,12,13,14,15"

注意,在代码中指定设备时,重新从0开始计,而不是从8开始。

三、指定GPU + 固定显存

上述两个连一起用就行:

import os

import tensorflow as tf

os.environ["CUDA_VISIBLE_DEVICES"] = "2"

from keras.backend.tensorflow_backend import set_session

config = tf.ConfigProto()

config.gpu_options.per_process_gpu_memory_fraction = 0.3

set_session(tf.Session(config=config))

CUDA_VISIBLE_DEVICES=0 python -m nmt.nmt

版权声明:本文为博主原创文章,转载请注明来源“素质云博客”,谢谢合作!!微信公众号:素质云笔记 https://blog.csdn.net/sinat_26917383/article/details/75633754

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值