Я пытаюсь создать пользовательскую функцию потерь, которая не учитывает мой реальный выход нейронной сети:
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.
Как это возможно, что среднеквадратическая ошибка не дифференцируема?Я предполагаю, что что-то не так с моей функцией потерь, но не уверен, что именно (модель успешно скомпилирована).Пожалуйста, помогите мне исправить мою функцию потери.