Я пытаюсь написать сиамскую сеть, используя Negative Sampling, код с 20 примерами (включая положительный и отрицательный). Каждый пример включает 2 изображения (x1, x2) и вывод, указывающий, являются ли изображения одинаковыми или нет
image1 image1 1
image1 image2 0
Для этого мне интересно получить только последний слой, который является слоем Dense () в Keras, отдельно X1 и X2.
Форма X1 равна 20,28,28 , 1 и X2 - 20,28,28,1. Оба типа имеют тип numpy .ndarray
Но когда я применяю модель CNN, выдается следующая ошибка.
" Ошибка типа: добавленный слой должен быть экземпляром класса Layer. Найдено: (28, 28, 1)
См. Код python ниже
model = Sequential([(Image1[0].shape),
Conv2D(16,kernel_size=(3,3),strides=[1,1],padding='same',kernel_initializer=keras.initializers.glorot_uniform(),name='conv1'),
Activation('relu'),
MaxPool2D(pool_size=(2, 2)),
Conv2D(32,kernel_size=(3,3),strides=[2,2],padding='same',kernel_initializer=keras.initializers.glorot_uniform(),name='conv2'),
Activation('relu'),
Conv2D(64,kernel_size=(3,3),strides=[2,2],padding='same',kernel_initializer=keras.initializers.glorot_uniform(),name='conv3'),
Activation('relu'),
MaxPool2D(pool_size=(2, 2)),
Flatten(),
Dense(20)
])
Может кто-нибудь помочь мне, как исправить эту ошибку?
Спасибо Sachin