Kendi pooling işlemini yaz
Daha önce gördüğümüz gibi, CNN’lerde çok sayıda parametre olabilir. Sinir ağlarında evrişim katmanları arasına sıklıkla pooling katmanları eklenir; bu katmanlar çıktıları özetleyip sıkıştırır ve ağdaki bir sonraki katmandaki parametre sayısını azaltır. Bu, ağı daha hızlı eğitmek istediğimizde ya da çok büyük sayıda parametreyi öğrenmek için yeterli verimiz olmadığında işimize yarayabilir.
Bir pooling katmanı, özel bir tür evrişim olarak da görülebilir. Girdideki her pencere için maksimum piksel değerini bulur ve yalnızca bu pikseli geçirir. Bu egzersizde, daha önce iki boyutlu bir evrişim işlemi yazmak için kullandığın koda dayanarak, kendi maksimum pooling işlemini yazacaksın.
Bu egzersiz
Keras ile Görüntü Modellemesi
kursunun bir parçasıdırEgzersiz talimatları
- Girdi dizisini (
im) indeksleyip doğru pencereyi seç. - Bu penceredeki maksimum değeri bul.
- Bunu çıktı dizisindeki (
result) doğru yere yerleştir.
Uygulamalı interaktif egzersiz
Bu örnek kodu tamamlayarak bu egzersizi bitirin.
# Result placeholder
result = np.zeros((im.shape[0]//2, im.shape[1]//2))
# Pooling operation
for ii in range(result.shape[0]):
for jj in range(result.shape[1]):
result[ii, jj] = np.max(____)