ValueError: операция не имеет значения None для градиента. при реализации настраиваемой потери кераса между разными слоями - PullRequest
2 голосов
/ 29 мая 2020

Я пытаюсь реализовать эту настраиваемую функцию потерь в keras.

Мои целевые функции:

  1. Соглашение о консенсусе

consensus agreement

перекрестная энтропия

cross entropy

где 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 -

Я получаю следующий журнал ошибок:

error log

raise ValueError ('Операция имеет None для градиента.' ValueError: Операция имеет None для градиента. Убедитесь, что все ваши операции имеют определенный градиент (т. Е. Различимы). Общие операции без градиента: K.argmax, K.round, K.eval.

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