Операция имеет `None` для градиента. Обычные операции без градиента: K.argmax, K.round, K.eval

У меня возникла проблема с отчетом о точности и отзыве, так как их значение для положительного класса намного меньше, около 15%. Поэтому, чтобы исправить это, я написал собственный код для функции потерь, который не является правильным и выдает ошибку.

def imbalancedloss (y_true, y_pred):

stacked =tensorflow.stack([y_true, y_pred])
def claculate_loss(y):
    correct=y[0]
    predict=y[0]
    if correct== 1 and predict== 0 :
        return 5
    elif correct== 0 and predict== 1:
        return 0.5
    else:
        return 0


loss_array = tensorflow.keras.backend.map_fn(claculate_loss, stacked)
return(tensorflow.keras.backend.sum(loss_array))

это будет передано в модели глубокого обучения Keras при составлении модели для "потери"

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

0 ответов

Другие вопросы по тегам