【发布时间】:2019-08-25 05:31:12
【问题描述】:
我正在尝试使用 CNN 进行情感分析 我的代码我的数据具有 (1000,1000) 形状,当我将数据传递给卷积 2D 时,它给我一个错误。我无法解决。 我尝试了以下解决方案,但仍然面临问题。 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)
【问题讨论】:
-
你怎么说你有输入形状 (1000, 1000) 但错误状态你有 (800, 1000)?
X_train的形状是什么? -
我的 x_train 是 800,100 我也尝试给 input_shape = x_train.shape
-
conv2d 层要求输入形状为 4D 张量(样本、行、列、通道),其中样本为批量大小。你只有两个。你有什么样的数据?
-
它是一个文本数据...在 TFIDF 之后它的形状为 1000,1000
-
您为什么决定使用主要用于处理图像的 2d 卷积?如果这是一个序列,你需要使用循环网络或 LSTM
标签: machine-learning keras deep-learning artificial-intelligence conv-neural-network