Keras 重置层数

Keras reset layer numbers

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

每次迭代不应构建新模型。培训应该以相同的模式进行。也许 post 你的代码看看哪里出了问题。

你使用 jupyter 笔记本吗?似乎在重建模型时,您的 tensorlow 会话不会重新启动。 因为 keras 按名称引用张量流图,所以有必要继续计数。

因此,如果您不想重新启动会话也没关系。然而,这也意味着,tensorflow 会话变得越来越大,因此重新启动会话可能是理想的方法。 为此重新启动完整的 program/kernel.

解决方案,来自

from keras import backend as K
K.clear_session()

添加

tf.keras.backend.clear_session()

https://www.tensorflow.org/api_docs/python/tf/keras/backend/clear_session