Я использую categorical_crossentropy
в качестве функции потерь для моей модели, и мне нужно вручную вычислить значение потерь для другой модели в обратном вызове fit
.categorical_crossentropy
возвращает тензор, который не может быть преобразован в одно значение, и я не могу понять, как рассчитывается один убыток.Я пытался:
def on_epoch_end(self, epoch, logs={}):
y_pred = np.asarray(self.model.predict(self.validation_data[0]))
y_true = self.validation_data[1]
vloss = K.eval(K.mean(categorical_crossentropy(K.variable(np.asarray(y_true)), K.variable(y_pred))))
Я вызываю on_epoch_end
вручную (я создаю этот класс обратного вызова из другого обратного вызова), поэтому 'val_loss'
в logs
не заполнено.