【问题标题】:Tensorflow keras model throwing error for categorical classificiation用于分类分类的 TensorFlow keras 模型抛出错误
【发布时间】:2021-11-30 18:53:05
【问题描述】:

问题已使用一种热编码解决。

【问题讨论】:

  • 请不要以这种方式编辑问题。您的问题的其他查看者不会从您的编辑中获得任何有意义的信息。如果您想提及已解决的问题,请接受适当的答案。

标签: numpy keras deep-learning tensorflow2.0


【解决方案1】:

这是因为您将标签用作整数(例如 0,1,2,..9)形状 (batch_size, 1) 并且模型的输出大小是 (batch_size,10) 即每个类的概率。 要么更改one_hot 中的标签,这将更改大小为[num_classes] 的向量中的单个标签。语法如下所示。

tf.keras.utils.to_categorical(
    y, num_classes=None, dtype='float32'
)

(在你的情况下num_classes=10

或使用@AloneTogether 提到的需要整数标签的SparseCategoricalCrossentropy。语法如下。

tf.keras.losses.SparseCategoricalCrossentropy(
    from_logits=False, reduction=losses_utils.ReductionV2.AUTO,
    name='sparse_categorical_crossentropy'
)

【讨论】:

  • 我已经更新了我的帖子,我按照一个热编码变量的建议进行了更改。对于准确性和损失,我得到了非常奇怪的值。
猜你喜欢
  • 1970-01-01
  • 2017-10-25
  • 1970-01-01
  • 2018-11-29
  • 2021-05-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-01-26
相关资源
最近更新 更多