小编Pal*_*avi的帖子

张量流中的内存泄漏问题

我的 TensorFlow 1.14 出现内存泄漏。我参考了 TensorFlow 的各种 GitHub 问题和内存泄漏来解决我的问题,我遵循了答案的建议,这似乎解决了问题。但是,它在这里不起作用。我什至将代码移植到 Tensorflow 2.1 和 2.3,但仍然无法解决问题。

每当我加载模型时,就会出现内存泄漏。我尝试在加载模型并使用垃圾收集 API 后清除会话,但泄漏仍然存在。

为了重现内存泄漏,我创建了一个简单的示例。我使用下面的函数来检查 python 进程使用的内存。

def memory_usage_func():
    import os
    import psutil
    process = psutil.Process(os.getpid())
    mem_used = process.memory_info()[0] >> 20
    print("Memory used:", mem_used)
    return mem_used
Run Code Online (Sandbox Code Playgroud)

下面是加载模型和检查内存使用情况的函数:

for i in range(100):
    model = load_model('./model_example.h5', compile=False)
    del model
    memory_usage_func()
Run Code Online (Sandbox Code Playgroud)

在上面的代码中,内存泄漏问题仍然存在。此外,我尝试进行预测。为此,我创建了一个会话,加载模型并运行 predict()。我也面临同样的内存泄漏问题。我使用tf.keras.backend.clear_session()gc.collect()模型加载后。但是,它无法清除会话并释放内存。

python memory-leaks keras tensorflow

5
推荐指数
1
解决办法
1113
查看次数

标签 统计

keras ×1

memory-leaks ×1

python ×1

tensorflow ×1