Почему keras не принимает данные?

Есть массив NumPy с 300 изображениями, каждое изображение представляет собой одномерный массив из 3145728 элементов, и при попытке обучить модель на этих данных:

model.fit(data, features, batch_size=64, epochs=3)

Возникает следующая ошибка:

ValueError: Error when checking input: expected conv2d_input to have 4 dimensions, but got array with shape (300, 1)

Как мне переделать массив данных, чтобы keras его принял?


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

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

Судя по названию слоя: conv2d_input - это слой двумерной свертки Conv2D, который ожидает на вход 4х-мерный тензор с размерностями:

4+D tensor with shape: batch_shape + (channels, rows, cols) if data_format='channels_first'

или

4+D tensor with shape: batch_shape + (rows, cols, channels) if data_format='channels_last'

Поэтому либо вы будете подавать на вход тензор правильной размерности, либо вам придется изменить архитектуру НС (Нейронной Сети) таким образом, чтобы она могла работать с картинками "выпрямленными" в вектора.

→ Ссылка