Я получаю эту ошибку, и очень странно, что первая эпоха была завершена удовлетворительно, а размеры не совпадают во второй эпохе. All input arrays (x) should have the same number of samples. Got array shapes: [(52, 224, 224, 3), (64, 35)]
см. Скриншот ошибки
Я впервые использую ImageDataGenerator () с методом flow_from_directory (), чтобы получить все изображения из набора данных. Это часть кода, где я думаю, что должна быть ошибка:
# generator function - two inputs (images and histogram vector) and one label (OCEAN labels)
def generator(dataset_path, OCEAN_histogram, batch_size):
gen = ImageDataGenerator()
gen_faces = gen.flow_from_directory(dataset_path,
target_size = (224, 224),
class_mode = None,
batch_size = batch_size,
shuffle=True)
batch_OCEAN = np.zeros((batch_size, 5))
batch_histogram = np.zeros((batch_size, n_features))
# loop where we continually feed the nn in batches
while True:
# it takes the next batch of images
batch_faces = gen_faces.next()
# list with all images names in the current batch
all_faces = [f.rsplit('.', 1)[0].rsplit('/', 1)[1] for f in gen_faces.filenames]
for i in range(batch_size):
batch_OCEAN[i] = OCEAN_histogram[all_faces[i]][0]
batch_histogram[i] = OCEAN_histogram[all_faces[i]][1]
# shapes : batch_faces -> (64, 224, 224, 3) batch_histogram -> (64, 35) batch_OCEAN -> (64, 5)
yield [ batch_faces, batch_histogram ], batch_OCEAN
train_generator = generator(train_path, train_OCEAN_histogram, batch_size)
validation_generator = generator(validation_path, validation_OCEAN_histogram, batch_size)
# Train model on dataset
print("[INFO] training model...")
custom_vgg_model.fit_generator(train_generator, epochs = 50, steps_per_epoch = train_size//batch_size,
validation_data = validation_generator,
validation_steps = validation_size//batch_size, verbose = 1)
Как эта ошибка возможна? Любые идеи, пожалуйста?
Заранее спасибо!