Evrişimli katmanlar ve havuzlama katmanlarının kendileri girdi boyutlarından bağımsızdır. Bununla birlikte, kıvrımlı katmanların çıktısı, farklı boyuttaki görüntüler için farklı uzamsal boyutlara sahip olacaktır ve daha sonra tamamen bağlı bir katmanımız varsa (tam olarak bağlanmış katmanımız sabit boyutlu bir girdi gerektirdiğinden) bu bir soruna neden olacaktır. Bunun birkaç çözümü var:
1. Global Pooling: Evrişimli katmanların sonunda tamamen bağlı katmanlardan kaçının ve bunun yerine özellik haritalarınızı (N, H, W, C) şeklinde (global havuzdan önce) azaltmak için havuzlama (Global Average Pooling gibi) kullanın ) şekil (genel havuzu sonra, N, 1,1, C) () için:
N = sayısı minibatch örneklerinin
H = özelliği harita mekansal yükseklik
= Alan genişliği özelliği, harita W
C = özelliği haritaları (kanallarının sayısı)
olarak görülebileceği gibi, çıktı boyutsallığı (N * C) artık özellik haritalarının uzamsal boyutundan (H, W) bağımsızdır. Sınıflandırma durumunda, sınıflarınızın günlüklerini almak için üstte tamamen bağlı bir katman kullanmaya devam edebilirsiniz.
2. Değişken boyutlu havuzlama:Farklı giriş boyutları için aynı özellik harita boyutunu elde etmek için değişken boyutlu havuz bölgeleri kullanın.
3. Kırpma / Yeniden Boyutlandırma / Pad giriş görüntüleri: Giriş görüntülerinizi aynı şekle sahip olacak şekilde yeniden ölçeklendirmeyi / kırpmayı / doldurmayı deneyebilirsiniz.
Transfer öğrenimi bağlamında, modelin eğitildiği orijinal girişlerden farklı boyutta girişler kullanmak isteyebilirsiniz. Bunu yapmak için bazı seçenekler şunlardır:
4. Yeni tamamen bağlı katmanlar oluşturun: Orijinal tamamen bağlı katmanları tamamen kapatabilir ve ihtiyacınız olan boyutta yeni bir tam bağlantılı katman başlatabilir ve sıfırdan eğitebilirsiniz.
5. Tam olarak bağlanmış katmanı bir kıvrım olarak işlemden geçirin: Normalde, özellik haritalarını (N, H, W, C) ile (N, H * W * C) arasında tam olarak bağlı katmana beslemeden önce yeniden şekillendiririz. Ancak tamamen bağlı katmanı (H, W) alıcı alanıyla bir evrişim olarak da ele alabilirsiniz. Ardından, bu çekirdeği boyutlarından bağımsız olarak özellik haritalarınızla birleştirebilirsiniz (gerekirse sıfır dolgu kullanın) [
http://cs231n.github.io/transfer-learning/ ].