我在这个项目中快疯了。这是使用keras中的lstm进行多标签文本分类。我的模型如下:
只是我的准确率太低了...使用二元交叉熵可以获得很好的准确率,但结果是错误的!!!转换为分类交叉熵后,准确率非常低。你有什么建议吗?
以下是我的代码:GitHub 项目-多标签文本分类
model = Sequential()
model.add(Embedding(max_features, embeddings_dim, input_length=max_sent_len, mask_zero=True, weights=[embedding_weights] ))
model.add(Dropout(0.25))
model.add(LSTM(output_dim=embeddings_dim , activation='sigmoid', inner_activation='hard_sigmoid', return_sequences=True))
model.add(Dropout(0.25))
model.add(LSTM(activation='sigmoid', units=embeddings_dim, recurrent_activation='hard_sigmoid', return_sequences=False))
model.add(Dropout(0.25))
model.add(Dense(num_classes))
model.add(Activation('sigmoid'))
adam=keras.optimizers.Adam(lr=0.04)
model.compile(optimizer=adam, loss='categorical_crossentropy', metrics=['accuracy'])
只是我的准确率太低了...使用二元交叉熵可以获得很好的准确率,但结果是错误的!!!转换为分类交叉熵后,准确率非常低。你有什么建议吗?
以下是我的代码:GitHub 项目-多标签文本分类
softmax
并检查答案,你可以使用binary_crossentropy
。我已经编辑过了。 - Upasana Mittal