Napiš vlastní operaci poolingu
Jak jsme viděli, CNN mohou mít velké množství parametrů. Poolingové vrstvy se často přidávají mezi konvoluční vrstvy neuronové sítě, aby jejich výstupy přehledně shrnuly a zredukovaly počet parametrů v následující vrstvě. To se hodí, když chceš síť trénovat rychleji nebo když nemáš dostatek dat k učení velmi velkého počtu parametrů.
Poolingovou vrstvu lze popsat jako zvláštní druh konvoluce. Pro každé okno vstupních dat najde maximální hodnotu pixelu a dále předá pouze tento pixel. V tomto cvičení napíšeš vlastní operaci max poolingu — vycházet budeš z kódu, který jsi dříve použil/a pro dvourozměrnou konvoluci.
Toto cvičení je součástí kurzu
Image Modeling with Keras
Pokyny k cvičení
- Indexuj do vstupního pole (
im) a vyber správné okno. - Najdi maximum v tomto okně.
- Ulož ho na správnou pozici ve výstupním poli (
result).
Interaktivní cvičení na vyzkoušení si v praxi
Vyzkoušejte si toto cvičení dokončením tohoto ukázkového kódu.
# 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(____)