कैरस में टाइमडिस्ट्रिब्यूटेड लेयर की क्या भूमिका है?


82

मैं कायरों में TimeDistributed आवरण क्या करता है समझ की कोशिश कर रहा हूँ।

मुझे लगता है कि 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 लेयर के बीच अंतर बता सकता है?


1
वर्तमान में कोई फर्क नहीं पड़ता ssem, यहाँ इसके बारे में एक चर्चा है। मुझे लगता है कि मूल इरादा Denseइनपुट को समतल करने और फिर पुन: आकार देने वाली परत के बीच अंतर करना था , इसलिए विभिन्न समय चरणों को जोड़ना और अधिक पैरामीटर होना, और TimeDistributedसमय के चरणों को अलग रखना (इसलिए कम पैरामीटर होने)। आपके मामले Denseमें 500 पैरामीटर्स होने चाहिए, TimeDistributedकेवल 50
जियोनी

@gionni नहींं, इसमें समान पैरामीटर (दोनों 6) हैं। तो वहाँ लगभग कोई अंतर नहीं है?
बुमोसो किम

हाँ, ठीक है, अगर कोई अंतर होता तो वे कितने पैरामीटर होते। फिलहाल नहीं है
gionni

जवाबों:


84

में 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)समतुल्य हैं।


3
मॉडल को स्वयं लपेटकर TimeDistributed का उपयोग करने का एक उदाहरण है। जब इसे एक Inputटेंसर पर लागू किया जाता है, तो क्या इस mapसूची से लागू होने वाले मॉडल की तुलना में कोई अंतर है, जिसमें प्रत्येक स्लाइस शामिल है Input?
CMCDragonkai
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.