【问题标题】:why did i got 2 different losses for sparse_categorical_crossentropy and categorical_crossentropy?为什么我的 sparse_categorical_crossentropy 和 categorical_crossentropy 有 2 种不同的损失?
【发布时间】:2020-11-02 14:50:16
【问题描述】:

我训练了一个用于多类分类的模型。有三个班。在第一种方法中,我通过将类转换为单热向量并训练具有损失函数、分类交叉熵的模型来训练模型,我在 1000 个 epoch 中实现了 0.07 的损失。但是当我使用相同的方法时,但是这次我没有将类转换为 one-hot 向量,而是使用 sparse_categorical_crossentropy 作为损失函数,这次我在 1000 个 epochs 中实现了 0.05 的损失。这是否意味着 sparse_categorical_crossentropy 是比 categorical_crossentropy 更好?

谢谢!

【问题讨论】:

    标签: python deep-learning tf.keras loss-function


    【解决方案1】:

    由于损失的定义本身发生了变化,因此您无法比较两个损失函数的损失。您可以在相同的测试数据集上比较性能。

    通常使用sparse_categorical_crossentropy 当你的类是互斥的(例如当每个样本完全属于一个类时)和categorical_crossentropy 当一个样本可以有多个类或标签是软概率(如 [0.5, 0.3, 0.2 ])。

    由于标签的表示发生了变化,您得到了不同的损失,实际上在 keras 中,sparse_categorical_crossentropy 被定义为具有整数目标的分类crossentropy

    【讨论】:

      猜你喜欢
      • 2021-10-09
      • 2023-04-03
      • 2019-12-14
      • 2020-08-09
      • 2020-08-07
      • 1970-01-01
      • 2019-04-15
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多