Keras重置层数

时间:2018-03-06 04:04:25

标签: tensorflow keras keras-layer

Keras将递增的ID号分配给相同类型的图层,例如max_pooling1d_7max_pooling1d_8max_pooling1d_9等。我的代码的每次迭代构建一个新模型,从model = Sequential()开始,然后通过model.add()添加图层。即使每个循环创建一个新的Sequential对象,图层ID号也会继续从上一个循环开始递增。由于我的流程长期运行,因此这些ID号可能会变得非常大。我担心这可能会导致一些问题。为什么ID不会被model = Sequential()重置?有没有办法重置它们?在每个周期之后我没有使用图层ID号并且可以丢弃它们,但是如何?我正在使用Tensorflow后端。

4 个答案:

答案 0 :(得分:2)

解决方案来自Attempting to reset tensorflow graph when using keras, failing

from keras import backend as K
K.clear_session()

答案 1 :(得分:1)

你使用jupyter笔记本吗?看起来,当您重建模型时,您的张量会话不会重启。 因为keras引用了每个名称的张量流图,所以计数仍在继续。

因此,如果您不想重新开始会话,那就很好了。然而,这也意味着,tensorflow会话变得越来越大,因此重新启动会话可能是期望的方法。 为此重新启动完整的程序/内核。

答案 2 :(得分:0)

每次迭代都不应构建新模型。培训应该在同一模型中进行。也许发布您的代码以查看可能出现的问题。

答案 3 :(得分:0)