![](/img/trans.png)
[英]Tensorflow (v1.12.0) - what is the difference between keras.backend.clear_session() and tf.keras.backend.clear_session()?
[英]What tf.keras.backend.clear_session actually do?
tf.keras.backend.clear_session
实际做什么?
https://www.tensorflow.org/api_docs/python/tf/keras/backend/clear_session
它与tf.reset_default_graph()
和sess.close()
什么关系?
https://www.tensorflow.org/api_docs/python/tf/reset_default_graph
TensorFlow 1.0 图和会话中有两个主要概念。
图-它是一组连接的操作和占位符,在没有会话的情况下不包含任何张量(numpy数组)或值。 打个比方,您可以考虑不包含任何成分的食品加工装配线,但是定义了过程和配方。
会话-它使用图形并用初始值初始化变量,并准备将其放入占位符中以开始实施将图形定义为占位符中的源值的操作,最后,它将为您提供最终的输出所需的操作节点(在最后一层的神经网络节点中)(例如,喂西红柿和获取番茄酱作为输出。)
回到你真正的问题。
如果您使用tf.keras.backend.clear_session
,它将丢弃位于图中定义的变量中的值,并留下一个空容器。 (这将释放您的RAM空间。),现在您可以从其他文件中加载权重了。
如果使用tf.reset_default_graph()
,它将重置图形,并且将删除所有已定义的操作及其相互关联的权重。 现在,您必须加载模型架构和权重才能执行。
实际上,它似乎在做相同的事情,因为它是tf.reset_default_graph()在调用k.clear_session()时将在内部被调用,但clear_session还将为新操作引入新图,您可以在此处检查源代码
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.