文本二进制分类错误:logits 和标签必须具有相同的形状

阿尔哈努夫

我正在尝试建立一个模型来使用 nn 将我的文本分类为讨厌 (1) 或不讨厌 (0)。

关于数据的信息,它由推文和类别标签组成(讨厌(1)或不喜欢(0)):

sentences = df['comment']
y = df['isHate']

sentences_train, sentences_test, train_y, test_y = train_test_split(sentences, y, test_size=0.25, random_state=42)

文本通过了很多 Word 嵌入,我在推文上应用了填充序列,在标签上应用了 LabelEncoder。

问题是当我运行时出现此错误:

ValueError: logits and labels must have the same shape ((None, 1) vs (None, 2))

模型代码:

emb_dim = 16

model = Sequential()
model.add(Embedding(input_dim=vocab_size, output_dim= emb_dim, input_length=maxlen))
model.add(Flatten())
model.add(Dense(2, activation='relu'))
model.add(Dense(1, activation='sigmoid'))

model.compile(optimizer='adam',
              loss='binary_crossentropy',
              metrics=['accuracy'])
model.summary()

问题发生在这部分:

history = model.fit(X_train, y_train,
                    batch_size=32,
                    epochs=15,
                    validation_data=(X_test, y_test))

有什么帮助吗?

弗雷特拉

在您的代码中:

model.add(Dense(1, activation='sigmoid'))

您的最后一个密集层只有 1 个单元,但您的标签是一个由 2 个类组成的热编码。所以你需要改变:

model.add(Dense(2, activation='softmax'))

您还需要更改损失函数,因为它们是单热编码的

loss='categorical_crossentropy'

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

LSTM 错误 - “logits 和标签必须具有相同的形状”

ValueError:logits 和标签必须具有相同的形状

Keras ValueError:logits 和标签必须具有相同的形状 ((None, 32, 17) vs (None, 17))

ValueError:logits和标签必须具有相同的形状((1、7、7、2)与(1、2))

Tensorflow估计器ValueError:logits和标签必须具有相同的形状((?,1)vs(?,))

Tensorflow ValueError:logits和标签必须具有相同的形状((None,42)vs(None,1))

Keras:ValueError:logits和标签必须具有相同的形状((None,2)vs(None,1))

ValueError:logits 和标签必须具有相同的形状 ((None, 2) vs (None, 1))

模型返回错误 - ValueError:logits 和标签必须具有相同的形状 ((None, 18) vs (None, 1))

ValueError:`logits` 和 `labels` 必须具有相同的形状

logits和标签必须具有相同的第一尺寸,logits形状[3662,5]和标签形状[18310]

ValueError:logits和标签必须具有相同的形状((None,6,8,1)vs(None,1))

ValueError:logits和标签必须具有相同的形状((None,23,23,1)vs(None,1))

Keras 深度学习 ValueError:logits 和标签必须具有相同的形状 ((None, 2) vs (None, 1))

是否有方便的方法将文件分类为“二进制”或“文本”?

具有附加维度的二进制分类(子类)

什么是多标签二进制分类?

FF神经网络和二进制分类

Keras和LSTM中的二进制分类

用于二进制文本分类的单热编码标签已经是 0 和 1?

一类svm分类错误:分类指标无法处理未知目标和二进制目标的混合

如何解决“logits 和标签必须具有相同的第一维”错误

在具有稀疏正标签的二进制分类序列问题上平衡样本

Python Sklearn“ ValueError:分类指标无法处理多类多输出和二进制目标的混合”错误

遇到错误:分类指标无法处理多类多输出和二进制目标的混合

Matplotlib 错误“x 和 y 必须具有相同的第一维,但具有形状 (1,) 和 (6,)”

使用PyTorch进行二进制分类的目标和输出形状/类型

从InputStream读取文本和二进制数据

ValueError:分类指标无法处理多标签指标和二进制目标的混合