Memory 使用GPU但CPU中的Tensorflow内存泄漏正常

Memory 使用GPU但CPU中的Tensorflow内存泄漏正常,memory,tensorflow,memory-leaks,gpu,Memory,Tensorflow,Memory Leaks,Gpu,当使用GPU来训练我的模型时,CPU的内存会在几个时代后耗尽。然而,如果我改用CPU,这种行为就不会发生 我尝试了几种不同的组合,但都不起作用: cuda8.0.44 cudnn5.1 tensorflow1.2.1 cuda8.0.44 cudnn6.0 tensorflow1.2.1 cuda8.0.44 cudnn6.0 tensorflow1.3.0 cuda8.0.61(带补丁)cudnn6.0 tensorflow1.3.0 我将ubuntu14.0.4与python2.7一起使

当使用GPU来训练我的模型时,CPU的内存会在几个时代后耗尽。然而,如果我改用CPU,这种行为就不会发生

我尝试了几种不同的组合,但都不起作用:

  • cuda8.0.44 cudnn5.1 tensorflow1.2.1
  • cuda8.0.44 cudnn6.0 tensorflow1.2.1
  • cuda8.0.44 cudnn6.0 tensorflow1.3.0
  • cuda8.0.61(带补丁)cudnn6.0 tensorflow1.3.0
我将ubuntu14.0.4与python2.7一起使用

基于本文中的建议,我已经尝试了以下方法:

  • 调用
    tf.get\u default\u graph().finalize()

  • 使用
    tcmalloc
    代替
    malloc

  • 具有不同硬编码参数的重新编译tensorflow


  • 也许可以尝试将TF_CUDA_HOST_MEM_LIMIT_IN_MB设置为一些较小的值?下一步可能是获取内存配置文件,以查看谁实际占用了内存,如这里的@YaroslavBulatov os.environ[“TF_CUDA_HOST_MEM_LIMIT_IN_MB”]=“10000”添加到我的代码中,但似乎没有效果,内存仍将增加到32G,stuckI怀疑它是否与此问题有关--@YaroslavBulatov I也使用pprof检查泄漏发生的位置。结果表明,节点“cudbgApiDetach”和“cuVDPAUCtxCreate”是问题所在,“tensorflow BFCAllocator Extend”是稳定的。但我不知道如何修补漏洞