我使用以下Keras模型:
# Create Model
self.model = Sequential()
self.model.add(LSTM(50, return_sequences=True, input_shape=(features_set.shape[1], features_set.shape[2])))
self.model.add(Dropout(0.2))
self.model.add(LSTM(50, return_sequences=True))
self.model.add(Dropout(0.2))
self.model.add(LSTM(50))
self.model.add(Dropout(0.2))
self.model.add(Dense(1))
self.model.compile(optimizer = 'adam', loss = 'mean_squared_error')
features_set.shape
是196,353,4
,而labels.shape
是196,353,1
。
然而,当在以下时间之后调用时:
self.model.fit(features_set, labels, epochs = 1, batch_size = 1)
self.model.reset_states()
我得到错误:
期望dense_1具有2个维度,但得到了形状为(196353,1(的数组
最后一个LSTM没有返回序列,那么这里发生了什么?我看不出我做错了什么。
错误的模型构建,密集输出为(196,1(,您正在拟合标签.shape(196353,1(
试试这个
# Create Model
self.model = Sequential()
self.model.add(LSTM(50, return_sequences=True, input_shape=(features_set.shape[1], features_set.shape[2])))
self.model.add(Dropout(0.2))
self.model.add(LSTM(50, return_sequences=True))
self.model.add(Dropout(0.2))
self.model.add(LSTM(50, return_sequences=True))
self.model.add(Dropout(0.2))
self.model.add(Dense(1))
self.model.compile(optimizer = 'adam', loss = 'mean_squared_error')