我正在尝试为数值数据集构建一维CNN。我的数据集有520行和13个特征。下面是代码。
它给出"ValueError: sequential_21层的Input 0与layer::expected min_ndim=3不兼容,找到ndim=2。收到完整形状:(1,13)“错误。
我需要如何设置输入形状,或者我必须重塑X_train?任何帮助都是非常感谢的。
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.20)
n_features = 13
model = Sequential()
model.add(Conv1D(filters=1, kernel_size=1, activation='relu', input_shape=(1, n_features)))
model.add(Conv1D(filters=1, kernel_size=1, activation='relu'))
model.add(Dropout(0.5))
model.add(MaxPooling1D(pool_size=1))
model.add(Flatten())
model.add(Dense(100, activation='relu'))
model.add(Dense(2, activation='softmax'))
model.compile(loss='binary_crossentropy', optimizer='adam', metrics=['accuracy'])
model.fit(X_train, y_train, epochs=20, batch_size=1)
yhat_classes = model.predict_classes(testX, verbose=0)发布于 2021-07-05 00:16:33
问题在于,对numpy数据集进行批处理会产生行。现在您使用batch size 1,所以生成器生成1行,生成一个shape (1, n_features)数组,但是您想要shape (batch_size, 1, n_features)。
在分割数据集之前将维度添加到数据集应该可以解决此问题
X = X.reshape(-1, 1, n_features)https://stackoverflow.com/questions/68245936
复制相似问题