【问题标题】:How can I define custom labels value when using sparse_categorical_crossentropy?使用 sparse_categorical_crossentropy 时如何定义自定义标签值?
【发布时间】:2019-11-18 18:03:07
【问题描述】:

我的模型是用这段代码编译的

model.compile(optimizer='adam',
              loss='sparse_categorical_crossentropy',
              metrics=['sparse_categorical_accuracy'])

在训练期间,我收到了这个错误

tensorflow.python.framework.errors_impl.InvalidArgumentError:收到的标签值 5 超出了 [0, 5) 的有效范围。

我的标签是1,2,3,4,5,即[1,5],而不是[0, 5)。 如何为这个模型设置标签?

【问题讨论】:

  • 在传递给模型之前从标签中减去 1。
  • 这是否意味着稀疏标签必须编码为基于 0 的索引?
  • 是的;索引都是从 0 开始的。

标签: tensorflow machine-learning keras multiclass-classification tf.keras


【解决方案1】:

您需要将标签编码为[0, 4],它是从零开始的,而不是从一开始的。这是因为为了恢复类索引,使用了argmax函数,该函数返回最大值对应的数组索引,它将从零开始。

【讨论】:

  • 一些实现和库允许标签输入,所以我认为可能有某种方式,谢谢你提到argmax。
猜你喜欢
  • 2012-07-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多