У меня есть обученная модель CNN, которая должна предсказать одну из 5 эмоций: гнев, отвращение, страх, нейтральность или грусть. Я использую
ImageDataGenerator(rescale = 1./255,
shear_range=0.1,
zoom_range=0.1,
horizontal_flip=True)
и
low_from_directory('../large-dataset-copy/training/',
color_mode='grayscale',
target_size=(48,48),
class_mode = 'categorical',
batch_size = 32)
для чтения и преобразования изображений.
После обучения я не знаю, как извлечь соответствующий класс что предсказывает модель. Я использую следующий код для чтения и преобразования изображения:
def test_data(img_path):
img_array = cv2.imread(img_path, cv2.IMREAD_GRAYSCALE)
new_img = cv2.resize(img_array,(48,48))
return new_img.reshape(-1,48,48,1)
img = test_data('Abdullah_Gul_0006.jpg')
emotionClassifier = k.models.load_model('moedel.h5',compile=False)
emotion = emotionClassifier.predict(img)
print(emotion)
, и это вывод, который я получаю всегда : [[0. 1. 0. 0. 0.]]
Также вывод из print (test_data.class_indices) равен { 'гнев': 0, 'отвращение': 1, «страх»: 2, «нейтральный»: 3, «грусть»: 4}