gpt4 book ai didi

python - Keras 均方误差损失层

转载 作者:太空狗 更新时间:2023-10-30 01:47:58 26 4
gpt4 key购买 nike

我目前正在实现自定义损失层,在此过程中,我偶然发现了 objectives.py 文件 [1] 中均方误差的实现。我知道我在理解这种损失计算时遗漏了一些东西,因为我一直认为平均值是在每个小批量(张量的轴 0)中的每个输出的样本中单独计算的,但看起来平均值实际上是在最后一个轴上完成,在单个向量中,意味着它在输出端完成。我在处理我的自定义损失层时偶然发现了这一点,因为它需要对一些输出的损失进行折扣,因为特定位置的训练输出是特定值。无论如何,我对均方误差的理解不正确吗?为什么 Keras 会使用最后一个轴,从而将 1xn 输出向量转换为 1x1 输出向量?

谢谢。

[1] https://github.com/fchollet/keras/blob/master/keras/objectives.py#L7

最佳答案

有关 MSE 损失的代码是这样的:

def mean_squared_error(y_true, y_pred):
return K.mean(K.square(y_pred - y_true), axis=-1)

这里首先将 y_pred 和 y_true 相减,然后将结果传递给 K.square,正如预期的那样,它返回其参数的平方,然后将该结果提供给 K.mean,后者计算平均值。

所以代码显然在做它应该做的事情。至于为什么要操作最后一个轴,这与类无关,只是约定俗成。请注意,一般来说,MSE 定义中没有类。

关于python - Keras 均方误差损失层,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41707621/

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