[英]Keras Conv2D - ValueError: Input 0 of layer sequential is incompatible with the layer: : expected min_ndim=4, found ndim=3
[英]Keras: Input 0 is incompatible with layer conv1d_5: expected ndim=3, found ndim=2
我是 Keras 的初学者。 我在这里使用了一个带有 20 个特征的简单数据集作为回归模型。 我不断收到预期 ndim=3 的错误,发现 conv2d 层的 ndim=2。 这是我的代码:
def buildreg():
regressor=Sequential()
regressor.add(Dense(units=170,input_dim=20))
regressor.add(Dense(units=25))
regressor.add(Conv1D(16,5))
regressor.add(Dense(units=100))
regressor.add(Dense(units=55))
regressor.add(Dense(units=10))
regressor.add(Dense(units=60))
regressor.add(Dense(units=1))
regressor.compile(optimizer='adam',loss='mean_absolute_error')
return regressor
from keras.wrappers.scikit_learn import KerasRegressor
model=KerasRegressor(build_fn=buildreg,batch_size=15,epochs=20)
输入是一个具有 20 个特征的数据框。 数据集是一个非常小的数据集,大约 1k 行。 我完全清楚它会过拟合的事实。 处理得当。 数据与 MLPRegressor 一起工作得很好。
1) 如果你想使用 Conv1D 那么使用 Conv1D 作为第一层并指定 input_shape 如下
input_shape=(N_features, 1)
并重塑您的火车以塑造(nb_of_examples,nb_of_features,1)。
因此,您修改后的代码将如下所示,
Processed--XTRAIN = Processed--XTRAIN.reshape(1457,20,1)
def buildreg():
regressor=Sequential()
regressor.add(Conv1D(16,5,input_shape=(20, 1)))
regressor.add(Dense(units=170,input_dim=20))
regressor.add(Dense(units=25))
regressor.add(Dense(units=100))
regressor.add(Dense(units=55))
regressor.add(Dense(units=10))
regressor.add(Dense(units=60))
regressor.add(Dense(units=1))
regressor.compile(optimizer='adam',loss='mean_absolute_error')
return regressor
from keras.wrappers.scikit_learn import KerasRegressor
model=KerasRegressor(build_fn=buildreg,batch_size=15,epochs=20)
2)否则,您可以删除卷积层并构建简单的ANN模型。 只需使用 Dense 层来构建您的模型。
你的代码看起来像这样
def buildreg():
regressor=Sequential()
regressor.add(Dense(units=170,input_dim=20))
regressor.add(Dense(units=25))
regressor.add(Dense(units=100))
regressor.add(Dense(units=55))
regressor.add(Dense(units=10))
regressor.add(Dense(units=60))
regressor.add(Dense(units=1))
regressor.compile(optimizer='adam',loss='mean_absolute_error')
return regressor
from keras.wrappers.scikit_learn import KerasRegressor
model=KerasRegressor(build_fn=buildreg,batch_size=15,epochs=20)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.