Керрас функциональные изменения имена уровень API в каждый API


Когда я запускаю функциональный API в модели для кросс-валидации k-fold, числа в именовании плотного слоя увеличиваются в модели return fitted каждой складки. Как в первом сгибе это dense_2_acc, так и во втором сгибе это dense_5_acc.

По моей модели резюме показывает, что моя модель верна. почему он меняет имена в приспособленной модели history объекта каждой складки?

Введите описание изображения здесь

1 2

1 ответ:

Это действительно хороший вопрос, который показывает что-то действительно важное о 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')