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