1.是否打印设备分配日志
sess = tf.Session(config = tf.ConfigProto(log_device_placement = True))
2.如果指定的设备不存在,是否允许TF自动分配设备
sess = tf.Session(config = tf.ConfigProto(allow_soft_placement = True))
3.手工指派设备
with tf.device('/cpu:0'):
...
创建一个设备环境,这个环境下的operation都统一运行在环境指定的设备上
4.控制GPU资源使用率
(1)开始时分配少量的GPU容量,然后按需增加,由于不会释放内存,所以会导致碎片
config = tf.ConfigProto()
config.gpu_options.allow_growth = True
sess = tf.Session(config=config, ...)
(2)设置每个GPU应该拿出多少容量给进程使用,0.4代表40%
gpu_options = tf.GPUOptions(per_process_gpu_memory_fraction=0.4)
config = tf.ConfigProto(gpu_options=gpu_options)
sess = tf.Session(config=config,...)