将数字输出标签转换为keras中的分类向量

converting numerical output labels to categorical vectors in keras

我正在 Keras 中创建一个深度学习多class化模型,我已经将输出标签训练集 y_train 从 1 到 14 的数值转换为如下所示的输出向量[0,0,1,0,0,0,0,0,0,0,0,0,0,0,0] => representing the number 2。这是我在 python (keras) 中使用的代码:

from keras.utils import to_categorical
y_train = to_categorical(y_train)

但是,因为它将这些输出标签转换为长度为 15 而不是 14 的向量,因为它也添加了零作为潜在输出。我原来的 numpy 数组 y_train 看起来像这样: [1,8,9,7,2,2,8...] 应该将其转换为长度为 14 而不是 15 的向量,以避免在训练模型时造成额外损失。有没有一种简单的方法可以避免使用零作为潜在输出class?

num_classes = 14作为to_categorical的参数给出错误信息)

如果您的标签是从 1 到 14,请尝试这个简单的技巧:

y_train = to_categorical(np.asarray(y_train)-1)