TensorFlow中,categorical_crossentropy和sparse_categorical_crossentropy都是交叉熵损失函数,它们的数学意义相同,区别仅在于适用于不同的类别标签编码格式。
当输入数据的类别标签采用独热编码(OneHot Encoding)格式时,模型应采用 categorical_crossentropy 损失函数;当输入数据的类别标签采用序号编码(Label Encoding)格式时,模型应采用 sparse_categorical_crossentropy 损失函数。
以水果分类任务为例:
标签类别 | 独热编码 | 序号编码 |
---|---|---|
橘子 | (1, 0, 0, 0, 0) | 0 |
苹果 | (0, 1, 0, 0, 0) | 1 |
香蕉 | (0, 0, 1, 0, 0) | 2 |
梨 | (0, 0, 0, 1, 0) | 3 |
西瓜 | (0, 0, 0, 0, 1) | 4 |