2016-10-19 20 views
8

कैसे काम करता है इस उदाहरण से: https://github.com/fchollet/keras/blob/master/examples/imdb_cnn.pyKeras - 1 डी कनवल्शन यह

इस स्निपेट नीचे आता है। एम्बेडिंग परत बैच में प्रत्येक उदाहरण के लिए 400 x 50 मैट्रिक्स आउटपुट करती है। मेरा सवाल यह है कि 1 डी संकल्प कैसे काम करता है? यह 400 x 50 मैट्रिक्स में कैसे काम करता है?

# we start off with an efficient embedding layer which maps 
# our vocab indices into embedding_dims dimensions 
model.add(Embedding(max_features, 
        embedding_dims, 
        input_length=maxlen, 
        dropout=0.2)) 

# we add a Convolution1D, which will learn nb_filter 
# word group filters of size filter_length: 
model.add(Convolution1D(nb_filter=nb_filter, 
         filter_length=filter_length, 
         border_mode='valid', 
         activation='relu', 
         subsample_length=1)) 

उत्तर

8

convolutional तंत्रिका नेटवर्क (CNNs) में, 1 डी और 2 डी फिल्टर वास्तव में 1 और 2 आयामी नहीं हैं। यह विवरण के लिए एक सम्मेलन है।

आपके उदाहरण में, प्रत्येक 1 डी फ़िल्टर वास्तव में एक एलएक्स 50 फ़िल्टर है, जहां एल फिल्टर लंबाई का पैरामीटर है। संकल्प केवल एक आयाम में किया जाता है। यही कारण है कि इसे 1 डी कहा जाता है। तो, उचित पैडिंग के साथ, प्रत्येक 1 डी फिल्टर रूपांतरण 400x1 वेक्टर देता है। Convolution1D परत अंततः 400 * nb_filter के मैट्रिक्स का उत्पादन करेगी।

+0

क्या हम इसे प्रत्येक चरण में बनाने के रूप में अवधारणा बना सकते हैं, एल शब्दों का एक डॉट उत्पाद (पहला एल, फिर स्लाइड और शब्दों 2: 2 + एल, आदि शामिल हैं) जहां पूर्ण एम्बेडिंग के लिए डॉट उत्पाद किया जाता है (50 मान) एल शब्द के हर बार? –

+1

हां, रूपांतरण के प्रत्येक आउटपुट मान वास्तव में फिल्टर के साथ एल * 50 एम्बेडिंग मानों का एक डॉट उत्पाद है। – pyan

संबंधित मुद्दे