keras指定运行时显卡及限制GPU用量
固定GPU训练:
import os
import tensorflow as tf
import keras.backend.tensorflow_backend as KTF
#进行配置,每个GPU使用90%上限现存
os.environ["CUDA_VISIBLE_DEVICES"]="0,1" # 使用编号为0,1号的GPU
config = tf.ConfigProto()
config.gpu_options.per_process_gpu_memory_fraction = 0.9 # 每个GPU上限控制在90%以内
session = tf.Session(config=config)
# 设置session
KTF.set_session(session)
如果config.gpu_options.per_process_gpu_memory_fraction =1
,GPU利用率100%会出现以下warning:
failed to allocate 10.91G (11715084288 bytes) from device: CUDA_ERROR_OUT_OF_MEMORY
keras多GPU运算
from keras.utils import multi_gpu_model
model = multi_gpu_model(single_model, 2) #GPU个数为2
model.compile(optimizer=opt, loss='categorical_crossentropy',metrics=['accuracy'])
model.fit()