张量流使用所有GPU内存

时间:2019-07-06 13:41:33

标签: python tensorflow

我使用tf.data.Dataset在COCO2014上运行我的网络(输入图像的形状为256, 256, 3),并按如下方式配置了tensorflow会话

sess_config = tf.ConfigProto(intra_op_parallelism_threads=1,
                             inter_op_parallelism_threads=1,
                             allow_soft_placement=True)
sess_config.gpu_options.allow_growth=True
sess = tf.Session(config=sess_config)

我发现这将始终消耗我的所有GPU内存(11G)。我什至尝试按以下方式配置会话

sess_config = tf.ConfigProto(intra_op_parallelism_threads=1,
                             inter_op_parallelism_threads=1,
                             allow_soft_placement=True)
sess_config.gpu_options.per_process_gpu_memory_fraction = 0.4
sess = tf.Session(config=sess_config)

但是仍然使用所有GPU内存。为什么会这样?我该如何解决?

2 个答案:

答案 0 :(得分:0)

1)较小的内存占用量: sess_config.gpu_options.per_process_gpu_memory_fraction = 0.1

2)缩小处理图像的大小

(256, 256, 3)-> (128, 128, 3)

答案 1 :(得分:0)

Tensorflow使用所有GPU内存的原因是我使用了另一个临时平原tf.Session()。尽管此临时会话在使用后立即关闭,但Tensorflow不会释放其分配的GPU内存。解决方法可能是1)不要使用两个会话。 2)将临时会话配置为问题中所述的会话。