首页 > 解决方案 > 使用 Keras LSTM 预测 10+ 类:model.predict 的标签输出不一致

问题描述

我正在使用 keras bi-lstm 来预测 14 个类。这是我的标签索引:

label_index=`{'1':0,'2':1,'D':2,'7':3,'8':4,'9':5,'10':6,'11':7,'12':8,'13':9,'14':10,'15':11,'16':12,'17':13}`

这是我的模型设置的一部分:

model.add(Bidirectional(LSTM(64)))
model.add(Dropout(0.5))
model.add(Dense(14, activation='softmax'))

model.compile('adam', 'sparse_categorical_crossentropy', metrics=['accuracy'])

Dense 函数中的“14”是类数。当我查看 的标签分布时pred = model.predict(x_test, verbose=0),我发现:

Counter({'1': 54,
         '10': 88,
         '11': 5,
         '12': 2,
         '13': 6,
         '14': 5,
         '3': 65,
         '4': 5,
         '5': 3,
         '6': 28,
         '7': 10,
         '8': 3,
         '9': 3})

这个“14”是从哪里来的???它不在我的索引中。而且没有“0”!我猜在多类情况下, kera.predict 不能输出零。我应该为“pred”中的每个元素减去 1 吗?

标签: pythontensorflowkeraslstmmulticlass-classification

解决方案


推荐阅读