TensorFlow-tf.GPUOptions()
作者:互联网
1.tf.GPUOptions()
tf.GPUOptions()主要用于tensorflow的训练。
tensorflow训练时默认占用所有GPU的显存。深度学习代码运行时往往出现多个GPU显存被占满清理。
在构造tf.Session()时可通过tf.GPUOptions作为可选配置参数的一部分来显示地指定需要分配的显存比例。
通常以下代码是成对儿出现的:
gpu_options=tf.GPUOptions(per_process_gpu_memory_fraction=args.gpu_memory_fraction)
sess=tf.Session(config=tf.ConfigProto(gpu_options=gpu_options,log_device_placement=False))
per_process_gpu_memory_fraction指定了每个GPU进程中使用显存的上限,但它只能均匀地作用于所有GPU,无法对不同GPU设置不同的上限。
以上函数的使用示例代码:
#per_process_gpu_memory_fraction
gpu_options=tf.GPUOptions(per_process_gpu_memory_fraction=0.7)
config=tf.ConfigProto(gpu_options=gpu_options)
session = tf.Session(config=config, ...)
2.tf.ConfigProto
tf.ConfigProto一般用在创建session的时候,用来对session进行参数配置。
tf.ConfigProto()参数如下:
log_device_placement=True : 是否打印设备分配日志
allow_soft_placement=True : 如果你指定的设备不存在,允许TF自动分配设备
tf.ConfigProto(log_device_placement=True,allow_soft_placement=True)
2.1 tf.ConfigProto()使用参数的两种方法:
(1)第一种实在构造config对象时直接赋值,如下:
tf.ConfigProto(log_device_placement=True,allow_soft_placement=True)
(2)第二种是先构造config对象,再对构造的config对象进行赋值,如下:
config = tf.ConfigProto()
config.log_device_placement= True
config.allow_soft_placement=True
2.2 让参数设置生效的方法
session = tf.Session(config=config)
标签:placement,True,ConfigProto,gpu,tf,TensorFlow,GPUOptions,config 来源: https://blog.csdn.net/sunnyblogs/article/details/112064790