当我使用predict_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')