网络的结构是这样的:
#1st layer
model.add(Conv2D(20, 5, 5, activation='sigmoid', input_shape=(32, 32, 1)))
model.add(MaxPool2D(pool_size=(2, 2)))
#2nd layer
model.add(Conv2D(30, 5, 5, activation='sigmoid'))
model.add(MaxPool2D(pool_size=(2, 2)))
#fully connected layer
model.add(Flatten())
model.add(Dense(500, init='normal', activation='sigmoid'))
# model.add(Dropout(0.5))
# model.add(Dense(10, activation='sigmoid'))
#model.add(Reshape((-1, 5)))
model.add(Dense(5, init='normal', activation='softmax'))
调用网络时:
model.fit(x=traindata, y=trainlabel, batch_size=16, nb_epoch=15, shuffle=True, verbose=1, validation_data=(testdata, testlabel))
报错是这个:
ValueError: Error when checking input: expected conv2d_1_input to have 4 dimensions, but got array with shape (500, 5)
然后x向量为4维的图片信息,y向量为图片的标签,他们的shape分别是(500, 32, 32, 1),(500, 5),就是不懂为什么y向也需要是4维的呢