2017-02-22 109 views
10

我已經通過了official documentation,但仍然不明白實際上TimeDistributed在Keras模型中是如何處理的?TimeDistributed vs. TimeDistributedDense Keras

我無法理解TimeDistributedTimeDistributedDense之間的區別?何時會有人使用TimeDistributedDense?僅僅是減少訓練數據集?它有其他好處嗎?

任何人都可以用一個精確的例子解釋這兩種類型的包裝紙是幹什麼的嗎?

回答

15

所以 - 基本上TimeDistributedDense是在Keras的早期版本中首次引入的,以便逐步將Dense層應用於序列。 TimeDistributed是一個Keras包裝器,它可以獲得任何靜態(非順序)圖層並以順序方式應用它。所以如果例如您的圖層接受輸入(d1, .., dn)的形狀(d1, .., dn)感謝TimeDistributed包裝您的圖層可以通過應用提供給X[0,:,:,..,:],X[1,:,...,:],...,X[len_of_sequence,:,...,:]的圖層接受形狀爲(sequence_len, d1, ..., dn)的輸入。

這種用法的例子可能是使用例如通過應用TimeDistributed(conv_layer)將卷積層預訓練成短視頻剪輯,其中conv_layer應用於剪輯的每個幀。它產生的輸出序列可能會被下一個經常使用的層或TimeDistributed層所消耗。

很高興知道TimeDistributedDense的使用已折舊,最好使用TimeDistributed(Dense)

0

TimeDistributedDenseTimeDistributed相同,唯一不同的是TimeDistributed可以與不同類型的圖層一起使用而不僅僅是密集圖層。

Keras文檔中說,大約TimeDistributed

「請注意,這是完全等同於使用layers.core.TimeDistributedDense但是所不同的是約TimeDistributed是,它可以與任意層,不只是密集使用,例如用Convolution2D。層「