Gelen Alex Krizhevsky, ve diğ. Derin evrişimli sinir ağları ile Imagenet sınıflandırması , her katmandaki nöron sayısını numaralandırır (aşağıdaki şemaya bakınız).
Ağın girişi 150.528 boyutludur ve ağın kalan katmanlarındaki nöron sayısı 253,440–186,624–64,896–64,896–43,264– 4096–4096–1000 arasında verilir.
3B Görünüm
İlk kattan sonraki tüm katmanlar için nöronların sayısı açıktır. Nöronları hesaplamanın basit bir yolu, o katmanın ( planes X width X height
) üç boyutunu basitçe çarpmaktır :
- Katman 2:
27x27x128 * 2 = 186,624
- Katman 3:
13x13x192 * 2 = 64,896
- vb.
Ancak, ilk katmana bakmak:
- 1. Katman:
55x55x48 * 2 = 290400
Bunun kağıtta belirtildiği gibi olmadığına dikkat edin 253,440
!
Çıktı Boyutunu Hesapla
Bir evrişimin çıktı tensörünü hesaplamanın diğer yolu:
Giriş görüntü 3 boyutlu bir tensör ise
nInputPlane x height x width
, çıkış görüntü boyutu olacaktırnOutputPlane x owidth x oheight
nerede
owidth = (width - kW) / dW + 1
oheight = (height - kH) / dH + 1
.
( Torch SpatialConvolution Dokümantasyonundan )
Giriş görüntüsü:
nInputPlane = 3
height = 224
width = 224
Ve evrişim katmanı:
nOutputPlane = 96
kW = 11
kH = 11
dW = 4
dW = 4
(örneğin, çekirdek büyüklüğü 11
, adım 4
)
Bu sayıları takarak aldığımız:
owidth = (224 - 11) / 4 + 1 = 54
oheight = (224 - 11) / 4 + 1 = 54
Bu yüzden 55x55
, kağıtla eşleştirmemiz gereken boyutlardan birisini kısaldık. Dolgu olabilirler (ancak cuda-convnet2
model açıkça dolguyu 0'a ayarlar)
Büyük 54
boyutları alırsak 96x54x54 = 279,936
nöronlar alırız - hala çok fazla.
İşte benim sorum bu:
İlk evrişim tabakası için 253,440 nöronu nasıl elde ederler? Neyi kaçırıyorum?