gpu擅长处理计算密集型任务,可并行运作。在深度学习的训练过程中,包含了大量重复性的计算,利用 gpu 的特性可显著提高训练的效率。
一、更新显卡驱动程序
先升级显卡驱动确保后面不会因为显卡驱动版本低这个问题被卡住。
二、安装gpu版本的tensorflow和keras
1、安装CUDA、cuDNN、tensorflow-gpu
NVIDIA CUDA是一种由NVIDIA推出的通用并行计算架构,该架构使GPU能够解决复杂的计算问题。
NVIDIA cuDNN是用于深度神经网络的gpu加速库,可以集成到更高级别的机器学习框架中,如Tensorflow、caffe。
CUDA与cuDNN的关系
CUDA可以看作是一个工作台,但是这个工作台买来的时候,并没有送工具。那工具在哪呢?工具就是cuDNN,有了它才能在GPU上完成深度学习的计算。所以说,想要在CUDA上运行深度神经网络,就要安装cuDNN。
tensorflow-gpu是tensorflow的gpu版本,但是它必须通过 cuda 和 cudnn 来调用电脑的 gpu。
使用以下方法可以一次性安装CUDA、cuDNN、tensorflow-gpu
conda install tensorflow-gpu
2、安装keras-gpu
conda install keras-gpu
三、指定gpu设备
1、显示所有可用设备
from tensorflow.python.client import device_lib
print(device_lib.list_local_devices())
2、指定一个不存在的gpu(切换回cpu)
在gpu可用的情况下默认使用的是gpu,通过为CUDA指定一个不存在的gpu可切换回cpu模式
import os
os.environ["CUDA_VISIBLE_DEVICES"] = "-1"
3、指定一个可用gpu
设置当前使用的GPU设备仅为0号设备 设备名称为'/gpu:0'
import os
os.environ["CUDA_VISIBLE_DEVICES"] = "0"
4、指定多个可用gpu
设置当前使用的GPU设备为1,0号两个设备,这里的顺序表示优先使用1号设备,然后使用0号设备
import os
os.environ["CUDA_VISIBLE_DEVICES"] = "1,0"
四、配置
tf.ConfigProto一般用在创建session的时候,用来对session进行参数配置,而tf.GPUOptions可以作为设置tf.ConfigProto时的一个参数选项,一般用于限制GPU资源的使用。
import os
os.environ["CUDA_VISIBLE_DEVICES"] = "0" # 使用'/gpu:0'
import tensorflow as tf
import keras.backend.tensorflow_backend as KTF
# GPU资源配置
config = tf.ConfigProto(log_device_placement=False)
config.gpu_options.per_process_gpu_memory_fraction = 0.5 # 每个GPU现存上届控制在50%以内
# session的参数配置
session = tf.Session(config=config)
# 应用session配置
KTF.set_session(session)
网友评论