Керрас функциональные изменения имена уровень API в каждый API
Когда я запускаю функциональный API в модели для кросс-валидации k-fold, числа в именовании плотного слоя увеличиваются в модели return fitted каждой складки.
Как в первом сгибе это dense_2_acc
, так и во втором сгибе это dense_5_acc
.
По моей модели резюме показывает, что моя модель верна. почему он меняет имена в приспособленной модели history
объекта каждой складки?
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')