какие значения возвращает метрика кераса? скаляр или тензор? - PullRequest
0 голосов
/ 17 мая 2019

Я пишу код о пользовательской функции потерь и пользовательской функции метрик в Keras.Теперь это неправильно с кодом.

Я не знаю, какие значения должны возвращать эти пользовательские функции, скаляр или тензор, размер которого равен 'batch_size'?Я попробовал все из них, удивительно, что они все работают, в то время как результаты отличаются.

Так что я хочу знать, какой из них является правильным.Каков вычислительный механизм «потерь» и «метрик», когда он завершает эпоху обучения?

Формы y_true и y_predict имеют вид (batch_size, 1)

def loss_scalar (y_true, y_pred):

main_loss=K.sum(K.reshape((1+0.2*(K.abs((5-y_true)-5/2)))*K.square(y_true-y_pred),shape=(-1,)))

def loss_tensor (y_true,y_pred):

main_loss=(K.reshape((1+0.2*(K.abs((5-y_true)-5/2)))*K.square(y_true-y_pred),shape=(-1,))

def mae_tensor (y_true, y_pred):

return  (K.mean(K.abs(y_true-y_pred),axis=-1))

def mae_scalar (y_true, y_pred):

return  K.sum(K.mean(K.abs(y_true-y_pred),axis=-1))

1 Ответ

0 голосов
/ 17 мая 2019

Keras Metrics возвращают: Значение одного тензора, представляющее среднее значение выходного массива по всем точкам данных. в соответствии с doc

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...