【问题标题】:tensorflow use all GPU memorytensorflow 使用所有 GPU 内存
【发布时间】:2019-07-07 08:17:27
【问题描述】:

我使用 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 内存。为什么会发生这种情况?我该如何解决?

【问题讨论】:

    标签: python tensorflow


    【解决方案1】:

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

    【讨论】:

      【解决方案2】:

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

      2) 缩小处理后的图像尺寸

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

      【讨论】:

        猜你喜欢
        • 2018-02-15
        • 2018-11-25
        • 2018-02-11
        • 1970-01-01
        • 2020-12-25
        • 1970-01-01
        • 2018-05-31
        • 2017-10-15
        相关资源
        最近更新 更多