categorical_crossentropy用于多分类。
tensorflow2.0+中提供了计算方法:
y_true = tf.constant([[0,1,0],[0,0,1]])
# 这里的y_pred是经过softmax激活函数运算后的值
y_pred = tf.constant([[0.05,0.95,0],[0.1,0.8,0.1]])
# 如果y_pred不经过softmax激活函数,这里加上参数 from_logits=True
tf.keras.losses.categorical_crossentropy(y_true, y_pred)
# 输出:<tf.Tensor: shape=(2,), dtype=float32, numpy=array([0.05129331, 2.3025851 ], dtype=float32)>
# 对应计算:
-1 * ln(0.95)
-1 * ln(0.1)
本文详细介绍了在TensorFlow2.0中如何使用categorical_crossentropy作为多分类任务的损失函数。通过实例展示了计算过程,包括y_true和经过softmax激活的y_pred的设置,并解释了当y_pred未经过softmax时需设置from_logits=True的原因。同时,解释了计算公式,即-1乘以对数概率的负值,对应于每个类别的交叉熵损失。
2555

被折叠的 条评论
为什么被折叠?



