我有一個使用3個傳感器進行活動識別的CNN。我堆疊傳感器的尺寸給我9個通道,並將時間序列數據分成每個窗口200個樣本。我給它喂2個CNN層,1個完全連接層和1個softmax層。 All in TensorflowRNN和CNN在Tensorflow中的活動識別
現在我想用LSTM圖層替換完全連接的圖層。但我不知道如何實施它。如果我的最後一個卷積層有平坦的輸出,我怎麼把它送入LSTM層?我如何申請退學?
因爲只見LSTM來回活動識別一個Github的代碼且輸入是
x = tf.placeholder(tf.float32, [None, n_steps, n_input])
y = tf.placeholder(tf.float32, [None, n_classes])
但是從最後層我的平坦化輸出是僅2D(-1,N)。 n_steps是時間步數的數量吧?我應該重塑我的扁平輸出嗎?我應該如何重塑它?我相信來自Github的LSTM代碼中的n_steps
指的是每個窗口的樣本數量。那麼我應該再次將展平輸出分成每個窗口200個樣本嗎?
編輯: 我想要做的是將時間序列數據分成切片或時間窗口,然後應用卷積層,然後將其平坦化並將其輸入到LSTM層。但我不知道如何實現這一點。特別是當我已經在平坦的輸出。我將如何對它進行分割並將其提供給復發層?
我想要做的是將時間序列數據分成切片或時間窗口,然後應用卷積層,然後將其平鋪並輸入到LSTM層。但我不知道如何實現這一點。特別是當我已經在平坦的輸出。我將如何對它進行分割並將其提供給復發層? – Chaine
就像您直接使用LSTM一樣,您會將LSTM應用於這些時間窗口。但是,一旦我將CNN應用於時間窗口,我會將其扁平化。問題是,我需要再次對其進行細分。與我分割我的原始時間窗口一樣?但CNN已經做了maxpooling和其他操作,所以這是一個全新的數據。 – Chaine
正如我試圖在答案中所說的那樣,可以爲卷積層提供第一個不同的窗口(假設w0,w1,w2),然後考慮它們的輸出(o0,o1,o2)您的lstm的輸入。實際上,您需要使用具有共享參數的不同卷積網。 –