Tulis operasi pooling Anda sendiri
Seperti yang telah kita lihat, CNN dapat memiliki banyak parameter. Lapisan pooling sering ditambahkan di antara lapisan konvolusi pada sebuah jaringan saraf untuk merangkum keluarannya secara ringkas, dan mengurangi jumlah parameter pada lapisan berikutnya di jaringan. Ini dapat membantu jika kita ingin melatih jaringan lebih cepat, atau jika kita tidak memiliki cukup data untuk mempelajari jumlah parameter yang sangat besar.
Sebuah lapisan pooling dapat dijelaskan sebagai bentuk khusus dari konvolusi. Untuk setiap jendela pada masukan, lapisan ini mencari nilai piksel maksimum dan hanya meneruskan piksel tersebut. Dalam latihan ini, Anda akan menulis operasi max pooling Anda sendiri, berdasarkan kode yang sebelumnya Anda gunakan untuk menulis operasi konvolusi dua dimensi.
Latihan ini adalah bagian dari kursus
Pemodelan Citra dengan Keras
Petunjuk latihan
- Lakukan pengindeksan ke dalam array masukan (
im) dan pilih jendela yang tepat. - Temukan nilai maksimum di dalam jendela ini.
- Tempatkan nilai tersebut ke entri yang sesuai pada array keluaran (
result).
Latihan interaktif praktis
Cobalah latihan ini dengan menyelesaikan kode contoh berikut.
# 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(____)