Пользовательская функция потерь с расчетом градиента - PullRequest
0 голосов
/ 26 апреля 2019

Я пытаюсь создать пользовательскую функцию потерь в Керасе.Я хочу вычислить функцию потерь на основе входных данных и прогнозируемого выхода нейронной сети.Я создал пользовательскую функцию потерь, которая принимает y_true, y_pred и t в качестве аргументов.t - это переменная, которую я хотел бы использовать для вычисления пользовательской функции потерь.У меня есть две части в функции потерь (пожалуйста, обратитесь к приложенному изображению)

Я могу создать первую часть функции потерь (которая является среднеквадратичной ошибкой).Я хотел бы нарезать тензор y_pred и назначить его трем тензорам (y1_pred, y2_pred и y3_pred).Есть ли способ сделать это непосредственно в Keras, или я должен использовать для этого тензорный поток?Как я могу рассчитать градиент в кератах?Нужно ли создавать сеанс для вычислений loss2?

def customloss(y_true, y_pred, t):
    loss1 =  K.mean(K.square(y_pred - y_true), axis=-1)
    loss2 = tf.gradients(y1_pred, t) - y1_pred*y3_pred
    return loss1+loss2

Спасибо. enter image description here

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