python - 如何在python中的kers中的LSTM中添加dropout和attention

标签 python tensorflow machine-learning keras lstm

我有大约 1000 个节点数据集,其中每个节点有 4 个时间序列。每个时间序列正好有6个长度。标签为0或1(即二元分类)。

更准确地说,我的数据集如下所示。

node, time-series1, time_series2, time_series_3, time_series4, Label
n1, [1.2, 2.5, 3.7, 4.2, 5.6, 8.8], [6.2, 5.5, 4.7, 3.2, 2.6, 1.8], …, 1
n2, [5.2, 4.5, 3.7, 2.2, 1.6, 0.8], [8.2, 7.5, 6.7, 5.2, 4.6, 1.8], …, 0
and so on.

在将时间序列输入 LSTM 模型进行分类之前,我会对其进行标准化

model = Sequential()
model.add(LSTM(10, input_shape=(6,4)))
model.add(Dense(32))
model.add(Dense(1, activation='sigmoid'))
model.compile(loss='binary_crossentropy', optimizer='adam', metrics=['accuracy'])

print(data.shape) # (1000, 6, 4)
model.fit(data, target)

我是 keras 新手,这就是为什么从最简单的 LSTM 模型开始。不过,现在我想把它打造成一个可以在行业级别使用的级别。

我读到,向 LSTM 模型添加 dropoutattention 层是件好事。如果您认为添加此类层适用于我的问题,请告诉我,如果是,该怎么做? :)

注意:我不限于droupout和attention层,并且很高兴收到可以用来改进模型的其他建议。

如果需要,我很乐意提供更多详细信息。

最佳答案

如果你想在lstm单元中添加dropout,你可以尝试这个

model = Sequential()
model.add(LSTM(10, input_shape=(6,4), dropout=0.5))
model.add(Dense(32))
model.add(Dense(1, activation='sigmoid'))
model.compile(loss='binary_crossentropy', optimizer='adam', metrics=['accuracy'])

print(data.shape) # (1000, 6, 4)
model.fit(data, target)

或者在lstm单元之间使用dropout,可以考虑如下

model = Sequential()
model.add(LSTM(10, input_shape=(6,4)))
model.add(Dropout(0.5))
model.add(LSTM(10, input_shape=(6,4)))
model.add(Dense(32))
model.add(Dense(1, activation='sigmoid'))
model.compile(loss='binary_crossentropy', optimizer='adam', metrics=['accuracy'])

print(data.shape) # (1000, 6, 4)
model.fit(data, target)

关于python - 如何在python中的kers中的LSTM中添加dropout和attention,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57840199/

相关文章:

python - 将 cv2.mean() 的输出转换为其他颜色模型 (LAB)

python - theano ~ 使用索引矩阵和嵌入矩阵来生成 3D 张量?

tensorflow - 如何将最后一个输出 y(t-1) 作为输入以在 tensorflow RNN 中生成 y(t)?

python - 当我运行 ' FileNotFoundError: [Errno 2] No such file or directory:' 时,为什么我在终端中收到 `python ./train.py`

tensorflow - 如何复用LSTM层和变量范围内的变量(注意力机制)

python - 如何修复数据类型不匹配以使用我的训练模型预测图像?

python - 这个问题可以用动态规划来优化吗?

python - 将 Netscaler 显示输出转换为 BNF 进行解析

tensorflow - 什么是 tensorflow.python.data.ops.dataset_ops.PrefetchDataset?

python - 谁使用 tf.estimator.train_and_evaluate 提前停止评估损失?