tf.keras.backend.clear_session实际做什么?

时间:2019-08-30 17:48:21

标签: python tensorflow keras

1 个答案:

答案 0 :(得分:2)

TensorFlow 1.0 图形会话中有两个主要概念。

  • Graph-它是一组连接的操作和占位符,在没有会话的情况下不包含任何张量(numpy数组)或值。打个比方,您可以考虑不包含任何成分的食品加工装配线,但是定义了过程和配方。

  • 会话-它获取图形并用初始值初始化变量,并准备将其放入占位符中,以开始实施将图形定义为占位符中的源值的操作,最后,它将进行传递您可以从所需的操作节点(位于最后一层的神经网络节点中)获得最终输出(例如,喂西红柿和获取番茄酱作为输出。)

    回到您的真实问题。

  • 如果使用tf.keras.backend.clear_session,它将丢弃位于图中定义的变量中的值,并留下一个空容器。 (这将释放您的RAM空间。),现在您可以从其他文件中加载权重了。

  • 如果使用tf.reset_default_graph(),它将重置图形,并且将删除所有定义的操作以及它们与相应权重的互连。现在,您必须同时加载模型架构和权重。

实际上似乎在做同样的事情,因为它是tf.reset_default_graph()将在调用k.clear_session()的同时在内部被调用,但是clear_session还将为新操作提供新图形,您可以检查源代码{{ 3}}