керас - среднеквадратическая функция потери погрешности для вывода трехмерного временного ряда - PullRequest
0 голосов
/ 03 марта 2019

Я хотел бы проверить свою функцию потерь, потому что я прочитал, что есть проблемы с функцией потерь mse в кератах.Рассмотрим модель lstm в кератах, предсказывающую трехмерные временные ряды как мультицелевые (y1, y2, y3).Предположим, что форма пакета выходных последовательностей имеет вид (10, 31, 1). Будет ли функция потерь ниже принимать квадратичную разницу между прогнозируемым и истинным выходом, а затем принимать среднее значение из 310 выборок, что приведет к единственному значению потерь?Как эта операция произойдет, если 3 выхода будут объединены как (10, 31, 3)

def mse(y_true, y_pred):
            return keras.backend.mean(keras.backend.square(y_pred - y_true), axis=1)

1 Ответ

0 голосов
/ 03 марта 2019

Если вы хотите получить одно значение убытка, вам не нужно устанавливать axis.

import keras.backend as K

def mse(y_true, y_pred):
    return K.mean(K.square(y_pred - y_true))

y_true = K.random_normal(shape=(10,31,3))
y_pred = K.random_normal(shape=(10,31,3))

loss = mse(y_true, y_pred)
print(K.eval(loss))

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