tf.ConfigProto()在创建tf.Session(config=tf.ConfigProto())进行参数配置。
主要的参数有以下几种:
allow_soft_placement=True:
如果是 True,允许 tensorflow 自动分配设备。
log_device_placement=True:
如果是 True,打印设备分配日志。
device_count={‘GPU’:0, ‘CPU’:4}:
使用字典分配可用的 GPU 设备号和 CPU 设备号。
intra_op_parallelism_threads=n:
(控制运算符op内部的并行)
当运算符op为单一运算符,并且内部可以实现并行时,如矩阵乘法,reduce_sum之类的操作,可以通过设置intra_op_parallelism_threads参数来并行, intra代表内部。
inter_op_parallelism_threads=n:
(控制多个运算符op之间的并行计算)
当有多个运算符op,并且他们之间比较独立,运算符和运算符之间没有直接的路径Path相连。Tensorflow会尝试并行地计算他们,使用由inter_op_parallelism_threads参数来控制数量的一个线程池。
方法一:
config = tf.ConfigProto()
config.gpu_options.allow_growth = True
session = tf.Session(config=config)
方法二:
gpu_options=tf.GPUOptions(allow_growth = True)
config=tf.ConfigProto(gpu_options=gpu_options)
session = tf.Session(config=config)
方法一:
config = tf.ConfigProto()
config.gpu_options.per_process_gpu_memory_fraction = 0.85 #占用85%显存
session = tf.Session(config=config)
方法二:
gpu_options=tf.GPUOptions(per_process_gpu_memory_fraction=0.85)
config=tf.ConfigProto(gpu_options=gpu_options)
session = tf.Session(config=config)