Я пытаюсь создать путаницу из классификации. Y_pred_one_hot.shape и Y_true_one_hot.shape возвращают (11,13), а y_pred и y_true возвращают список из 13 целых чисел. Однако я получаю сообщение об ошибке, вычисляя cm_df: «Форма переданных значений (10,10), индексы подразумевают (13, 13)».
model.load_weights('best_model.h5')
# Test
Y_pred_one_hot = model.predict_generator(generator=test_set, verbose=1)
y_pred = np.argmax(Y_pred_one_hot, axis=1)
print(Y_pred_one_hot.shape)
print(y_pred)
# Get GT labels
Y_true_one_hot = np.squeeze(np.array([test_set.__getitem__(i)[1] for i in range(len(test_set))]))
y_true = np.argmax(Y_true_one_hot, axis=1)
print(Y_true_one_hot.shape)
print(y_true)
# Assessment
conf_mat = confusion_matrix(y_true, y_pred)
print("Confusion Matrix")
print(conf_mat)
class_names = ["Barge", "Bulk Carrier", "Cargo Ship", "Ferry/Passenger V.", "Fishing V.", "Motorboat", "Support/Naval Small Craft", "Naval Warship", "Sailing V.", "Tanker", "Tugboat", "Yacht", "None"]
cm_df = pd.DataFrame(conf_mat, index=class_names, columns=class_names)
Это сообщение об ошибке, которое я получаю.
