检查输入时出错:预期 conv2d_1_input 有 4 个维度,但得到形状为 (800, 1000) 的数组

2024-04-29

我正在尝试使用 CNN 进行情感分析 我的代码我的数据具有 (1000,1000) 形状,当我将数据传递给 convolution2D 时,它会抛出一个错误。我无法解决。 我尝试了以下解决方案,但仍然面临问题。在构建 CNN 时,我收到 Keras 的抱怨,这些抱怨对我来说毫无意义。 https://stackoverflow.com/questions/37085653/when-bulding-a-cnn-i-am-getting-complaints-from-keras-that-do-not-make-sense-to

我的代码如下。

TfIdf = TfidfVectorizer(max_features=1000) 
X = TfIdf.fit_transform(x.ravel()) 
Y = df.iloc[:,1:2].values


X_train, X_test, Y_train, Y_test = train_test_split(X, Y, test_size = 0.2,random_state=1)

classifier = Sequential()

classifier.add(Convolution2D(32, kernel_size=(3,3), input_shape=(1000, 1000, 1), activation = 'relu'))

classifier.add(MaxPooling2D(pool_size=(2,2)))

classifier.add(Flatten())

classifier.add(Dense(output_dim =  128, activation='relu'))

classifier.add(Dense(output_dim =  1, activation='sigmoid'))

classifier.compile(optimizer = 'adam', loss = 'binary_crossentropy', metrics = ['accuracy'])

classifier.fit(X_train, Y_train, batch_size = 10, nb_epoch = 100, validation_data=(X_test,Y_test))

(loss,accuracy) = classifier.evaluate(X_test,Y_test, batch_size =10)

print(accuracy)

我可能是错的,但对我来说,您需要扩展数据维度才能与您的网络相对应:

like:

X = np.expand_dims(X, axis=-1)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

检查输入时出错:预期 conv2d_1_input 有 4 个维度,但得到形状为 (800, 1000) 的数组 的相关文章