关于keras中使用CPU/GPU的配置(包含tensorboard使用)

版权声明:请大家使用时记得显示原创的博主哦!! https://blog.csdn.net/qq_33472765/article/details/85946999

参考:keras分批训练指定GPU:https://blog.csdn.net/github_36326955/article/details/79910448

         kerasGPU配置:https://blog.csdn.net/sinat_26917383/article/details/75633754

GPU参考:https://blog.csdn.net/qq_36427732/article/details/79017835
https://blog.csdn.net/m0_37733057/article/details/78275293
https://blog.csdn.net/u012436149/article/details/53837651
新版本多GPU并行计算:https://blog.csdn.net/qq_36427732/article/details/79017835

keras使用cpu以及GPu和tensorboard的配置:

https://blog.csdn.net/xiaojiajia007/article/details/72865764

https://blog.csdn.net/xiaojiajia007/article/details/72884410

https://www.jianshu.com/p/ae52503d4d1d

keras调参,优化,gpu,cpu调用等问题:https://blog.csdn.net/xiaojiajia007/article/details/72884410

一:使用GPU

keras在使用GPU的时候有个特点,就是默认全部占满显存。
若单核GPU也无所谓,若是服务器GPU较多,性能较好,全部占满就太浪费了。
于是乎有以下五种情况:

    1、指定GPU
    2、使用固定显存的GPU
    3、指定GPU + 固定显存
    4 GPU动态增长
    5 CPU充分占用

推荐指定按需分配GPU资源如下:allow_growth=True

    tf_config = tensorflow.ConfigProto()
    tf_config.gpu_options.allow_growth = True
    session = tensorflow.Session(config=tf_config)



#或者如下
import keras.backend.tensorflow_backend as KTF 
import tensorflow as tf 
import os 
os.environ["CUDA_VISIBLE_DEVICES"] = "1" 
config = tf.ConfigProto() 
config.gpu_options.allow_growth=True #不全部占满显存, 按需分配 
sess = tf.Session(config=config) 

KTF.set_session(sess)

方法1:

import os 
import tensorflow as tf 
import keras.backend.tensorflow_backend as KTF 
#进行配置,每个GPU使用60%上限现存 
os.environ["CUDA_VISIBLE_DEVICES"]="1,2" # 使用编号为1,2号的GPU 
config = tf.ConfigProto() 
config.gpu_options.per_process_gpu_memory_fraction = 0.6 # 每个GPU现存上届控制在60%以内 session = tf.Session(config=config) 
# 设置session 
KTF.set_session(session )

方法2:

import tensorflow as tf
from keras.backend.tensorflow_backend import set_session 
config = tf.ConfigProto() 
config.gpu_options.per_process_gpu_memory_fraction = 0.3 

set_session(tf.Session(config=config))

方法3:

CUDA_VISIBLE_DEVICES=0 python -m nmt.nmt # 启动命令指定GPU

多GPU问题:https://blog.csdn.net/qq_36427732/article/details/79017835

 二:使用CPU

注意:这一部分要放在导入Keras之前

    import os
    os.environ["CUDA_DEVICE_ORDER"] = "PCI_BUS_ID"   # see issue #152
    os.environ["CUDA_VISIBLE_DEVICES"] = ""

注意:os.environ["CUDA_DEVICE_ORDER"] = "PCI_BUS_ID"可能会改变没有次句时GPU的默认序号。

猜你喜欢

转载自blog.csdn.net/qq_33472765/article/details/85946999