我可以开始一个答案,但这个问题非常广泛,所以我将不胜感激关于改进我的答案的建议。
- Keras SimpleRNN需要输入大小(num_training_examples,num_timesteps,num_features)。
例如,假设我有汽车通过每小时的交点驱动数的计数的序列(小例子只是为了说明):
X = np.array([[10, 14, 2, 5], [12, 15, 1, 4], [13, 10, 0, 0]])
题外话:请注意,我正在观察在四个小时,最后两个小时没有开过车。这是零填充输入的一个例子,这意味着通过将0添加到较短序列的末尾以匹配最长序列的长度,使所有序列具有相同的长度。
Keras期望以下输入形状:(X.shape [0],X.shape 1,1),这意味着我可以这样做:
X_train = np.reshape(X, (X.shape[0], X.shape[1], 1))
然后我可以养活该入RNN:
model = Sequential()
model.add(SimpleRNN(units=10, activation='relu', input_shape = (X.shape[1], X.shape[2])))
你会添加更多的层,或添加正规化,等等,这取决于你的任务的性质。
对于您的特定应用程序,我认为您需要重新整理输入以使每行有3个元素(上一次,下一次,当前,下一次)。
我对掩模层不太了解,但here is a good place to start。
据我所知,嵌入是独立的掩码,但你可以掩盖一个嵌入。
希望能提供一个很好的起点!
我建议你在你的问题中增加更多信息。 – KenobiShan