检查目标时出错:期望dense_1具有形状(4096,)但是得到了具有形状的数组(2,)

时间:2018-04-26 22:13:24

标签: python keras keras-layer

我是CNN的新手。我已经读过大小为105 * 105的图像作为numpy数组。 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 个答案:

没有答案