это вызывает ошибку «Вход 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
Что я делаю неправильно ? Как мне изменить форму входного массива?