Autoencoder de CNN - scăderea sau creșterea filtre?

0

Problema

Într-un Autoencoder bazat pe CNN, va mări sau micșora numărul de filtre între straturi ? Cum am comprima informațiile, am fost de gândire de scădere.

Exemplu de aici encoder parte în cazul în care numărul de filtre este redus la fiecare nou strat, de la 16 la 8 la 4.

x = Conv2D(filters = 16, kernel_size = 3, activation='relu', padding='same', name='encoder_1a')(inputs)
x = MaxPooling2D(pool_size = (2, 2), padding='same', name='encoder_1b')(x)

x = Conv2D(filters = 8, kernel_size = 3, activation='relu', padding='same', name='encoder_2a')(x)
x = MaxPooling2D(pool_size = (2, 2), padding='same', name='encoder_2b')(x)

x = Conv2D(filters = 4, kernel_size = 3, activation='relu', padding='same', name='encoder_3a')(x)
x = MaxPooling2D(pool_size = (2, 2), padding='same', name='encoder_3b')(x)
autoencoder conv-neural-network keras
2021-11-22 04:01:18
1

Cel mai bun răspuns

0

Nu este întotdeauna cazul în care filtrul dimensiuni sunt reduse sau a crescut odată cu creșterea numărului de straturi în encoder. În cele mai multe exemple de encoder-am văzut de convoluțional autoencoder arhitecturi înălțimea și lățimea este diminuat prin strided convoluție sau comun, și adâncimea de strat este crescut (filtru dimensiuni sunt crescute), ținute asemănătoare cu ultimul sau variat, cu fiecare nou strat în encoder. Dar există, de asemenea, exemple în cazul în care canalele de ieșire sau filtru dimensiuni sunt reduse cu mai multe straturi.

De obicei autoencoder codifică intrare în latente reprezentare/vector sau încorporarea care are dimensiunea inferioară decât de intrare care minimizează reconstrucție eroare. Deci ambele de mai sus pot fi utilizate pentru crearea de undercomplete autoencoder de diferite kernel dimensiunea, numărul de straturi, adăugând un strat suplimentar de la sfârșitul encoder cu o anumită dimensiune etc.

Filtru crește exemplu

În imaginea de mai jos ca mai multe straturi sunt adăugate în encoder filtru dimensiuni crește. Dar ca intrare 28*28*1 = 784 dimensiune caracteristici și turtit reprezentare 3*3*128 = 1152 este mai mult un alt strat este adăugat înainte de strat final care este încorporarea strat. Acesta reduce caracteristică dimensiune cu număr predefinit de ieșiri în deplin conectate la rețea. Chiar și ultima dens/complet conectat strat poate fi înlocuit prin varierea numărului de straturi sau kernel dimensiune pentru a avea o putere (1, 1, NUM_FILTERS).

enter image description here

Filtru scădere exemplu

Un exemplu simplu de filtre scădere în encoder ca numărul de straturi de creștere pot fi găsite pe keras convoluțional autoencoder exemplu fel de cod.

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)

Referințe

2021-11-22 06:57:52

În alte limbi

Această pagină este în alte limbi

Русский
..................................................................................................................
Italiano
..................................................................................................................
Polski
..................................................................................................................
한국어
..................................................................................................................
हिन्दी
..................................................................................................................
Français
..................................................................................................................
Türk
..................................................................................................................
Česk
..................................................................................................................
Português
..................................................................................................................
ไทย
..................................................................................................................
中文
..................................................................................................................
Español
..................................................................................................................
Slovenský
..................................................................................................................