gpt4 book ai didi

python - keras 中的自定义 RMSPE 损失函数

转载 作者:行者123 更新时间:2023-12-03 08:26:48 25 4
gpt4 key购买 nike

我试图在 keras 中定义我自己的损失函数,即均方根百分比误差。 RMSPE 定义为:equation我将损失函数定义为:

from keras import backend as K
def rmspe(y_true, y_pred):
sum = K.sqrt(K.mean(K.square( (y_true - y_pred) /
K.clip(K.abs(y_true),K.epsilon(),None) ), axis=-1) )
return sum*100.
但是经过几次迭代后,它给了我 nan 的损失值。有人可以指出我做错了什么。谢谢

最佳答案

你剪掉分母很好。但是当我检查我的机器时,tensorflow 后端的 epsilon 是 1e-7。因此,当您除以裁剪值时,您仍然可以将梯度扩大一千万。您要做的是剪辑您的渐变 您可以使用 clipvalueclipnorm优化器的参数:

optimizer = SGD(clipvalue=10.0)
或者
optimizer = SGD(clipnorm=2.0)
您必须根据您拥有的输出变量的数量以及数据中的噪声程度来稍微调整该值。

关于python - keras 中的自定义 RMSPE 损失函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42365367/

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