यह हमेशा मामला नहीं है कि फिल्टर के आकार को कम कर रहे हैं या वृद्धि की संख्या में वृद्धि के साथ की परतों में एनकोडर. में सबसे उदाहरण के एनकोडर मैंने देखा है की convolutional autoencoder आर्किटेक्चर ऊंचाई और चौड़ाई में कमी आई है के माध्यम से strided कनवल्शनफ़िल्टर्स या पूलिंग, और गहराई की परत में वृद्धि हुई है (फिल्टर आकार में वृद्धि हुई है) रखा है, इसी तरह पिछले करने के लिए एक या एक से अलग प्रत्येक नए परत में एनकोडर. लेकिन वहाँ भी उदाहरण हैं, जहां उत्पादन चैनलों या फिल्टर आकार में कमी कर रहे हैं के साथ और अधिक परतों.
आमतौर पर autoencoder encodes इनपुट में अव्यक्त प्रतिनिधित्व/वेक्टर या embedding है कि कम आयाम की तुलना में इनपुट को कम करता है कि पुनर्निर्माण में त्रुटि । इसलिए दोनों के ऊपर के लिए इस्तेमाल किया जा सकता बनाने के undercomplete autoencoder द्वारा अलग-अलग कर्नेल का आकार, परतों की संख्या, एक अतिरिक्त परत जोड़ने के अंत में, एनकोडर के साथ एक निश्चित आयाम आदि ।
फिल्टर बढ़ाने के लिए उदाहरण
नीचे की छवि में के रूप में अधिक परतों में शामिल कर रहे हैं एनकोडर फिल्टर के आकार में वृद्धि. लेकिन के रूप में इनपुट 28*28*1 = 784
आयाम सुविधाओं और चपटा प्रतिनिधित्व 3*3*128 = 1152
अधिक है तो एक और परत जोड़ा जाता है से पहले अंतिम परत है, जो एम्बेड परत. यह कम कर देता है सुविधा आयाम के साथ पूर्वनिर्धारित संख्या के outputs में पूरी तरह से जुड़ा हुआ नेटवर्क है । यहां तक कि पिछले घने/पूरी तरह से जुड़ा हुआ परत द्वारा प्रतिस्थापित किया जा सकता अलग-अलग परतों की संख्या या कर्नेल का आकार करने के लिए है एक आउटपुट (1, 1, NUM_FILTERS)
.
फिल्टर कमी उदाहरण
एक आसान उदाहरण के फिल्टर में कम एनकोडर के रूप में परतों की संख्या में वृद्धि कर सकते हैं पर पाया जा keras convolutional autoencoder उदाहरण के लिए बस के रूप में अपने कोड.
import keras
from keras import layers
input_img = keras.Input(shape=(28, 28, 1))
x = layers.Conv2D(16, (3, 3), activation='relu', padding='same')(input_img)
x = layers.MaxPooling2D((2, 2), padding='same')(x)
x = layers.Conv2D(8, (3, 3), activation='relu', padding='same')(x)
x = layers.MaxPooling2D((2, 2), padding='same')(x)
x = layers.Conv2D(8, (3, 3), activation='relu', padding='same')(x)
encoded = layers.MaxPooling2D((2, 2), padding='same')(x)
संदर्भ