使用 sparse_categorical_crossentropy 时如何定义自定义标签值?

How can I define custom labels value when using sparse_categorical_crossentropy?

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

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

在训练过程中,我遇到了这个错误

tensorflow.python.framework.errors_impl.InvalidArgumentError: Received a label value of 5 which is outside the valid range of [0, 5).

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

您需要将标签编码为 [0, 4],即 zero-based,而不是 one-based。这是因为恢复class个索引,使用了argmax函数,返回最大值对应的数组索引,即zero-based.