Tensorflow 我正在研究多类文本分类,如何将一个热编码传递到keras模型,以便在ytrainset中进行训练?

Tensorflow 我正在研究多类文本分类,如何将一个热编码传递到keras模型,以便在ytrainset中进行训练?,tensorflow,machine-learning,keras,text-classification,Tensorflow,Machine Learning,Keras,Text Classification,我正在研究文本分类问题。我的ytrain中有9个标签,但当我将xtrain和ytrain传递给model时,它给了我一个错误:它应该有形状(1),但得到(9)。我的ytrain尺寸是(32,9)。Ytrain的照片附于此: 以下是我的模型: model = Sequential() model.add(layers.Embedding(input_dim=vocab_size, output_dim=embedding_dim, input_length=max_len)) model.add

我正在研究文本分类问题。我的ytrain中有9个标签,但当我将xtrain和ytrain传递给model时,它给了我一个错误:它应该有形状(1),但得到(9)。我的ytrain尺寸是(32,9)。Ytrain的照片附于此:

以下是我的模型:

model = Sequential()
model.add(layers.Embedding(input_dim=vocab_size, output_dim=embedding_dim, input_length=max_len))
model.add(layers.Conv1D(filters=100, kernel_size=4))
model.add(layers.GlobalMaxPooling1D())
model.add(layers.Dense(12, activation='softmax'))
model.compile(loss='sparse_categorical_crossentropy', optimizer='adam', metrics=['accuracy',precision,recall,f1])
model.summary()
回溯: 检查目标时出错:预期密集_9具有形状(1),但获得具有形状(9)的数组


''

您应该将
y\u train
转换为一个热编码。例如,您可以使用。

我在问其他问题。我的数组已经是一种热编码形式。。请查看ytrain的上图。如何将这些数组传递给xtrain中有32行的模型。在一个热编码的ytrain中,我也有32行,但这里也有9列,我想,损失函数中的问题。您是否可以尝试使用
categorical\u crossentropy
,而不是
sparse\u categorical\u crossentropy
。另外,最后一个密集层shout的输出维度等于类的数量=您有9个类,但输出是12个。