Я пытаюсь использовать функцию для добавления слоев в очень глубокий CNN, используя керасы.Вот моя функция:
def add_layer(input_shape, kernel_size, filters, count):
x = Conv2D(filters, (kernel_size, kernel_size), padding = 'same', activation= None)(Input(input_shape))
x = BatchNormalization()(x)
x = Activation('relu')(x)
x = Conv2D(filters, (kernel_size, kernel_size), padding = 'same', activation= None)(x)
x = BatchNormalization()(x)
x = Activation('relu')(x)
return keras.layers.add([x,Input(input_shape)])
Когда я вызываю эту функцию из:
x = Input(shape = (6,264,264))
y = Conv2D(64, (7, 7), padding='same', activation='relu')(x)
y = MaxPooling2D((2,2))(y)
y = add_layer(y.shape, 3, 64, 3)
Она выдает следующую ошибку:
ValueError: Input 0 is incompatible with layer conv2d_2: expected ndim=4, found ndim=5
Когда я удаляю функцию add_layerи просто прекратить maxpooling до плотного слоя, я получаю:
AttributeError: 'Tensor' object has no attribute 'ndim'
В чем может быть проблема?(Кроме того, мой ввод имеет размер 50 np массивов (6 264 264)) т.е. (50 6 264 264)