gpt4 book ai didi

tensorflow - 在 Tensorflow 2.0 中实现自定义损失函数

转载 作者:行者123 更新时间:2023-12-03 22:05:44 26 4
gpt4 key购买 nike

我正在构建时间序列分类模型。数据非常不平衡,所以我决定使用加权交叉熵函数作为我的损失。

Tensorflow 提供 tf.nn.weighted_cross_entropy_with_logits但我不确定如何在 TF 2.0 中使用它。因为我的模型是使用 tf.keras API 构建的,所以我正在考虑像这样创建我的自定义损失函数:

pos_weight=10
def weighted_cross_entropy_with_logits(y_true,y_pred):
return tf.nn.weighted_cross_entropy_with_logits(y_true,y_pred,pos_weight)

# .....
model.compile(loss=weighted_cross_entropy_with_logits,optimizer="adam",metrics=["acc"])

我的问题是:有没有办法直接将 tf.nn.weighted_cross_entropy_with_logits 与 tf.keras API 一起使用?

最佳答案

您可以将类权重直接传递给 model.fit功能。

class_weight: Optional dictionary mapping class indices (integers) to a weight (float) value, used for weighting the loss function (during training only). This can be useful to tell the model to "pay more attention" to samples from an under-represented class.



如:
{
0: 0.31,
1: 0.33,
2: 0.36,
3: 0.42,
4: 0.48
}

Source

编辑:
JL Meunier answer很好地解释了如何将 logits 与类权重相乘。

关于tensorflow - 在 Tensorflow 2.0 中实现自定义损失函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57414114/

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