Comportamento estranho da função de perda no modelo keras, com base convolucional pré-treinada

Estou tentando criar um modelo no Keras para fazer previsões numéricas a partir das imagens. Meu modelo temdensenet121 base convolucional, com duas camadas adicionais no topo. Todas as camadas, exceto as duas últimas, estão definidas comolayer.trainable = False. Minha perda é um erro médio quadrático, pois é uma tarefa de regressão. Durante o treinamento eu receboloss: ~3, enquanto a avaliação no mesmo lote de dados forneceloss: ~30:

model.fit(x=dat[0],y=dat[1],batch_size=32)

Época 1/1 32/32 [==============================] - 0s 11ms / step - perda:2.5571

model.evaluate(x=dat[0],y=dat[1])

32/32 [==============================] - 2s 59ms / passo29.276123046875

Alimento exatamente as mesmas 32 fotos durante o treinamento e a avaliação. E também calculei a perda usando valores previstos dey_pred=model.predict(dat[0]) e então construiu o erro quadrático médio usando numpy. O resultado foi o mesmo que obtive da avaliação (ou seja, 29.276123 ...).

Houve sugestão de que esse comportamento possa ser causado porBatchNormalization camadas na base convolucional (discussão no github) Claro que tudoBatchNormalization camadas no meu modelo foram definidas paralayer.trainable=False também. Talvez alguém tenha encontrado esse problema e tenha descoberto a solução?

questionAnswers(2)

yourAnswerToTheQuestion