我有一个特征向量,每个样本都只有一个特征,总共有32个样本:
X = [[0.1], [0.12], [0.3] ... [0.10]]
还有一个标签向量,由二进制值组成:
Y = [0, 1, 0 , 0, .... 1] (也有32个样本)
我试图使用Keras LSTM来预测基于新输入的序列的下一个值。但我无法理解"batch_input_shape"元组的含义,例如:
根据这篇文章,第一个是批量大小,那么其他两个呢?它们是每个样本的特征数和样本数吗? 在这种情况下,batch_size应该是多少?
目前收到以下错误消息:
X = [[0.1], [0.12], [0.3] ... [0.10]]
还有一个标签向量,由二进制值组成:
Y = [0, 1, 0 , 0, .... 1] (也有32个样本)
我试图使用Keras LSTM来预测基于新输入的序列的下一个值。但我无法理解"batch_input_shape"元组的含义,例如:
model.add(LSTM(neurons, batch_input_shape=(?, ?, ?), return_sequences=False, stateful=True))
根据这篇文章,第一个是批量大小,那么其他两个呢?它们是每个样本的特征数和样本数吗? 在这种情况下,batch_size应该是多少?
目前收到以下错误消息:
ValueError: Error when checking input: expected lstm_1_input to have 3 dimensions, but got array with shape (32, 1)
编辑:这是模型声明:
def create_lstm(batch_size, n_samples, neurons, dropout):
model = Sequential()
model.add(LSTM(neurons, batch_size=batch_size, input_shape=(n_samples, 1), return_sequences=False, stateful=True))
model.add(Dropout(dropout))
model.add(Dense(1, activation='sigmoid'))
model.compile(optimizer='adam', loss='binary_crossentropy', metrics=['accuracy'])
return model