利用GPU训练的配置方法(Keras)
本文主要针对Keras(Tensorflow2.0版本以后)深度学习框架如何对GPU进行配置,以及如何设置训练任务对GPU的占有率。
GPU的使用配置
首先,为了明确使用的GPU型号,ubuntu系统下可以利用终端指令查看系统GPU的使用、型号情况。
sudo nvidia-smi
输出的结果如下:
也可以在代码中通过tensorflow_backend获取到可用的GPU信息。
from keras import backend as K
print(K.tensorflow_backend._get_available_gpus())
输出结果如下:
接下来,在代码中通过CUDA_VISIBLE_DEVICES来选定GPU:
import tensorflow as tf
os.environ["CUDA_VISIBLE_DEVICES"] = "0"
将编号选择成对应的GPU编号即可选定该GPU训练模型。
若要选定多块GPU,将相应的GPU编号用逗号隔开,即可。
os.environ["CUDA_VISIBLE_DEVICES"] = "0,1"
配置GPU内存的占用率
在上述已经选定完成GPU的使用配置后,可以选择训练模型时对GPU内存的占有率,防止为了训练模型而影响服务器的其他任务正常使用。
gpus = tf.config.experimental.list_physical_devices(device_type='GPU')
for gpu in gpus:
tf.config.experimental.per_process_gpu_memory_fraction = 0.7 #可调整GPU内存的占有率
通过上述两个配置,即可实现在GPU训练环境已配置(cuda、cudnn等)的情况下,实现GPU训练Keras2.x的深度学习模型。
本文仅作为学习笔记交流分享用。由于本人水平有限,文章可能出现纰漏,欢迎大家进行交流指正。谢谢阅读!