创建变量时,会将其添加到集合中以允许共享和重用。但是,这似乎是“内存泄漏”的可能性(严格来说,它不是,因为仍然存在引用)。我应该如何处理?
如果我这样做:
import tensorflow as tf
g = tf.Graph()
with g.as_default():
tf.get_variable('myvar', shape=(2, 2))
del g
会myvar被垃圾回收吗?
创建变量时,会将其添加到集合中以允许共享和重用。但是,这似乎是“内存泄漏”的可能性(严格来说,它不是,因为仍然存在引用)。我应该如何处理?
如果我这样做:
import tensorflow as tf
g = tf.Graph()
with g.as_default():
tf.get_variable('myvar', shape=(2, 2))
del g
会myvar被垃圾回收吗?
在 Tensorflow 1.* 中,myvar即使您丢失了指向它的变量的跟踪,也不会被收集,直到 Python 进程终止。
在 Tensorfow 2.* 中,它将被垃圾收集器收集。
有关详细信息,请参阅Tensorflow的博客,在“不再有全局变量”部分下。