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

Я новичок в 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)
...