CNN Autoencoder-filtreleri azaltın veya artırın?

0

Soru

CNN tabanlı bir Otomatik Kodlayıcıda, katmanlar arasındaki filtre sayısını artıracak veya azaltacak mısınız ? Bilgiyi sıkıştırdıkça azalmayı düşünüyordum.

Buradaki örnek, her yeni katmanda filtre sayısının 16'dan 8'e 4'e düşürüldüğü kodlayıcı kısmıdır.

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

En iyi cevabı

0

Enkoderde artan katman sayısı ile filtre boyutlarının azaltılması veya arttırılması her zaman böyle değildir. Konvolüsyonel otomatik kodlayıcı mimarilerinin gördüğüm kodlayıcı örneklerinin çoğunda yükseklik ve genişlik, kademeli konvolüsyon veya havuzlama yoluyla azaltılır ve katmanın derinliği artar (filtre boyutları artar), sonuncuya benzer şekilde tutulur veya kodlayıcıdaki her yeni katmanla değişir. Ancak, çıkış kanallarının veya filtre boyutlarının daha fazla katmanla azaldığı örnekler de vardır.

Genellikle otomatik kodlayıcı, girdiyi, yeniden yapılandırma hatasını en aza indiren girdiden daha düşük boyuta sahip gizli gösterime/vektöre veya gömmeye kodlar. Bu nedenle, yukarıdakilerin her ikisi de, çekirdek boyutunu, katman sayısını değiştirerek, kodlayıcının sonunda belirli bir boyuta sahip fazladan bir katman ekleyerek, eksik otomatik kodlayıcı oluşturmak için kullanılabilir.

Filtre artırma örneği

Aşağıdaki resimde encoder'a daha fazla katman eklendikçe filtre boyutları artar. Ama girdi olarak 28*28*1 = 784 boyut özellikleri ve düzleştirilmiş gösterim 3*3*128 = 1152 daha çok, gömme katmanı olan son katmandan önce başka bir katman eklenir. Tam bağlı ağdaki önceden tanımlanmış çıkış sayısı ile özellik boyutunu azaltır. Son yoğun/tamamen bağlı katman bile, çıktıya sahip olmak için katman sayısını veya çekirdek boyutunu değiştirerek değiştirilebilir (1, 1, NUM_FILTERS).

enter image description here

Filtre azaltma örneği

Kolay bir örnek filtreleri azaltmada kodlayıcı olarak numarasını katmanları artırmak olabilir bulundu keras katlamalı autoencoder örnek olarak sadece kod.

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)

Referanslar

2021-11-22 06:57:52

Diğer dillerde

Bu sayfa diğer dillerde

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