Python LSTM用于分类,标签/目标的唯一计数与输出形状不匹配

Python LSTM用于分类,标签/目标的唯一计数与输出形状不匹配,python,tensorflow,deep-learning,categorical-data,Python,Tensorflow,Deep Learning,Categorical Data,我使用一个LSTM层来训练一个模型,将时间序列划分为7个不同的类别。我使用pandas.cut()来存储标签数据 labels = [1, 2, 3, 4, 5, 6, 7] label_datatype = tf.int8 train_df["labels"] = tf.convert_to_tensor(pd.cut(train_df["data1"], len(labels), labels=labels, ordered=True),

我使用一个LSTM层来训练一个模型,将时间序列划分为7个不同的类别。我使用
pandas.cut()
来存储标签数据

labels = [1, 2, 3, 4, 5, 6, 7]
label_datatype = tf.int8

train_df["labels"] = tf.convert_to_tensor(pd.cut(train_df["data1"], len(labels), labels=labels, 
    ordered=True), dtype=label_datatype)
所以,这里唯一的标签数是7。我使用稀疏分类交叉熵作为损失函数,因此将标签直接传递到我的LSTM模型中进行训练,而不创建一个热向量

我的问题是,网络中最后一层的输出大小应该是多少?我目前的理解是,无论我们使用稀疏还是非稀疏分类交叉熵,网络的输出都将是一个热向量,表示标签/目标。在我的示例7中,输出大小是否应该与数字唯一标签不相同?但是,网络仅在输出大小为8时进行训练。为什么呢?我似乎找不到解释为什么会这样

epochs = 10
optimizer = "adam"
loss = "sparse_categorical_crossentropy"
metrics = ["accuracy"]

#Model for Classification
model = Sequential()
model.add(LSTM(50))
model.add(Dense(len(labels) + 1, activation="softmax"))

model.compile(loss=loss, optimizer=optimizer, metrics=metrics)