Я использую 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'])
"14" в функции Dense - это количество классов.Когда я посмотрел на распределение меток 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 не может вывести ноль.Должен ли я вычесть 1 для каждого элемента в моем "пред"?