Keras Functional API 在每个 API 中更改图层名称

Keras Functional API changing layer names in every API

当我运行模型中的函数API进行k折交叉验证时,在return拟合模型中增加了命名密集层的数字每一次折叠。 就像在第一折中它是 dense_2_acc,然后在第二折中它是 dense_5_acc.

通过我的模型总结表明我的模型是正确的。为什么要更改每个折叠的拟合模型 history 对象中的名称?

这是一个非常好的问题,它显示了一些关于 keras 非常重要的事情。名称以这种方式更改的原因是即使您覆盖模型,keras 也不会清除以前定义的变量。您可以通过调用以下方式轻松检查变量是否仍在 session.graph 中:

from keras import backend as K
K.get_session().graph.get_collection('variables')

为了清除之前的模型变量,可以调用:

K.clear_session()

但是 - 请小心 - 因为您可能会丢失现有模型。如果你想保持名称相同,你可以通过将 name 参数添加到你的层实例化来简单地命名你的层,例如:

Dense(10, activation='softmax', name='output')