使用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)
我是机器学习的新手
答案 0 :(得分:0)
密集层是其中每个输入神经元连接到输出神经元的层,就像简单神经网络一样,参数单位只是告诉您输出的维度,
我认为您的问题出在输入数据的维度上, 您可以打印输入数据的维度, 应该是 4D