gpt4 book ai didi

python-3.x - 在 tf.keras 中创建自定义损失函数

转载 作者:行者123 更新时间:2023-12-04 01:43:01 26 4
gpt4 key购买 nike

我正在学习深度学习中使用的各种损失函数。我需要一些帮助在 tensorflow 中实现自定义损失函数。为了具体了解这一点,我想以实现自定义二进制交叉熵损失为例。

非常感谢您的帮助

问候

编辑:以下是我实现的损失函数:

def custom_loss(eps):
def loss(y_true, y_pred):
ans = -eps*(y_true*tf.log(y_pred) + (1-y_true)*tf.log(y_pred))
return ans
return loss

一段时间后返回的不是数字。我尝试在日志功能中添加少量。此外,我已将优化器更改为 adam。

最佳答案

我认为每当 y_pred == 0 时,这是数值计算的问题。

请注意,log(0) 是未定义的,因此,为了使我们的损失计算在数值上稳定,我们倾向于执行 tf.log(y_pred + epsilon),其中epsilon 是一个非常小的数字,对损失的影响可以忽略不计,但在尝试除以零(或执行 log(0))时避免返回 NaN。

我假设这就是您使用 eps 参数的目的,但您应该将它放在对 tf.log() 的调用中。

也许是这样的:

def custom_loss(eps):
def loss(y_true, y_pred):
ans = -(y_true*tf.log(y_pred + eps) + (1-y_true)*tf.log(y_pred + eps))
return ans
return loss

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

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