如何在python中的kers中添加LSTM中的退出和注意

如何在python中的kers中添加LSTM中的退出和注意,python,tensorflow,machine-learning,keras,lstm,Python,Tensorflow,Machine Learning,Keras,Lstm,我有大约1000个节点数据集,其中每个节点有4个时间序列。每个时间序列的长度正好为6。标签为0或1,即二进制分类 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=['

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

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)
更准确地说,我的数据集如下所示

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模型中添加退出层和注意层是很好的。如果您认为添加此类图层适用于我的问题,请告知我,如果适用,如何添加

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


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

如果您想在lstm单元中添加辍学,您可以试试这个

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单元之间的辍学,可以考虑

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)

谢谢你的回答。你知道怎么做注意层吗根据我的理解,注意力可能很难实现。首先,我想看看keras@MohamadZeina的图书馆,非常感谢Mohamad。期待您的回答:我发现了一种实现注意力的简单方法: