как разделить выборку на 3 проверочных датасета?

У меня есть папка для проверки нейронной сети, я хочу ее разбить на три выборки для сети, чтобы проверить, как часто нейронная сеть ошибается на каждом классе. Как я загружал данные в обучающую модель:

from tensorflow.python.keras.preprocessing.image import ImageDataGenerator
datagen = ImageDataGenerator(rescale=1./255, rotation_range=15, width_shift_range=0.1, height_shift_range=0.1, zoom_range=0.1, horizontal_flip=True, fill_mode='nearest', validation_split=0.1)
train_generator = datagen.flow_from_directory(train_path, target_size=(img_height, img_width), batch_size=batch_size, class_mode='categorical', shuffle=True, subset='training')
validation_generator = datagen.flow_from_directory(train_path, target_size=(img_height, img_width), batch_size=batch_size, class_mode='categorical', shuffle=True, subset='validation')

Как я проверял модель:

path = '/content/drive/MyDrive/БД/распознавание 3 марок машин/данные/Автомобили/val/'
validation = datagen.flow_from_directory(train_path, target_size=(img_height, img_width), batch_size=batch_size, class_mode='categorical', shuffle=True, subset='validation')
answers = model.evaluate(validation, batch_size=batch_size)

Но как мне проверить модель на каждом классе отдельно?


Ответы (1 шт):

Автор решения: passant

Если я вас правильно понял, и "класс" - это выход, т.е. результат работы вашей нейромодели то просто проверяете работу построенной модели и считаете не только "угадала" ли она или нет, но и делаете это отдельно по каждому "классу", сравнивая полученную метку с имеющейся. И, кстати, вы надеюсь, знаете, что учить модель на данных только одного класса - нельзя.

А вот зачем вы делите данные на три датасета - непонятно. Обычно работают с двумя - учебной и тестовой выборками. Третья может появиться разве что если вы делаете кросс-валидацию.

→ Ссылка