其他分享
首页 > 其他分享> > TensorFlow-tf.GPUOptions()

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