【发布时间】:2019-05-06 12:32:55
【问题描述】:
我在使用 LSTM 训练我的数据集时遇到了一个问题:
Error when checking target: expected dense_2 to have shape (, 1) but got array with shape (, 0)
在尝试之后,我将密集层单元从 1 更改为 0,它解决了我的问题。 这个密集层的工作是什么,将其更改为 0 后会发生什么?
重塑数据集
x_train = np.reshape(x_train, (x_train.shape[0],x_train.shape[1],1))
型号:
regressor = Sequential()
#1
regressor.add(LSTM(units = 50, return_sequences = True , input_shape = (x_train.shape[1],1)))
regressor.add(Dropout(0.2))
#2
regressor.add(LSTM(units = 50, return_sequences = True))
regressor.add(Dropout(0.2))
#3
regressor.add(LSTM(units = 50, return_sequences = True))
regressor.add(Dropout(0.2))
#4
regressor.add(LSTM(units = 50))
regressor.add(Dropout(0.2))
regressor.add(Dense(units = 0))
regressor.compile(optimizer = 'adam' , loss = 'mean_squared_error')
regressor.fit(x_train, y_train, epochs = 100, batch_size = 32)
我是机器学习的新手
【问题讨论】:
-
请展示模型的其余部分,最好是代码的其余部分。
-
您需要在第 4 个
Dropout层之后添加一个Flatten()层。此外,带有units=0的Dense层不会处理任何数据,因为输出维度变为0。
标签: keras deep-learning lstm