【发布时间】:2020-11-27 15:14:48
【问题描述】:
实际上,我正在尝试在 Keras 和 Tensorflow 中构建 LSTM 模型。我的数据集有大约 3200 个项目,具有 4 个特征和 3 个标签。
X Shape: (3200, 4)
Y Shape: (3200, 3)
如果我想要大约 5 次步骤,那么我是否必须像这样重塑:
n_time_steps= 5
n_features = 4
X_train = X_train.reshape((-1, n_time_steps, n_features))
所以我得到了这些形状:
X Shape: (640, 5, 4)
Y Shape: (3200, 3)
我有点困惑,因为 640 =! 3200 个数据点......但模型编译和拟合没有任何错误。但是 acc 和 loss 是疯狂的。
当我也尝试重塑 Y_train Y Shape: (640, 5, 3) throws
不兼容的形状:[10,3] 与 [10,5,3] [[节点子(定义于:12)]] [操作:__inference_train_function_74818 函数调用栈: train_function
这是我的模型
opt = 'adam'
model = keras.Sequential()
model.add(layers.LSTM(128, input_shape=(n_time_steps,4)))
model.add(layers.Dropout(0.2))
model.add(layers.Dense(3 ,activation="sigmoid"))
model.compile(optimizer=opt,loss=hn_multilabel_loss,metrics=['accuracy','mae'])
model.summary()
history = model.fit(X_train, Y_train,batch_size = 10, epochs=10, validation_split = 0.1)
有人知道如何创建一个具有 5 个时间步长和 4 个特征的 LSTM 吗?什么是正确的输入和输出形状?
谢谢大家!
【问题讨论】:
标签: python tensorflow keras deep-learning lstm