это вызывает ошибку «Вход 0 несовместим со слоем conv2d_1: ожидаемый ndim = 4, найденный ndim = 5»

чную создаю свой набор данных из числа изображений размером 384x286 ч / б.

Я загружаю изображение так:

x = []
for f in files:
        img = Image.open(f)
        img.load()
        data = np.asarray(img, dtype="int32")
        x.append(data)
x = np.array(x)

это приводит к тому, что x является массивом (num_samples, 286, 384)

print(x.shape) => (100, 286, 384)

читая документацию keras и проверяя мой бэкэнд, я должен предоставить шагу свертки входную форму, состоящую из (строк, столбцов, каналов)

так как я не знаю произвольно размер выборки, я бы ожидал передать в качестве входного размера, что-то похожее на

( None, 286, 384, 1 )

Модель построена следующим образом:

model = Sequential()
model.add(Conv2D(32, kernel_size=(3, 3), activation='relu', input_shape=input_shape))
# other steps...

передача как input_shape (286, 384, 1) вызывает:

Ошибка при проверке ввода: ожидалось, что conv2d_1_input имеет 4 измерения, но получил массив с формой (85, 286, 384)

передача as_input_shape (None, 286, 384, 1) приводит к:

Вход 0 несовместим со слоем conv2d_1: ожидаемый ndim = 4, найденный ndim = 5

Что я делаю неправильно ? Как мне изменить форму входного массива?

Ответы на вопрос(3)

Ваш ответ на вопрос