gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-11-30 09:41:44 25 4
gpt4 key购买 nike

我有大约 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/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com