gpt4 book ai didi

tensorflow - 使用tensorflow在keras中切片损失函数的输入

转载 作者:行者123 更新时间:2023-12-04 16:06:03 24 4
gpt4 key购买 nike

在 Keras 中,我有一个 y_true 的目标向量,它适合具有一个输出神经元的网络。 y_true = [0, 1, 0, 1, 1....] 我有一些返回 [1,1,1,-5,1...]

我正在尝试将 yield 作为额外参数放入 keras 的自定义损失函数中。 Keras 只允许将两个参数传递给它(y_true 和 y_pred),但我还想传递分配给每个样本的 yield 。为此,我向 y_true 添加了第二列,其中包含这些值。

然后我尝试通过执行以下操作在损失函数中再次分离实际的 y_true(第一列)和 yield (第二列):

def custom_loss(y_true, y_pred)    
# y_true has the payoffs in the second row
payoffs = y_true[:, 1]
payoffs = K.expand_dims(payoffs, 1)
y_true = y_true[:, 0]
y_true = K.expand_dims(y_true, 1))

loss = K.binary_crossentropy(y_true, y_pred)
return loss

这是我想要做的事情的简化版本(在真实版本中,我会将 yield 整合到损失函数中)。但是对于上面的示例,我希望损失函数与直接调用 binary_cross entropy 相同,其中 y_true 仅包含 y_true(没有任何 yield )。

但是,结果不如预期,因为上述自定义损失函数的准确度值约为一半。

导致此错误的原因可能是什么?我没有正确切片 y_true 吗?

问题与 this post 中描述的内容有关(curiale 2017年12月12日的评论建议使用slice_stack,但问题是一样的)。

最佳答案

我认为问题在于我还需要自定义度量函数。

关于tensorflow - 使用tensorflow在keras中切片损失函数的输入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48732563/

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