Ошибка при проверке цели: ожидается, что плотность_1 будет иметь форму (4096,), но получен массив с формой (2,)

Я новичок в CNN. Я прочитал изображение размером 105*105 в виде массива. train_x выглядит как (1,105,105,1). Все вроде нормально но есть ошибка при попытке подогнать.

 input_shape=(105,105,1)

 convnet=Sequential()
 convnet.add(Conv2D(64,(10,10), activation='relu', input_shape=input_shape,  
             kernel_initializer=W_init, kernel_regularizer=l2(2e-4)))
 convnet.add(LeakyReLU(alpha=0.1))
 convnet.add(MaxPooling2D())
 convnet.add(Conv2D(128,(7,7), activation='relu', kernel_regularizer=l2(2e-4),
             kernel_initializer=W_init, bias_initializer=b_init))
 convnet.add(LeakyReLU(alpha=0.1))
 convnet.add(MaxPooling2D())
 convnet.add(Conv2D(128,(4,4),activation='relu', kernel_initializer=W_init,
             kernel_regularizer=l2(2e-4),bias_initializer=b_init))
 convnet.add(LeakyReLU(alpha=0.1))
 convnet.add(MaxPooling2D())
 convnet.add(Conv2D(256,(4,4),activation='relu', kernel_initializer=W_init,
             kernel_regularizer=l2(2e-4), bias_initializer=b_init))
 convnet.add(LeakyReLU(alpha=0.1))
 convnet.add(MaxPooling2D())
 convnet.add(Flatten())
 convnet.add(Dense(4096, activation='softmax', kernel_regularizer=l2(2e-4), 
             kernel_initializer=W_init, bias_initializer=b_init))

 convnet.compile(loss=keras.losses.categorical_crossentropy, 
                 optimizer=keras.optimizers.Adam(), metrics=['accuracy'])

 convnet_train = convnet.fit([train_X], train_label, 
                             batch_size=batch_size,epochs=epochs,verbose=1)

0 ответов

Другие вопросы по тегам