Keras和TensorFlow设置GPU及其使用率

112 篇文章 7 订阅
79 篇文章 1 订阅

Keras和TensorFlow设置GPU及其使用率

本文讲一下深度学习框架Keras和Tensorflow如何指定GPU训练,及如何设置训练任务占用的GPU内存。
本文分两部分讲,先讲TensorFlow,再讲Keras。

1、TensorFlow1.X

1.1指定GPU

直接在代码中用以下语句指定并不能实现我们的目的:

tf.device('/gpu:1')

需要在python代码中通过CUDA_VISIBLE_DEVICES来指定:

import os
os.environ['CUDA_VISIBLE_DEVICES']='1'

通过以上代码,只使得编号为1的GPU对当前python程序是可见的。
如果要指定多块GPU,则将相应GPU编号用逗号隔开即可:

os.environ['CUDA_VISIBLE_DEVICES']='2,3'

也可以在终端中,来指定想使用的GPU,将指定GPU的代码放在python程序的前面:

CUDA_VISIBLE_DEVICES=1 python test.py

1.2 指定GPU使用量

config = tf.ConfigProto() 
config.gpu_options.per_process_gpu_memory_fraction = 0.9 # 占用GPU90%的显存 
session = tf.Session(config=config)

设置GPU使用量最小。

config = tf.ConfigProto() 
config.gpu_options.allow_growth = True 
session = tf.Session(config=config)

2、TensorFlow2.X

2.1指定GPU

与TF1.X方法基本一样

2.2 指定GPU使用量

gpus = tf.config.experimental.list_physical_devices(device_type='GPU')
for gpu in gpus:
    tf.config.experimental.per_process_gpu_memory_fraction = 0.9

设置GPU使用量最小。

gpus = tf.config.experimental.list_physical_devices(device_type='GPU')
for gpu in gpus:
    tf.config.experimental.set_memory_growth(gpu, True)

3、Keras

3.1 指定GPU

方法与TensorFlow相同。

3.2 指定GPU使用量(TF1.X)

指定占GPU内存比例:

import tensorflow as tf
from keras.backend.tensorflow_backend import set_session
config = tf.ConfigProto()
config.gpu_options.allocator_type = 'BFC' #A "Best-fit with coalescing" algorithm, simplified from a version of dlmalloc.
config.gpu_options.per_process_gpu_memory_fraction = 0.3
set_session(tf.Session(config=config)) 

根据实际使用情况分配最小内存:

import tensorflow as tf
from keras.backend.tensorflow_backend import set_session
config = tf.ConfigProto()
config.gpu_options.allocator_type = 'BFC' #A "Best-fit with coalescing" algorithm, simplified from a version of dlmalloc.
config.gpu_options.allow_growth = True
set_session(tf.Session(config=config)) 

3.3 指定GPU使用量(TF2.X)

指定占GPU内存比例:

import tensorflow as tf
from keras.backend.tensorflow_backend import set_session
gpus = tf.config.experimental.list_physical_devices(device_type='GPU')
for gpu in gpus:
    tf.config.experimental.per_process_gpu_memory_fraction = 0.9

根据实际使用情况分配最小内存:

import tensorflow as tf
from keras.backend.tensorflow_backend import set_session
gpus = tf.config.experimental.list_physical_devices(device_type='GPU')
for gpu in gpus:
    tf.config.experimental.set_memory_growth(gpu, True)
  • 3
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值