Я написал нейронную сеть с помощью Keras. Он содержит слои BatchNormalization.
Когда я тренировал его с model.fit
, все было хорошо. При обучении с помощью tenorflow как описано здесь, обучение проходит нормально, но этап проверки всегда дает очень низкую производительность и быстро насыщается (точность составляет 5%, 10%, 40%, 40%, 40% ..; убыток тоже застойный).
Мне нужно использовать тензорный поток, потому что он обеспечивает большую гибкость в отношении части мониторинга обучения.
Я сильно подозреваю, что это как-то связано со слоями BN или / и тем, как я вычисляю характеристики теста (см. Ниже)
feed_dict = {x: X_valid,
batch_size_placeholder: X_valid.shape[0],
K.learning_phase(): 0,
beta: self.warm_up_schedule(global_step)
}
if self.weights is not None:
feed_dict[weights] = self.weights
acc = accuracy.eval(feed_dict=feed_dict)
Есть ли что-то особенное, что нужно сделать при вычислении точности проверки модели, содержащей слои Keras BatchNormalizatin?
Заранее спасибо !