gpt4 book ai didi

keras - 如何在 Keras 中进行权重不平衡类的交叉熵损失?

转载 作者:行者123 更新时间:2023-12-02 00:45:01 25 4
gpt4 key购买 nike

使用 Keras 在高度不平衡的数据集上进行图像分割,我想按照每个类中的像素值的比例重新加权类的权重,如所述 here 。如果 a 具有 weights = [0.8, 0.2] 的二进制类,我如何修改 K.sparse_categorical_crossentropy(y_true, y_pred) 以根据类重新加权损失像素属于哪个?

输入的形状为 (4, 256, 256, 1) (批处理、高度、宽度、 channel ),输出是由 0 和 1 组成的向量 (4, 65536, 1)(正类和负类)。模型和数据与here类似。不同之处在于图像是灰度的,而掩模是二进制的(2类)。

最佳答案

这是我用于语义分割项目的自定义损失函数。它是根据 keras/backend/tensorflow_backend.py 中的 categorical_crossentropy 函数修改而来的。 .

def class_weighted_pixelwise_crossentropy(target, output):
output = tf.clip_by_value(output, 10e-8, 1.-10e-8)
weights = [0.8, 0.2]
return -tf.reduce_sum(target * weights * tf.log(output))

请注意,我的最终版本没有使用类权重 - 我发现它鼓励模型使用代表性不足的类作为不确定的图像补丁的填充物,而不是做出更现实的猜测,从而损害性能。

关于keras - 如何在 Keras 中进行权重不平衡类的交叉熵损失?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46504371/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com