我有一个数据框,其中包含大约 14560 个维度为 400 的词向量。我已将每个向量重塑为 20*20 并使用 1 个通道来应用 CNN,因此维度变为(14560,20,20,1)
. 当我尝试拟合 CNN 模型时,它会引发错误。
代码:
from keras.models import Sequential
from keras.layers.core import Dense, Dropout, Activation, Flatten
from keras.layers.convolutional import Convolution2D, MaxPooling2D
from keras.layers import BatchNormalization
from keras.utils import np_utils
from keras import backend as K
model_cnn=Sequential()
model_cnn.add(Convolution2D(filters = 16, kernel_size = (3, 3),
activation='relu',input_shape = (20, 20,1)))
model_cnn.compile(loss='categorical_crossentropy', optimizer = 'adadelta',
metrics=["accuracy"])
model_cnn.fit(x_tr_,y_tr_,validation_data=(x_te_,y_te))
错误:
检查目标时出错:预期 conv2d_6 有 4 个维度,但得到了形状为 (14560, 1) 的数组。当我将训练数据重塑为 (14560,1,20,20) 时,由于模型接收输入 =(1,20,20) 并且所需的是 (20,20,1),它仍然会给出错误。
我如何解决它 ?