【发布时间】:2017-11-26 00:43:46
【问题描述】:
我的输入只是一个包含 339732 行和两列的 csv 文件:
- 第一个是 29 个特征值,即 X
- 第二个是二进制标签值,即 Y
我正在尝试在堆叠 LSTM 模型上训练我的数据:
data_dim = 29
timesteps = 8
num_classes = 2
model = Sequential()
model.add(LSTM(30, return_sequences=True,
input_shape=(timesteps, data_dim))) # returns a sequence of vectors of dimension 30
model.add(LSTM(30, return_sequences=True)) # returns a sequence of vectors of dimension 30
model.add(LSTM(30)) # return a single vector of dimension 30
model.add(Dense(1, activation='softmax'))
model.compile(loss='binary_crossentropy',
optimizer='rmsprop',
metrics=['accuracy'])
model.summary()
model.fit(X_train, y_train, batch_size = 400, epochs = 20, verbose = 1)
这会引发错误:
Traceback(最近一次调用最后一次): 文件“first_approach.py”,第 80 行,在 model.fit(X_train, y_train, batch_size = 400, epochs = 20, verbose = 1)
ValueError:检查模型输入时出错:预期 lstm_1_input 到 有 3 个维度,但得到了形状为 (339732, 29) 的数组
我尝试使用 X_train.reshape((1,339732, 29)) 重塑我的输入,但它没有显示错误:
ValueError:检查模型输入时出错:预期 lstm_1_input 到 有形状 (None, 8, 29) 但得到了形状 (1, 339732, 29) 的数组
如何将我的输入输入到 LSTM 中?
【问题讨论】:
-
你为什么使用没有时间步长的 LSTM 模型?
标签: python keras lstm recurrent-neural-network valueerror