Keras'ta TimeDistributed katmanın rolü nedir?


83

TimeDistributed wrapper'ın Keras'ta ne yaptığını anlamaya çalışıyorum.

TimeDistributed'ın "bir girdinin her geçici dilimine bir katman uyguladığını" anlıyorum.

Ama biraz deney yaptım ve anlayamadığım sonuçları aldım.

Kısacası, LSTM katmanıyla bağlantılı olarak TimeDistributed ve just Dense katman aynı sonuçları verir.

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)

Her iki model için de (Yok, 10, 1) çıktı şeklini aldım .

Bir RNN katmanından sonra TimeDistributed ve Dense katman arasındaki farkı açıklayan var mı?


1
Şu anda hiçbir fark yok, burada bununla ilgili bir tartışma. Bence asıl amaç, Densegirdiyi düzleştiren ve sonra yeniden şekillendiren katman arasında bir ayrım yapmak , dolayısıyla farklı zaman adımlarını bağlamak ve daha fazla parametreye sahip olmak ve TimeDistributedzaman adımlarını ayrı tutmak (dolayısıyla daha az parametreye sahip olmak) idi. Senin durumunda Dense500 paramter olmalıydı, TimeDistributedsadece 50
gionni

@gionni Hayır, aynı sayıda parametreye sahiptir (her ikisi de 6). Yani neredeyse hiç atm farkı yok mu?
Buomsoo Kim

Evet, kesinlikle, bir fark olsaydı sahip olacakları parametre sayısı bunlar. Şu anda yok
gionni

Yanıtlar:


85

Gelen keras-, genellikle ikinci boyutu (örnek boyunun ardına) - - sıralı bir model oluşturma sırasında ilgilidir timeboyut. Bu, örneğin verileriniz yanınızda ise 5-dim, çıktı elde etmek için bir zaman boyutu boyunca (her zaman dilimine aynı katmanı uygulayarak) (ile geçerli olan ) (sample, time, width, length, channel)evrişimli bir katman uygulayabileceğiniz anlamına gelir .TimeDistributed4-dim(sample, width, length, channel)5-d

Durum Denseiçinde olduğunu kerassürüm 2.0 dan Densevarsayılan olarak (eğer geçerli değilse, örneğin sadece son boyutun uygulanan Dense(10)şekli ile girişine (n, m, o, p)Şekilden çıktıyı alırsınız (n, m, o, 10)böylece durumunda) Denseve TimeDistributed(Dense)eşdeğerdir.


3
Modelin kendisini sarmalayan TimeDistributed kullanımına bir örnek var. Bu bir Inputtensöre mapuygulandığında, bunun her bir dilimini içeren bir listeye uygulanan modelin yalnızca bir Input?
CMCDragonkai
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.