मैं समझने की कोशिश कर रहा हूं कि केरास में टाइम डिस्ट्रिब्यूटेड रैपर क्या करता है।केरास में टाइमडिस्ट्रिब्यूटेड परत की भूमिका क्या है?
मुझे लगता है कि टाइम डिस्ट्रिब्यूटेड "इनपुट के प्रत्येक अस्थायी टुकड़े पर एक परत लागू करता है।"
लेकिन मैंने कुछ प्रयोग किया और परिणाम प्राप्त हुए जिन्हें मैं समझ नहीं पाया।
संक्षेप में, एलएसटीएम परत के संबंध में, टाइम डिस्ट्रिब्यूटेड और केवल घने परत समान परिणाम सहन करते हैं।
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) मिला है।
कोई भी आरएनएन परत के बाद टाइमडिस्ट्रिब्यूटेड और घने परत के बीच अंतर को समझा सकता है?
वर्तमान में कोई अंतर नहीं है, [यहां] (https://github.com/fchollet/keras/issues/278) इसके बारे में एक चर्चा। मुझे लगता है कि मूल उद्देश्य इनपुट को फ़्लैटन करने के लिए 'घने' परत के बीच एक अंतर बनाना था और फिर फिर से बदलना, इसलिए अलग-अलग समय चरणों को जोड़ने और अधिक पैरामीटर होने और समय-समय पर अलग-अलग चरणों को अलग करने के लिए 'टाइम डिस्ट्रिब्यूटेड' (इसलिए कम पैरामीटर)। आपके मामले में 'घने' में 500 पैरामीटर होना चाहिए था, 'टाइम डिस्ट्रिब्यूटेड' केवल 50 – gionni
@ गियोनी नोप, इसमें पैरामीटर की संख्या (दोनों 6) होनी चाहिए। तो वास्तव में कोई अंतर नहीं है? –
हाँ, बिल्कुल, वे अंतर होने पर पैरामीटर की संख्या हैं। फिलहाल – gionni