Создание пользовательских потерь, которые не включают сетевой вывод (y_pred) - PullRequest
0 голосов
/ 28 сентября 2019

Я пытаюсь создать пользовательскую функцию потерь, которая не учитывает мой реальный выход нейронной сети:

def loss(y_true, y_pred):
    y_pred = np.ones([20])#batch size is 20
    y_pred = K.variable(y_pred)
    return K.mean(K.square(y_pred - y_true))

Да, я знаю, какая идея стоит за градиентным спуском и обратным распространением ... ненужны комментарии и мнение об этой функции потерь.

y_true и y_pred являются формами массивов [20,] со значениями от <0,1>

при попытке начать обучение с использованием функции fit (), полученнойэта ошибка:

ValueError: Операция имеет None для градиента.Пожалуйста, убедитесь, что все ваши операции имеют определенный градиент (то есть являются дифференцируемыми).Обычные операции без градиента: K.argmax, K.round, K.eval.

Как это возможно, что среднеквадратическая ошибка не дифференцируема?Я предполагаю, что что-то не так с моей функцией потерь, но не уверен, что именно (модель успешно скомпилирована).Пожалуйста, помогите мне исправить мою функцию потери.

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