我使用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内存。为什么会这样?我该如何解决?
答案 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)将临时会话配置为问题中所述的会话。