gpt4 book ai didi

python - 创建模型后清除Python循环中的内存

转载 作者:行者123 更新时间:2023-11-30 09:31:09 25 4
gpt4 key购买 nike

我正在 python 中运行 for 循环,其中每个循环都需要在不同的数据上创建模型(摘录如下所示)。每次创建的模型不会从内存中删除,从而导致每个循环变慢。

import gc
for s in range(0, 5):
X, Y = get_data()
m = make_dgp_model(X, Y, Z_100, L)
del m
gc.collect()
print('memory: {}'.format(resource.getrusage(resource.RUSAGE_SELF).ru_maxrss / 1000000))

给出输出:

memory: 460.025856
memory: 470.310912
memory: 486.764544
memory: 493.457408
memory: 499.523584

我知道Python使用指针引用作为其内存,并且当变量被重用时,它不会重写内存中的某些内容。因此,我尝试了 del m,然后使用垃圾收集器。这似乎不起作用。难道我做错了什么?有没有一种方法可以在循环完成后完全删除 m 中存储的内容?

最佳答案

我解决这个问题的方法是添加以下内容,以便在每次循环时重置图表。

tf.reset_default_graph()
graph = tf.get_default_graph()
gpflow.reset_default_session(graph=graph)

this所示github问题(见最后评论)。

关于python - 创建模型后清除Python循环中的内存,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57458008/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com