Я пытаюсь разделить мои изображения (набор данных о кроликах и собаках) на x_train
, x_val
, y_train
, y_val
и тестирование.
Вот что я сделал:
Я поместил фотографии каждого класса (собак / кроликов) в отдельные папки в двух папках: обучение и тестирование.
Учебный каталог-> Каталог зайчиков -> Картинки зайчиков
Учебный каталог-> Каталог щенков -> Изображения щенков
Каталог тестирования-> Каталог зайчиков -> изображения зайчиков
Каталог тестирования-> Каталог щенков -> Изображения щенков
Я использовал следующий код для получения изображений из папок:
training_data = train_datagen.flow_from_directory('./images/train',
target_size = (28, 28),
batch_size = 86,
class_mode = 'binary',
color_mode='rgb',
classes=None)
test_data = test_datagen.flow_from_directory('./images/test',
target_size = (28, 28),
batch_size = 86,
class_mode = 'binary',
color_mode='rgb',
classes=None)
Что дает мне следующий вывод:
Найдено 152 изображения 2 классов.
Найдено 23 изображений, относящихся к 2 классам.
Вопрос 1: Я не был уверен, как определить мои метки здесь (y_val
/ y_train
) или нужно ли мне (но похоже, что большинство моделей имеют y_val
/ y_train
).
Вопрос 2: Я пытался запустить
x_train, x_val = train_test_split(training_data, test_size=0.1)
Чтобы хотя бы разделить мои тренировочные данные на валидацию / тренировку, но когда я попытался запустить свою модель, она выдала мне следующую ошибку:
history=classifier.fit_generator(x_train,
steps_per_epoch = (8000 / 86),
epochs = 2,
validation_data = x_val,
validation_steps = 8000/86,
callbacks=[learning_rate_reduction])
ValueError: validation_data
должен быть кортежем (val_x, val_y, val_sample_weight)
или (val_x, val_y)
.
Найдено: [(массив ([[[0.5058095, 0.46913707, 0.42369673], ...