在 keras 中计算损失函数之前,横向扩展到 0 到 1 之间

数据挖掘 深度学习 喀拉斯 美国有线电视新闻网
2022-03-10 16:36:48

在计算 keras 中的损失函数之前,有没有办法缩放 CNN 的输出。它也必须适用于批次。具体来说,我正在训练图像,输出是整个批次的每个像素的概率图。然后我用地面实况数据计算损失函数。问题在于,在某个中间阶段训练期间的预测输出介于 0.02 到 1e-4 之间,而地面实况像素介于 0 和 1 之间,因此损失函数不会惩罚看起来与地面实况不相似的像素。我通过可视化某个中间阶段的输出与地面实况数据之间的平方误差来得到这一点。在此处输入图像描述

1个回答

使用 Lambda 层

def scale(tensor):
    tensor = (tensor - K.min(tensor)+1e-20)/(K.max(tensor)-K.min(tensor)+1e-10)
    return tensor

scaled_density_pred = Lambda(scale, name="scale_layer")(density_pred)