我已经为每个类创建了权重,以便为每个类的损失函数设置权重。我选择的损失函数是一个自定义的分类交叉熵。我已经在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),当我减小它时,总损失变成一个形状()。所以,如果有人能提出一个类加权分类损失函数,那就太好了。
暂无答案!
目前还没有任何答案,快来回答吧!