微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

层顺序的输入0与预期的ndim = 3层发现ndim = 2不兼容收到的完整图形:[无,1]

如何解决层顺序的输入0与预期的ndim = 3层发现ndim = 2不兼容收到的完整图形:[无,1]

我正在与keras一起进行文本分类。经过预处理和矢量化后,我的火车和验证数据详细信息如下:

print(X_train.shape,',X_train.ndim,type(X_train))
print(y_train.shape,y_train.ndim,type(y_train))
print(X_valid.shape,X_valid.ndim,type(X_valid))
print(y_valid.shape,y_valid.ndim,type(y_valid))
print(data_dim)

输出为:

(14904,),1,<class 'numpy.ndarray'>
(14904,<class 'numpy.ndarray'>
(3725,<class 'numpy.ndarray'>
15435

则模型定义为:

model = Sequential()
model.add(LSTM(100,input_shape=(data_dim,1 ),return_sequences=True))
model.add(Dropout(0.2))
model.add(LSTM(200))
model.add(Dropout(0.2))
model.add(Dense(1,activation='sigmoid'))

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

模型概述:

enter image description here

模型拟合:

model.fit(X_train,y_train,validation_data = (X_valid,y_valid),batch_size=batch_size,epochs=epochs)

为什么会出现此错误

----> 1 model.fit(X_train,2           batch_size=batch_size,epochs=epochs)
...
...

    ValueError: Input 0 of layer sequential is incompatible with the layer:
              expected ndim=3,found ndim=2. Full shape received: [None,1]

解决方法

我终于在this kaggle notebook的帮助下克服了这个问题。

我将数据尺寸更改为:

print(X_train.shape)
print(y_train.shape)
print(X_valid.shape)
print(y_valid.shape)
print(X_test.shape)
print(y_test.shape)
print(data_dim)
########################## output ###########################
(14904,15435)
(14904,)
(3725,15435)
(3725,)
(5686,15435)
(5686,)
15435

然后将数据重塑为:

X_train = np.reshape(X_train,(X_train.shape[0],1,X_train.shape[1]))
X_valid = np.reshape(X_valid,(X_valid.shape[0],X_valid.shape[1]))
X_test = np.reshape(X_test,(X_test.shape[0],X_test.shape[1]))
########################## output ###########################
(14904,15435)

最后将LSTM input_shape更改为:

model.add(LSTM(units=50,input_shape=(1,data_dim),return_sequences=True))

现在,模型摘要为:


现在没有问题,model.fit执行正常。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。