как разделить выборку на 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 шт):
Если я вас правильно понял, и "класс" - это выход, т.е. результат работы вашей нейромодели то просто проверяете работу построенной модели и считаете не только "угадала" ли она или нет, но и делаете это отдельно по каждому "классу", сравнивая полученную метку с имеющейся. И, кстати, вы надеюсь, знаете, что учить модель на данных только одного класса - нельзя.
А вот зачем вы делите данные на три датасета - непонятно. Обычно работают с двумя - учебной и тестовой выборками. Третья может появиться разве что если вы делаете кросс-валидацию.