Text Keras predict_proba预测每个输入的相同概率(LSTM)

Text Keras predict_proba预测每个输入的相同概率(LSTM),text,keras,lstm,text-classification,predict,Text,Keras,Lstm,Text Classification,Predict,当我使用predict\u proba时,我的Keras序列模型对所有输入产生几乎相同的预测 似乎模型什么也学不到,因为在训练期间损失几乎保持不变,并且预测的概率大致与我的标签的类别分布相匹配 输出: [[ 0.12883131 0.44906539 0.42210329] [ 0.12883131 0.44906539 0.42210332] [ 0.12883131 0.44906539 0.42210329] ..., [ 0.12883131 0.44906539

当我使用
predict\u proba
时,我的Keras序列模型对所有输入产生几乎相同的预测

似乎模型什么也学不到,因为在训练期间损失几乎保持不变,并且预测的概率大致与我的标签的类别分布相匹配

输出:

[[ 0.12883131  0.44906539  0.42210329]
 [ 0.12883131  0.44906539  0.42210332]
 [ 0.12883131  0.44906539  0.42210329]
 ..., 
 [ 0.12883131  0.44906539  0.42210329]
 [ 0.12883131  0.44906539  0.42210332]
 [ 0.12883131  0.44906539  0.42210332]]
我试图解决一个文档分类任务,我的输入是一个整数序列,它表示从短文本接收到的单词标识。 这是一个包含3个类的多类问题(如您所见)

我的模型参数有什么问题吗

型号:

embedding_size = 200
model_cat_cross = Sequential()
# Input Layer
model_cat_cross.add(Embedding(input_dim=vocab_size, output_dim=32))
# LSTM Layer
model_cat_cross.add(LSTM(units=embedding_size, 
                         dropout= 0.2,
                         recurrent_dropout= 0.2))
# Output Layer
model_cat_cross.add(Dense(units=labels.shape[1], 
                          activation='softmax'))
# Modellparameter
model_cat_cross.compile(loss='categorical_crossentropy', 
                        optimizer='adam', 
                        metrics=['categorical_accuracy'])
print(model_cat_cross.summary())
# Training des Modells und Cross Validierung
model_cat_cross.fit(X_train, y_train, validation_data=(X_test, y_test),
                    class_weight={0:3,1:1,2:1}, 
                    validation_split=0.1,
                    epochs=2, 
                    batch_size=32,
                    shuffle=1)
# save model to single file
#model.save('lstm_model_v1.h5')

仅仅为两个时期训练一个模型让老师们不知道,但我不应该看到损失函数中至少有一些小的变化吗?用20个纪元整夜训练它:,没有变化。这可能是输入问题吗?当使用预训练的cbow单词嵌入作为输入时,我在第一个历元中得到了约90 acc,在第十个历元中上升到约95 acc在73200个样本上进行训练,在18300个样本上进行验证,历元1/12 20ms/步-损失:0.9903-分类精度:0.4393-val损失:0.9900-val损失:0.4440…12/12分类精度:0.4416-val损失:0.9892-val损失:0.4440你看到了一些细微的变化,可能模型对于你所拥有的数据来说太简单了,你需要一个更深的。在任何情况下,这都不是编程问题,您必须始终调整模型以适合数据。