Напишите собственный категориальный убыток, используя формулу Хаврда-Чарвата

#function #loss

Вопрос:

Добрый день всем вам, в настоящее время мне трудно написать свою собственную функцию категориальных потерь, используя формулу Хаврды Чарвата. Я попробовал следующий код, но он дает мне странные значения (например, отрицательные).

 def get_havrda_charvat_categorical_cross_entropy(alpha=2.0):
    def havrda_charvat_categorical_cross_entropy(p_true,p_pred,from_logits=False):
        calculation=0
        if alpha==1:
            return 'categorical_crossentropy'
        else:
            if not from_logits:
                p_pred = tf.clip_by_value(p_pred, 0.0000001,0.9999999)
                calculation =tf.math.reduce_mean(p_true*tf.math.pow(p_pred,alpha-1.0)-(1.0-p_true)*tf.math.pow(1-p_pred,alpha-1.0))/(alpha-1.0)
        return  tf.reduce_sum(calculation)
    return havrda_charvat_categorical_cross_entropy
 

Не знаете ли вы, как адаптировать формулу, чтобы сделать ее правильной категориальной функцией потерь, и где я ошибаюсь?

Заранее всем вам спасибо,