gpt4 book ai didi

python - 有没有一种简单的方法可以删除大多数变量,但保留加载的数据用于正在进行的代码?

转载 作者:行者123 更新时间:2023-12-01 00:43:26 24 4
gpt4 key购买 nike

情况是,有一个 for 循环运行了 100 次,共享相同的加载数据。随着每个单循环的进行,它会创建越来越多的变量,占用大量的内存资源,从而进一步降低运行速度。代码可以抽象地写为

data = sio.loadmat('very_big_data_set.mat')
for t in range(100):
config = tf.ConfigProto(intra_op_parallelism_threads=1, inter_op_parallelism_threads=1)
sess = tf.Session(graph=tf.get_default_graph(), config=config)
var_1 = ...
var_2 = ...


var_10000 = ...
model = ...

sess.close()

# The line below is a solution but it's very inconvinient
del config, sess, var_1, ..., var_10000, model

我的问题是,是否有一个 python 命令可以用来删除 for 循环期间创建的所有变量,但保留下一个循环加载的数据?我知道方法 del config, sess, var_1, ..., var_10000, model 但它要求我列出我想要删除的所有变量。所以我正在寻找一种更简单的方法,有点像删除除数据之外的所有内容

最佳答案

通常,如果您想使用使用完毕后需要清理的变量,尤其是重复使用它们时,编写函数是一个好主意:

def do_something(arg):
# arg gets the same value as x (or points to the same thing)
y = 10
# now y exists, we can do do something with y and arg
r = y + arg
# now r, y and arg exist
return r
# once the function returns, arg no longer exists or references x
# y and r are no longer referenced either and will no longer exist

for x in range(10)
print(do_something(x))
# here, y and r don't exist anymore, because the function has ended
# here, y and r don't exist, but x still does, since a loop variable sticks around
# capture all this in a function and call it and x would be cleaned up as well

关于python - 有没有一种简单的方法可以删除大多数变量,但保留加载的数据用于正在进行的代码?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57174548/

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