我可以開始一個答案,但這個問題非常廣泛,所以我將不勝感激關於改進我的答案的建議。
- 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