keras 中的一點問題


TimeDistributed層在Keras中的作用是什么?

我試圖了解TimeDistributed包裝器在Keras中的作用。

我得到TimeDistributed“將一個圖層應用於輸入的每個時間片。”

但我做了一些實驗並得到了我無法理解的結果。

簡而言之,與LSTM層相關,TimeDistributed和Dense層具有相同的結果。

model = Sequential()
model.add(LSTM(5, input_shape = (10, 20), return_sequences = True))
model.add(TimeDistributed(Dense(1)))
print(model.output_shape)

model = Sequential()
model.add(LSTM(5, input_shape = (10, 20), return_sequences = True))
model.add((Dense(1)))
print(model.output_shape)
對於這兩種型號,我的輸出形狀為(無,10,1)。

任何人都可以解釋RNN層之后TimeDistributed和Dense層之間的區別嗎?

目前ssem沒有區別,這里討論它。我認為最初的意圖是區分Dense平坦化輸入然后重新整形的層,因此連接不同的時間步長並具有更多參數,並TimeDistributed保持時間步長分離(因此具有較少的參數)。在你的情況下Dense應該有500個參數,TimeDistributed只有50 - gionni 11月15日'17在13:00
@gionni不,它有相同數量的參數(均為6)。那么atm幾乎沒有什么區別? - Buomsoo Kim 於17年11月16日凌晨2 點09分
是的,如果存在差異,這些是他們將擁有的參數數量。目前沒有 - gionni 於17年11月16日12:17

在keras建立順序模型時 - 通常是第二維(一個在樣本維度之后) - 與time維度相關。這意味着,如果例如,你的數據是5-dim與(sample, time, width, length, channel)您可以應用使用卷積層TimeDistributed(其適用於4-dim與(sample, width, length, channel)以獲得沿時間維度)(應用相同的層到每個時間片)5-d輸出。

這樣的情況Dense是,keras從版本2.0開始Dense默認僅應用於最后一個維度(例如,如果您應用於Dense(10)具有形狀的輸入,(n, m, o, p)您將獲得具有形狀的輸出(n, m, o, 10)),因此在您的情況下Dense並且TimeDistributed(Dense)是等效的。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM