machine-learning - 检查输入 : expected conv2d_1_input to have 4 dimensions, 但获得形状为 (800, 1000) 的数组时出错

标签 machine-learning keras deep-learning artificial-intelligence conv-neural-network

我正在尝试使用 CNN 进行情感分析 我的代码我的数据具有 (1000,1000) 形状,当我将数据传递给 convolution2D 时,它会引发错误。我无法解决。 我尝试了以下解决方案,但仍然面临问题。 When bulding a CNN, I am getting complaints from Keras that do not make sense to me.

我的代码如下。

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)

最佳答案

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

喜欢:

X = np.expand_dims(X, axis=-1)

关于machine-learning - 检查输入 : expected conv2d_1_input to have 4 dimensions, 但获得形状为 (800, 1000) 的数组时出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55499346/

相关文章:

pycuda vs theano vs pylearn2

python - 如何使用gensim使用deepset的词嵌入预训练模型?

machine-learning - Apache Spark ALS协作过滤结果。他们没有道理

python - 如何在 keras/tensorflow 中定义秩大于 4 的张量上的 2D 卷积

tensorflow - 将 12 channel reshape 为 3 channel Tensorflow

python-3.x - Keras 中 X 的多项功能

python - Keras 模型的 predict 和 predict_on_batch 方法有什么区别?

tensorflow - Keras 中基于 F1/AUC 纪元的指标

c# - 具有 6 个特征的人工神经网络训练

python - 创建模型时使用 theano 作为后端 from Keras.layers.core import Dense