Tensorflow में एम्बेडिंग परत का कार्य
किसी ने मुझे नीचे वर्णित परत के काम के साथ इनपुट और आउटपुट की व्याख्या कर सकते हैं
model.add(Embedding(total_words, 64, input_length=max_sequence_len-1))
कुल_शब्द = 263
max_sequence_len = 11
64, आयामों की संख्या है?
और इस परत का आउटपुट क्यों है (कोई नहीं, 10, 64)
यह प्रत्येक शब्द के लिए एक 64 आयाम वेक्टर नहीं होना चाहिए, अर्थात (कोई नहीं, 263, 64)
जवाब
आप यहाँ Tensorflow की एम्बेडिंग लेयर के बारे में सारी जानकारी पा सकते हैं ।
पहले दो मापदंड हैं input_dimensionऔर output_dimension।
- इनपुट आयाम मूल रूप से आपके मॉडल के शब्दावली आकार का प्रतिनिधित्व करते हैं।
word_indexफंक्शन के फंक्शन का इस्तेमाल करके आप इसका पता लगा सकते हैंTokenizer()। - आउटपुट आयाम अगले इनपुट के आयाम होने जा रहे हैं
Dense Layer
एंबेडिंग लेयर का आउटपुट फॉर्म का है (batch_size, input_length, output_dim)। लेकिन जब से आपने input_length पैरामीटर निर्दिष्ट किया है, आपके लेयर्स इनपुट फॉर्म के होंगे (batch, input_length)। इसलिए आउटपुट फॉर्म का है (कोई नहीं, 10, 64)।
आशा है कि आपके संदेह को साफ करता है your
में Embeddingपरत पहला तर्क इनपुट आयाम (जो काफी आयामी स्वरूप की आम तौर पर होता है) का प्रतिनिधित्व करता है। दूसरा तर्क आउटपुट आयामों का प्रतिनिधित्व करता है, उर्फ कम वेक्टर की गतिशीलता। तीसरा तर्क अनुक्रम लंबाई के लिए है। संक्षेप में, एक एम्बेडिंग परत बस आकार की एक लुकअप तालिका सीख रही है (input dim, output dim)। इस परत का भार उस आकृति को दर्शाता है। परत का उत्पादन, हालांकि, निश्चित रूप से आकार का होगा (output dim, seq length); इनपुट अनुक्रम में प्रत्येक तत्व के लिए एक आयामी-घटता हुआ एम्बेडिंग वेक्टर। आप जिस आकार की अपेक्षा कर रहे थे वह वास्तव में एक एम्बेडिंग परत के भार का आकार है।