python - 如何清除/删除张量流中的张量?
问题描述
据我了解,tf.reset_default_graph()
只创建一个新图并将其设置为等于默认图。因此,先前创建的张量将只是在占用内存。我还阅读了未引用的张量不是垃圾收集的(就像 Python 中的普通变量一样)。
如果我正在运行交叉验证以搜索一组超参数并因此一次又一次地创建相同的图,我如何摆脱先前创建的张量?
解决方案
我在设计实验时遇到了同样的问题,在研究了这个问题之后,唯一对我有用的解决方案就是这个。正如您在该链接中看到的那样,这似乎是一个设计缺陷,TF 团队似乎并不关心修复。
解决方案是为每个交叉验证迭代创建一个新流程。因此,当进程完成时,系统会杀死它并自动释放资源。
import multiprocessing
def evaluate(...):
import tensorflow as tf
# Your logic
for ... in cross_valiadtion_loop:
process_eval = multiprocessing.Process(target=evaluate, args=(...))
process_eval.start()
process_eval.join()
推荐阅读
- javascript - Django模板Javascript将python变量传递给javascript
- ios - Swift - 数组 - 删除一个值
- push-notification - GMail 停止向 WEB 发送推送通知
- selenium - Selenium XPath 异常 c#
- c++ - 如何在窗口中显示文件夹中所有文件的名称?Qt C++
- algorithm - 一种循环冗余校验算法,它对具有特定非零值的尾随字节数保持不变
- java - 如何让 NumberFormat 使用一种货币,但使用分数美分/美分?
- node.js - node js FCM 一次向多个用户发送通知
- html - 输入类型 JSON html 或 angular
- c++ - 两个类之间的共享方法