如何在自定义分类交叉熵损失函数中加权类?

ktca8awb  于 2021-08-20  发布在  Java
关注(0)|答案(0)|浏览(221)

我已经为每个类创建了权重,以便为每个类的损失函数设置权重。我选择的损失函数是一个自定义的分类交叉熵。我已经在tensorflow中实现了:

def class_weighted_categorical_loss(weights):
    def loss(y_true, y_pred):
        y_pred = tf.math.log(y_pred)
        suppresed_logs = tf.math.multiply(y_pred, y_true)
        loss =  -1*tf.math.multiply(suppresed_logs, weights)
        sum_loss = tf.math.reduce_sum(loss)

    return loss

权重向量的形状为(26,)。
以下是我回溯的最后一部分:
c:\users\kenne\miniconda3\envs\homachinelearning\lib\site packages\tensorflow\python\framework\tensor\u util.py:444 make\u tensor\u proto raise valueerror(“不支持无值”)

ValueError: None values not supported.

损失有一个形状(none,47,26),当我减小它时,总损失变成一个形状()。所以,如果有人能提出一个类加权分类损失函数,那就太好了。

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题