Keras - GPU ID 和显存占用设定
初步尝试 Keras (基于 Tensorflow 后端)深度框架时, 发现其对于 GPU 的使用比较神奇, 默认竟然是全部占满显存, 1080Ti 跑个小分类问题, 就一下子满了. 而且是服务器上的两张 1080Ti.
服务器上的多张 GPU 都占满, 有点浪费性能.
因此, 需要类似于 Caffe 等框架的可以设定 GPU ID 和显存自动按需分配.
实际中发现, Keras 还可以限制 GPU 显存占用量.
这里涉及到的内容有:
- GPU ID 设定
- GPU 显存占用按需分配
- GPU 显存占用限制
- GPU 显存优化
1. GPU ID 设定
#! -- coding: utf-8 --*--
import os
os.environ["CUDA_VISIBLE_DEVICES"] = "1"
这里将 GPU ID 设为 1.
GPU ID 从 0 开始, GPUID=1 即表示第二块 GPU.
2. GPU 显存占用按需分配
#! -- coding: utf-8 --*--
import tensorflow as tf
import keras.backend.tensorflow_backend as ktf
# GPU 显存自动调用
config = tf.ConfigProto()
config.gpu_options.allow_growth=True
session = tf.Session(c