Я пытаюсь реализовать эту настраиваемую функцию потерь в keras.
Мои целевые функции:
- Соглашение о консенсусе
перекрестная энтропия
где fi - вывод различных слоев, ui - веса.
#f123 = concatenate([f1, f2, f3])
#f = Dense(1, activation="sigmoid")(f123)
def consensus(f1,f2,f3, f):
def loss(y_true, y_pred):
CP = K.square(f1-f2) + K.square(f2-f3) + K.square(f3-f1)
CE = tf.keras.losses.BinaryCrossentropy()
L = CE(y_true, f)
return CP + L
return loss
где f -
Я получаю следующий журнал ошибок:
raise ValueError ('Операция имеет None
для градиента.' ValueError: Операция имеет None
для градиента. Убедитесь, что все ваши операции имеют определенный градиент (т. Е. Различимы). Общие операции без градиента: K.argmax, K.round, K.eval.