【发布时间】:2018-09-24 21:53:39
【问题描述】:
我有一个包含大约 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)。
我该如何解决?
【问题讨论】:
标签: machine-learning neural-network keras word2vec convolutional-neural-network